new

resComments

Многоуровневые комментарии с пагинацией для MODX3
Автор дополнения
Павел Р.
Пакетов
3
Закачек
12
Обычно отвечает в течение 2 часов
Автор дополнения
Пакетов
3
Закачек
12
Обычно отвечает в течение 2 часов
Версия 1.0.1-pl
Дата выпуска 24.12.2025
Загрузки 1
Просмотры 200
Внимание, этот компонент требует версию PHP 7.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 3.0 !
Многоуровневые комментарии для ресурсов 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;
  • rcOnBeforeCreateComment — вызывается после создания комментария. Принимает $object — объект созданного комментария. 

resComments 1.0.1

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

resComments 1.0.0

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

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