Урок №8. Добавляем возможность комментирования материалов.

На примере темы "Корпоративный сайт".

Предже всего необходимо установить модуль "Комментарии":

Решение 1. Добавление виджета комментирования в текст материала.

Первый, самый простой, способ добавления возможности оставлять комментарии к материалам - это просто добавить соответствующий виджет в текст материала:

В окне настройки виджета, измените, если нужно, кол-во комментариев на странице. Больше никаких настроек делать не нужно:

В результате, на странице этого материала будет показан блок комментариев:

Решение 2. Добавление виджета комментирования в шаблон материала.

Основной недостаток такого решения №1 - необходимость ручного добавления виджета в каждый материал. Попробуем добавить виджет комментирования в шаблон материала, чтобы комментарии автоматически появились во всех материалах.

В теме "Корпоративный сайт" все материалы выводятся через виджет Material. Соответственно, нам нужно внести изменения в стандартный шаблон этого виджета "default.twig":

{# расширяем стандартный шаблон #}
{% extends '@widget_distrib/material/default.twig' %}

{% block html %}
    {{ parent() }}
    
    {# добавляем виджет комментирования #}
    {% widget 'Comments.List' %}
    
{% endblock %}

Задача решена.

Очевидно, может возникнуть потребность управлять возможностью оставлять комментарии для тех или иных материалов. Для решения этой задачи добавим в материалы поле "Запретить комментарии" с помощью которого мы будем управлять видимойтью блока комментирования. Перейдем на панель "Типы материалов" и добавим логическое поле "disable_comments" к материалам:

Далее модифицируем шаблон default.twig виджета Material:

{# расширяем стандартный шаблон материала #}
{% extends '@widget_distrib/material/default.twig' %}

{% block html %}
    {{ parent() }}
    
    {% if not widget.material.disable_comments %}
       {# покажем комментарии только если не установлен флаг disable_comments #}
        {% widget 'Comments.List' %}
    {% endif %}
    
{% endblock %}

Готово! Теперь комментарии к материалу будут скрыты, если установлен флаг "Запретить комментарии":


Мы на связи

фото Алены Ратниковой

Алена Ратникова
Отвечаю за всё производство

фото Марии Лебедевой

Мария Лебедева
Занимаюсь новыми клиентами


Cetera Labs

График работы

Понедельник-пятница
9:00-18:00

Телефон

8 (800) 775-52-93