Компоненты для создания комментариев в MODX Revolution
Почти каждый сайт должен иметь обратную связь с посетителями и чаще всего она реализуется через комментирование. В MODX Revolution есть несколько пакетов, предназначенных для организации вывода и создания комментариев. Самый распространенный и старый — «Quip». Альтернативы появились не так давно, но уже успели получить популярность среди разработчиков. Речь идет о «MODX Talks» и «Tickets».
Постараюсь осветить аспекты работы с «Quip», а затем напишу про собственные впечатления от альтернативных решений.
«Quip» — комментарии в MODX
Установка производится из репозитория в несколько кликов.
В шаблоне (или чанке), который планируется использовать для ресурсов с комментариями, прописываем 2 сниппета:
[[!Quip? &thread=`[[*alias]]-[[*id]]` &useGravatar=`0` &dateFormat=`%d %b %Yг. в %H:%M` &tplComment=`comment` ]]
[[!QuipReply? &thread=`[[*alias]]-[[*id]]` &moderate=`0` &tplAddComment=`new-comment` ]]
Первый сниппет отвечает за вывод комментариев, второй за форму создания нового комментария. Рассмотрим параметры:
thread — важнейший параметр, должен представлять из себя уникальный идентификатор ресурса, к которому будет привязываться комментарий.
Многие делают ошибку, формируя этот идентификатор из названия ресурса (pagetitle). Этого не стоит делать по следующим причинам:
- Quip не будет выводить комментарии к ресурсам, название которых содержит кавычки.
- При смене названия ресурса все комментарии, связанные с ним, будут потеряны.
- Вы можете нарваться на ошибку «quip.thread_err_nfs» при управлении темой в комментариях Quip MODX Revolution. Возникает она из-за использования кириллицы в уникальном идентификаторе «thread».
Чтобы избежать подобных проблем, я рекомендую формировать его из псевдонима (alias) и идентификатора ресурса (id).
useGravatar — 0, если не требуется выводить аватар пользователя и 1 — если требуется. Аватар берется с сайта gravatar.com. На этом сайте можно привязать к своему почтовому аккаунту маленькую картинку. В большинстве случаев, при оставлении комментария пользователь должен вводить свой e-mail. «Quip» проверяет, есть ли на сайте gravatar.com картинка, соответствующая e-mail'у комментатора. Если есть, то выводит её, а если нет — выводит аватар по умолчанию.
Проблема заключается в том, что мало кто привязывает аватарки к своим почтовым адресам через сервис Gravatar, поэтому я не вижу смысла использовать их.
dateFormat — здесь всё просто, формат выводимого времени, когда был оставлен комментарий. Расписывать его не буду.
tplComment — чанк, содержащий оформление выводимого комментария. Как он выглядит по умолчанию можете посмотреть по ссылке.
moderate — указывает, показывать ли оставленный комментарий сразу, или только после одобрения модератором (через адмику Quip).
tplAddComment — чанк для оформления формы ввода нового комментария. Его содержимое по умолчанию вы можете найти перейдя по ссылке.
У сниппетов так же много других параметров, о которых вы можете прочитать по приведенным ссылкам. Есть возможность создания капчи, разрешение комментирования только зарегистрированным пользователям и многие другие.
Вывод последних комментариев в «Quip»
Осуществляется вызовом сниппета:[[!QuipLatestComments? &tpl=`latestCommentTpl` &limit=`3` ]]limit — указывает, сколько последних комментариев выводить; tpl — чанк оформления одного «последнего» комментария. Его содержимое представляет из себя плейсхолдеры, вывод которых оформляется с помощью html и CSS. Вот пример:
<a class="latest_comment_theme" href="[[+url]]"> [[+pagetitle]] </a> <div class="latest_comment_body"> [[+body:ellipsis=`55`]] </div> <div class="LastComment"> <span class="latest_comment_author">[[+name]]</span> <span class="latest_comment_ago">[[+createdon:strtotime:date=`%d %b %Yг. в %H:%M`]]</span> </div>
В этом чанке выводится название ресурса с комментарием, текст комментария, урезанный до 55 символов, имя автора комментария и дата создания с форматом вывода.
Вывод количества комментариев «Quip»
Иногда требуется к описанию поста вывести количество комментариев. Чаще всего краткие описания делаются на главной странице. Тогда в шаблоне, отвечающем за формирование описания, прописываем сниппет:
[[!QuipCount? &thread=`[[+alias]]-[[+id]]`]]
«Quip» хороший и гибкий компонент, но есть у него и недостаток — замедляет генерацию страницы при большом количестве комментариев (более 50 на один ресурс). Если Ваш сайт часто комментируется, то стоит подумать об использовании альтернативных вариантов.
«MODX Talks» — красота из коробки
Что понравилось:- Прост в установке и настройке.
- Работает на Ajax, благодаря чему, при оставлении комментария, страницы не перезагружаются полностью.
- Современно и красиво выглядит уже из коробки.
- Сыроват, встречал баги при работе.
- Внешний вид. Он красив, но в то же время выглядит как-то напыщено, по Джумловски.
Основной причиной моего отказа от этого инструмента для комментирования, стал баг, при котором после оставления комментария окно прокручивалось в самый конец, а не на оставленный только что комментарий. Скорее всего, это баг исправили, а может и возникал он только у меня. Тем не менее, к тому времени у меня уже стоял Quip и менять я его не стал.
«Tickets» — быстрота и надежность
Пакет «Tickets» включает в себя сниппет «TicketComments», который позволяет комментировать не только созданные тикеты, но и обычные ресурсы.
Что понравилось:- Работает на Ajax, благодаря чему, при комментировании страница не перезагружается полностью.
- Гибко настраивается внешний вид.
- Высокая скорость работы.
- Не поддерживает возможность оставления комментариев незарегистрированным пользователям.
- Плохо документирован, поэтому потребуется повозится для подстройки под себя.
Компонент очень понравился, но в связи с тем, что я планировал дать возможность комментирования статей для всех пользователей, в том числе и не зарегистрированных, мой выбор пал на «Quip». Про комментирование статей при помощи компонента «Tickets» у меня есть отдельная статья — Компонент Tickets для MODX
«DISQUS» — сторонний сервис комментирования
Этот сервис используется в разных CMS для организации комментариев. Используют его чаще всего ленивые разработчики, которым влом разбираться с настройками существующих решений под CMS. Для использования DISQUS достаточно зарегистрироваться у них на сайте и получить код для вставки на своём сайте: disqus.com
Что понравилось:- Работает используя Ajax.
- Просто в установке.
- Неплохо выглядит.
- Внешний вид нельзя настроить под себя.
- Комментарии хранятся отдельно от вашего сайта.
- Дополнительная нагрузка на страницу, так как идет обращение к стороннему сервису.
хотя в сообщение модератору приходит в нормальном виде.
Подскажите, где искать проблему.
Не могу найти, где происходит смена кодировки для поля имени автора и для текста самого сообщения
Там примерно такие ошибки:
Не знаю что это означает, не поняла.
Вот например здесь:
http://yogadesc.ru/yoga-vrikshasana
при прокручивании на маленьком мониторе вниз — кнопка «оставить комментарий» прилепляется к верху.
А то просто выглядит совсем не очень когда одинаковые тела там нарисованы под всеми комментариями…
Можете помочь?
А так ошибки говорят о том, что либо на сайт уже ставился Quip, либо какие-то ошибки в самом инсталляторе.