studioAura
2/8/2017 - 9:20 AM

Компонент Tickets в MODX для реализации комментариев

Компонент Tickets в MODX для реализации комментариев

Есть замечательный компонент для CMS MODX Revolution — «Tickets». Написал его наш соотечественник «bezumkin», за что ему большой респект. Компонент может быть использован как альтернатива «Quip», для комментирования статей. Точное его описание и видео с быстрым стартом вы можете найти на официальной страничке компонента:

Компонент Tickets - https://docs.modx.pro/components/tickets/

Я опишу лишь некоторые моменты установки и настройки компонента Tickets версии 1.0.0 для использования только комментирования статей. Создание тикетов при помощи компонента я опущу.

1. Устанавливаем компонент Tickets.

Оставлять комментарии при помощи Tickets могут только зарегистрированные пользователи, которые находятся в группе с определенными правами.

2. Создаем группу «Users» (можно и по другому назвать), пользователи которой смогут оставлять комментарии:

    В меню заходим «Безопасность > Контроль доступа».
    Создаем новую группу. Задаем ей имя (например «Users»). Политика бэкенда — «TicketUserPolicy».
    После создания группы переходим к её редактированию (ПКМ>Редактировать).
    Открываем вкладку — «Доступ к контекстам»
    Редактируем контекст web (ПКМ > Редактировать)
    Устанавливаем политику доступа — «TicketUserPolicy»

Группу создали, права дали. Дальше необходимо этих пользователей откуда-то взять. У меня на сайте отсутствовала регистрация и напрягать ей пользователей я не хотел, поэтому воспользовался компонентом «Loginza».

3. Устанавливаем компонент Loginza и вызываем его в нужном месте:

    [[!Loginza? &groups=`Users`]]

Теперь пользователи, которые будут авторизоваться на вашем сайте через социальные сети при первом входе автоматически регистрируются в группе «Users» и получают возможность оставлять комментарии.

4. Добавляем в шаблон статей сниппет комментирования:

    [[!TicketComments]]

Сниппет можно использовать без параметров, но лучше ознакомиться с ними, а так же с используемыми чанками.
Параметры сниппета TicketComments

thread — имя ветки комментариев.
по умолчанию recource-[[*id]]

fastMode — если включено, в чанк результата будут подставлены только значения из БД. Все необработанные теги MODX, такие как фильтры, вызов сниппетов и другие — будут вырезаны.
по умолчанию Да (Нет)

gravatarIcon — если аватарка пользователя не найдена грузить эту картинку на замену.
по умолчанию mm

gravatarSize — размер загружаемого аватара.
по умолчанию 24

gravatarUrl — адрес для загрузки аватаров.
по умолчанию http://www.gravatar.com/avatar/

tplCommentForm — чанк для формы добавления нового комментария.
по умолчанию tpl.Tickets.comment.form

tplCommentAuth — чанк комментария для показа авторизованному пользователю.
по умолчанию tpl.Tickets.comment.one.auth

tplCommentGuest — чанк комментария для показа гостям.
по умолчанию tpl.Tickets.comment.one.guest

tplCommentDeleted — чанк удаленного комментария.
по умолчанию tpl.Tickets.comment.one.deleted

tplComments — обертка для всех комментариев страницы.
по умолчанию tpl.Tickets.comment.wrapper

tplLoginToComment — чанк с требованием авторизоваться.
по умолчанию tpl.Tickets.comment.login

tplCommentEmailOwner — чанк для уведомления владельца тикета о новом комментарии.
по умолчанию tpl.Tickets.comment.email.owner

tplCommentEmailReplay — чанк для уведомления пользователя о том, что на его комментарий появился ответ.
по умолчанию tpl.Tickets.comment.email.replay

autoPublish — автоматически публиковать все новые комментарии, без премодерации.
по умолчанию Да (Нет)

formBefore — расположить форму комментирования перед комментариями.
по умолчанию Нет (Да)

depth — Целое число, для указания максимальной глубины ветки комментариев.
по умолчанию 0

5. Подстраиваем под себя чанки

Я редактировал в основном только 2 чанка — «tpl.Tickets.comment.one.auth» и «tpl.Tickets.comment.one.guest», которые отвечают за показ комментариев авторизованному пользователю и не авторизованному.

Некоторое время я потратил на то, чтобы понять как отображать аватар пользователя, выполнившего вход через социальную сеть. По умолчанию компонент искал аватарку пользователя с сайта www.gravatar.com и, не находя её там, подставлял серенького человечка. Решение оказалось простым — в вышеприведенных чанках достаточно изменить плейсхолдер «[[+avatar]]» на «[[+photo]]»

После этого всё встало на свои места и осталось только радоваться работе компонента Tickets.

Про другие варианты создания комментариев в MODX Revolution можете почитать здесь: Комментарии в MODX Revolution. Quip и его альтернативы - http://realadmin.ru/saytostroy/comments-in-modx-revo.html

С недавнего времени в компоненте появилась возможность комментирования без авторизации. Для этого в последней версии компонента следует указать параметр «allowGuest» равным 1.

    [[!TicketComments? &allowGuest=`1`]]