Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте, нужно создать модуль возможности комментирования в категориях интернет магазина. ТО есть на странице категории будет форма с комментариями. Выглядеть она должна вот так - http://joxi.ru/l2ZNG0fw6WL62J .

Я думаю со скрина все понятно что должно там быть.  С левой стороны поля для ввода комментарии, данных. С правой - сами комментарии.  

Все комментарии которые оставляются - публикуются только после модерации. После того как человек оставил комментарий, нажал на кнопку "оставить комментарий", появляется уведомление что "Ваш комментарий будет опубликован после модерации".  В админке должна быть возможность редактировать оставленный комментарий и оценку. 

Также (правда тут не отрисовано)  должна быть возможность оставить ответ администрации, по необходимости. ответ будет ниже под комментарием, как абзац. 

 

Цену не пишу, не знаю во сколько может обойтись.  Жду обратной связи

Спасибо   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попадете под бан Google - 100% (в ручную, если заметят или кто "настучит")
Наблюдал у пользователей баны за такое (по стучалке конкурентов)
Google считает что комментарии могут быть только к записям блога, товарам, отзывы о магазине
Остальное переспам seo "оптимизации"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, markimax сказал:

Попадете под бан Google - 100% (в ручную, если заметят или кто "настучит")
Наблюдал у пользователей баны за такое (по стучалке конкурентов)
Google считает что комментарии могут быть только к записям блога, товарам, отзывы о магазине
Остальное переспам seo "оптимизации"

 

Нууу не совсем  так). Действительно можно попасть под ручные санкции, только если использовать микроразметку "оценки" на категориях, и то если это категория и там больше одного товара.  Хотя, возможно за отзывы тоже банят, если это будет на категории где больше одного товара. 

У меня немного другая ситуация, у меня категория - это 1 товар, которого можно купить разное количество. То есть 1 товар, разное количество и разная цена соответственно. Товарных позиций далее нету. 

По сути - у меня категория - это товарная позиция, там придраться нельзя. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, Ssilver сказал:

Нууу не совсем  так). Действительно можно попасть под ручные санкции, только если использовать микроразметку "оценки" на категориях, и то если это категория и там больше одного товара.  Хотя, возможно за отзывы тоже банят, если это будет на категории где больше одного товара. 

У меня немного другая ситуация, у меня категория - это 1 товар, которого можно купить разное количество. То есть 1 товар, разное количество и разная цена соответственно. Товарных позиций далее нету. 

По сути - у меня категория - это товарная позиция, там придраться нельзя. 

Да несколько другая ситуация, но смотрите сами
Если кто настучит - кто его знает как админы Google  поведут себя

Вообще делали комментарии к категориям через

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Ssilver сказал:

Цену не пишу, не знаю во сколько может обойтись.  Жду обратной связи

Если Опенкарт 3, то 1400 руб.

Если другая версия, то не интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
27 минут назад, Ssilver сказал:

По сути - у меня категория - это товарная позиция, там придраться нельзя. 

Вот демо Отзывы к категории

https://oc2.opencartadmin.com/desktops/

 

Спойлер

0875171989.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, optimlab сказал:

Если Опенкарт 3, то 1400 руб.

Если другая версия, то не интересно.

Version 2.3.0.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Ssilver сказал:

Version 2.3.0.2

Сорри, со старьем не работаю. Ищите олдскульного разраба..

Там работы на полтора часа и это будет чисто модификатор OCMOD с install.sql для создания колонки в таблице отзывов для категорий. Успехов!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, optimlab сказал:

Сорри, со старьем не работаю. Ищите олдскульного разраба..

Че так рано списал 2.3?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, AWARO сказал:

Че так рано списал 2.3?

Туда ему и дорога!

Подробнее тут:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Без комментариев
opencart 3 и twig

Вот что создает twig из самого простого шаблона (напоминать какие шаблоны в opencart я думаю не надо)

{% extends "base.html" %}

{% block title %}Серия романов о Гарри Поттере{% endblock %}

{% block content %}
<h1>Серия романов о Гарри Поттере</h1>

<div id="books">
    {% for book in books %}
    <div class="book">
    	<strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}}
    </div>
    {% endfor %}
</div>
{% endblock %}

И занавес

 

Спойлер

 


<?php

/* list.html */
class __TwigTemplate_0272d28026bf48193b3efa17cc06cc64 extends Twig_Template
{
    public function __construct(Twig_Environment $env)
    {
        parent::__construct($env);

        $this->parent = $this->env->loadTemplate("base.html");

        $this->blocks = array(
            'title' => array($this, 'block_title'),
            'content' => array($this, 'block_content'),
        );
    }

    protected function doGetParent(array $context)
    {
        return "base.html";
    }

    protected function doDisplay(array $context, array $blocks = array())
    {
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }

    // line 5
    public function block_title($context, array $blocks = array())
    {
        echo "Серия романов о Гарри Поттере";
    }

    // line 7
    public function block_content($context, array $blocks = array())
    {
        // line 8
        echo "<h1>Серия романов о Гарри Поттере</h1>

<div id=\"books\">
    ";
        // line 11
        if (isset($context["books"])) { $_books_ = $context["books"]; } else { $_books_ = null; }
        $context['_parent'] = (array) $context;
        $context['_seq'] = twig_ensure_traversable($_books_);
        foreach ($context['_seq'] as $context["_key"] => $context["book"]) {
            // line 12
            echo "    <div class=\"book\">
    \t<strong>";
            // line 13
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "number"), "html", null, true);
            echo "</strong>. \"<em>";
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "title"), "html", null, true);
            echo "\"</em> - ";
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "date"), "html", null, true);
            echo "
    </div>
    ";
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']);
        $context = array_merge($_parent, array_intersect_key($context, $_parent));
        // line 16
        echo "</div>
";
    }

    public function getTemplateName()
    {
        return "list.html";
    }

    public function isTraitable()
    {
        return false;
    }

    public function getDebugInfo()
    {
        return array (  67 => 16,  51 => 13,  48 => 12,  43 => 11,  38 => 8,  35 => 7,  29 => 5,);
    }
}

<?php

/* base.html */
class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template
{
    public function __construct(Twig_Environment $env)
    {
        parent::__construct($env);

        $this->parent = false;

        $this->blocks = array(
            'title' => array($this, 'block_title'),
            'content' => array($this, 'block_content'),
        );
    }

    protected function doDisplay(array $context, array $blocks = array())
    {
        // line 1
        echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\">
<head>
    <title>";
        // line 4
        $this->displayBlock('title', $context, $blocks);
        echo "</title>
    <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/>
</head>
<body>

<div id=\"content\">
    ";
        // line 10
        $this->displayBlock('content', $context, $blocks);
        // line 12
        echo "</div>

</body>
</html>";
    }

    // line 4
    public function block_title($context, array $blocks = array())
    {
    }

    // line 10
    public function block_content($context, array $blocks = array())
    {
        // line 11
        echo "    ";
    }

    public function getTemplateName()
    {
        return "base.html";
    }

    public function getDebugInfo()
    {
        return array (  52 => 11,  49 => 10,  44 => 4,  37 => 12,  26 => 4,  21 => 1,  67 => 14,  51 => 11,  48 => 10,  43 => 9,  38 => 6,  35 => 10,  29 => 3,);
    }
}

<?php

/* books.html */
class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template
{
    public function __construct(Twig_Environment $env)
    {
        parent::__construct($env);

        $this->parent = $this->env->loadTemplate("base.html");

        $this->blocks = array(
            'title' => array($this, 'block_title'),
            'content' => array($this, 'block_content'),
        );
    }

    protected function doGetParent(array $context)
    {
        return "base.html";
    }

    protected function doDisplay(array $context, array $blocks = array())
    {
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }

    // line 3
    public function block_title($context, array $blocks = array())
    {
        echo "Серия романов о Гарри Поттере";
    }

    // line 5
    public function block_content($context, array $blocks = array())
    {
        // line 6
        echo "<h1>Серия романов о Гарри Поттере</h1>

<div id=\"books\">
    ";
        // line 9
        if (isset($context["books"])) { $_books_ = $context["books"]; } else { $_books_ = null; }
        $context['_parent'] = (array) $context;
        $context['_seq'] = twig_ensure_traversable($_books_);
        foreach ($context['_seq'] as $context["_key"] => $context["book"]) {
            // line 10
            echo "    <div class=\"book\">
    \t<strong>";
            // line 11
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "number"), "html", null, true);
            echo "</strong>. \"<em>";
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "title"), "html", null, true);
            echo "\"</em> - ";
            if (isset($context["book"])) { $_book_ = $context["book"]; } else { $_book_ = null; }
            echo twig_escape_filter($this->env, $this->getAttribute($_book_, "date"), "html", null, true);
            echo "
    </div>
    ";
        }
        $_parent = $context['_parent'];
        unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']);
        $context = array_merge($_parent, array_intersect_key($context, $_parent));
        // line 14
        echo "</div>
";
    }

    public function getTemplateName()
    {
        return "books.html";
    }

    public function isTraitable()
    {
        return false;
    }

    public function getDebugInfo()
    {
        return array (  67 => 14,  51 => 11,  48 => 10,  43 => 9,  38 => 6,  35 => 5,  29 => 3,);
    }
}

 

 

Я думаю о производительности даже заикаться не надо
Отличие 2.3 от 3.0 - это фактически twig
Других существенных отличий, кроме мультиязычных ЧПУ которые работают кстати через ж..  нету
Зато добавлено куча костылей прямо влияющие на тормоза, резко увеличилось количество запросов и т п

Перед тем как что то громогласно заявлять нужно знать хотя бы основы мат. части
Кстати Даниэль уже плакался на форуме что внедрение twig было вынужденной ошибкой

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте, вновь актуально. Нужен человек на создание такого модуля.

Исполнитель который взялся  за работу - не выходит на связь 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.