Автор дополнения
Павел Р.
Пакетов
5
Закачек
24
Обычно отвечает в течение 4 часов
Автор дополнения
Пакетов
5
Закачек
24
Обычно отвечает в течение 4 часов
Версия 1.0.2-pl
Дата выпуска 22.02.2026
Загрузки 4
Просмотры 584
Внимание, этот компонент требует PHP 8.0 или выше!
Внимание, этот компонент требует MODX 3 или выше.
Многоуровневые комментарии для ресурсов MODX3.

Основные свойства

  • Неограниченная вложенность
  • Несколько вызовов на странице
  • Оценка публикации
  • Оценки и рейтинг ответов
  • WYSIWYG-редактор Pell
  • Разметка Schema.org
  • Аватары пользователей с поддержкой Gravatar
  • Возможность удаления собственных комментариев
  • Email-уведомления менеджеру сайта, автору публикации, автору комментария об ответах
  • Пагинация (с pdoPage)
  • Работает без jQuery (за исключением связки с pdoPage)
  • Настраиваемые всплывающие уведомления (Notyf из коробки, по остальным см. системные настройки)
  • Приложение в админке с поиском, фильтрацией и возможностью создания / удаления / редактирования (включая ответы разных уровней) 
  • Вкладка «Комментарии» у ресурсов с указанными шаблонами
  • Вкладка «Комментарии» у ресурсов с указанными ID

Вид по умолчанию (при наличии Bootstrap и установленном dateAgo для форматирования дат):


Форма добавления и редактор


Установка

Пакет устанавливается стандартным образом через установщик MODX3.
В процессе установки с базе создаются две таблицы (modx_rescomments и modx_rescomments_votes) и в меню добавляется компонент «Комментарии».



Окно редактирования:


Вкладка «Свойства»:


Вкладка «Ответы» (для каждого можно также открыть окно редактирования, настроить, посмотреть ответы и т. д.):


Создание нового комментария:


Системные настройки

  • rc_antispam_field — поле для защиты от СПАМа (проверяется на пустоту). По умолчанию comment_subject
  • rc_autopublish — автопубликация. По умолчанию включено.
    rc_notifications — скрипт всплывающих уведомлений. Поддерживаются Notyf (по умолчанию) и SweetAlert2 (требуется установка). Также можно указать miniShop3, FetchIt или AjaxForm для использования уведомлений этих компонентов (если они установлены)
  • rc_js_url — путь к JS-файлу, по умолчанию {assets_url}components/rescomments/js/web/default.min.js
  • rc_css_url — путь к CSS-файлу, по умолчанию{assets_url}components/rescomments/css/web/default.min.css
  • rc_tab_tpl — у каких шаблонов выводить вкладку «Комментарии», ID через запятую. Поставьте all, чтобы вкладка выводилась для всех шаблонов. Оставьте пустым, чтобы не выводить.
  • rc_tab_resources — у каких ресурсов выводить вкладку «Комментарии», ID через запятую.
  • rc_email_send_createdby — уведомлять ли создателя ресурса о новых комментариях (определяется по createdby)
  • rc_email_send_manager — уведомлять ли менеджеров о новых комментариях (да)
  • rc_email_send_user— уведомлять ли пользователей об ответах на их комментарии (да)
  • rc_email_subject_createdby — тема письма автору о новом комментарии к его ресурсу
  • rc_email_subject_manager — Тема письма менеджерам о новом комментарии
  • rc_email_subject_user — тема письма пользователю о новом ответе на его комментарий
  • rc_email_tpl_createdby —  чанк-шаблон письма автору публикации (rc_tpl_email_author)
  • rc_email_tpl_manager — чанк-шаблон письма менеджерам (rc_tpl_email_manager)
  • rc_email_tpl_user — чанк-шаблон письма пользователю (rc_tpl_email_user)

Сниппет resComments

Выводит комментарии к ресурсу, подключает все необходимые скрипты и стили.
Вызывается некешированным:
[[!resComments]]
или 
{'!resComments' | snippet : []}


С pdoPage:
<div id="pdopage">
    <div class="rows">
        [[!pdoPage?
        &element=`resComments`
        ]]
    </div>
    [[!+page.nav]]
</div>


Параметры сниппета (перекрывают системные настройки):
Основные
  • docid — ID ресурса. По умолчанию текущий.
  • topic — тема (ветка). Должна быть уникальна в рамках сайта. По умолчанию comments-## (## — ID ресурса)
  • allowAll — все посетители могут добавлять комментарии (0 — только авторизованные). По умолчанию 1
  • maxLevel — максимальный уровень вложенности комментариев. По умолчанию 50
  • maxShiftLevel — максимальный уровень, после которого не будет происходить визуальный сдвиг ответов. По умолчанию 10.
  • title — заголовок блока комментариев. По умолчанию то, что в лексиконах.
  • addText — текст на кнопке добавления комментария. По умолчанию то, что в лексиконах.
  • replyText — Текст на кнопке ответа на комментарий. По умолчанию то, что в лексиконах.
  • required — Обязательные поля для отправки формы. По умолчанию name, email, text, agree
  • autopublish — Публиковать ли комментарии и ответы сразу после добавления (Да)
  • antispamField — Поле для защиты от СПАМа (comment_subject)
  • deleteTime — Время в секундах, в течение которого пользователь может удалить свой комментарий (если на него не получен ответ) (600 — 10 минут)
  • hideReplies — Скрывать ответы на комментарии при открытии страницы. Выводятся только комментарии первого уровня. Если есть ответы, выводится их количество и кнопка «Развернуть» (0)
  • sortby — настройка сортировки в JSON-формате. По умолчанию { «createdon»: «DESC» }
  • limit — количество на страницу (10)
  • offset — сдвиг от начала (0)
Шаблоны
В чанках поддерживается стандартный синтаксис и Fenom.
Шаблоны, идущие в комплекте, адаптированы под Bootstrap.
  • tpl — Чанк-шаблон комментария (rc_tpl_comment)
  • tplWrapper — чанк-шаблон обертки всех комментариев (rc_tpl_wrapper)
  • tplForm — чанк-шаблон формы добавления комментария (rc_tpl_form)
  • tplDelete — чанк-шаблон кнопки удаления комментария (rc_tpl_delete)
  • tplRepliesInfo — чанк-шаблон вывода блока количества ответов на комментарий и кнопки «Развернуть» (rc_tpl_replies_info)
Уведомления
  • emailTo — адреса менеджеров ([[++emailsender]])
  • emailFrom — отправитель уведомлений ([[++site_name]])
  • emailManager — уведомлять ли менеджеров о новых комментариях
  • emailAuthor — уведомлять ли авторов публикаций о новых комментариях
  • emailUser — уведомлять ли авторов комментариев об ответах на их комментарии
  • emailSubjectAuthor — тема письма автору о новом комментарии к его ресурсу
  • emailSubjectManager — тема письма менеджерам о новом комментарии
  • emailSubjectUser — тема письма пользователю о новом ответе на его комментарий
  • emailTplAuthor — чанк-шаблон письма автору публикации (rc_tpl_email_author)
  • emailTplManager — чанк-шаблон письма менеджерам (rc_tpl_email_manager)
  • emailTplUser — чанк-шаблон письма пользователю (rc_tpl_email_user)
JS компонента активно работает с классами элементов и их data-атрибутами, так что если используете кастомные чанки обращайте внимание на эти моменты.

События плагинов

  • rcOnBeforeCreateComment — вызывается перед созданием комментария. Принимает массив $data с данными, отправленными из формы. Можно обработать и вернуть через $modx->event->returnedValues = $data;
  • rcOnAfterCreateComment — вызывается после создания комментария. Принимает $object — объект созданного комментария. 

1.0.2

  • Исправлена ошибка при удалении комментария
  • Добавлена проверка при инициализации WYSIWIG-редактора, чтобы можно его не использовать

1.0.1

  • Исправлена ошибка публикации кода через редактор (перенос строк)
  • Поправлены мелкие баги

1.0.0

  • Первая редакция

Последние обсуждения в сообществе MODX.pro