RealAdmin.ru

Комментарии в MODX Revolution. Quip и его альтернативы

MODX,Комментарии
Категория: Сайтострой
08 Окт 2013 г. в 22:21

Почти каждый сайт должен иметь обратную связь с посетителями и чаще всего она реализуется через комментирование. В MODX Revolution есть несколько пакетов предназначенных для организации вывода и создания комментариев. Самый распространенный и старый — «Quip». Альтернативы появились не так давно, но уже успели получить популярность среди MODX разработчиков. Речь идет о «MODX Talks» и «Tickets».

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

«Quip» — комментарии в MODX Revolution

Установка производится из репозитория в несколько кликов.

В шаблоне (или чанке), который планируется использовать для ресурсов с комментариями, прописываем 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» MODX

Осуществляется вызовом сниппета:
[[!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» MODX

Иногда требуется к описанию поста вывести количество комментариев. Чаще всего краткие описания делаются на главной странице. Тогда в шаблоне, отвечающем за формирование описания, прописываем сниппет:

[[!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;
  • Просто в установке;
  • Неплохо выглядит.
Что не понравилось:
  • Внешний вид нельзя настроить под себя;
  • Комментарии хранятся отдельно от вашего сайта;
  • Дополнительная нагрузка на страницу, так как идет обращение к стороннему сервису;

На этом всё. Если есть поправки или дополнения, пишите в комментариях, но не забывайте, что я изложил лишь собственное видение различных систем комментирования в MODX Revolution.

Посмотрите похожее — 6
Комментарии — 27
  1. avatar Alex Clampson 26 декабря 2014, 20:45 #
    Обзор полезный, спасибо, однако стоило рассмотреть такие вещи как наличие/отсутствие премодерации и капчи, на мой взгляд полезные опции для таких компонентов
    1. avatar Гость 06 февраля 2015, 12:16 #
      Если не ошибаюсь, на этом сайте установлен Tickets и он не мешает оставлять комментарии незарегистрированным пользователям.
      1. avatar Simkin Andrew 06 февраля 2015, 12:23(был изменён) #
        Да, так оно и есть. Просто когда статья писалась, компонент не позволял оставлять комментарии не авторизованным пользователям и у меня стоял Quip.
      2. avatar Данила 09 августа 2015, 20:20 #
        Здравствуйте автор, я хочу задать вам вопрос, возможно вы сталкивались с подобным, или же у всех так. Параметр &dateFormat=`%d %b %Yг. в %H:%M` в браузере отображается некорректно ��� 2015г. в 20:51. Я так понимаю нет месяца, с чем это может быть связанно. Заранее спасибо.((ps похоже на неверную кодировку, но остальная страница работает корректно.))
        1. avatar Simkin Andrew 09 августа 2015, 21:02 #
          Скорее всего какие-то проблемы с настройками даты/времени на хостинге или в самом движке. Например, временная зона в настройках движка не указана (Система и сервер). И ещё вариант попробовать заменить плейсхолдер, который выводит данную дату на
          [[+createdon:date=`%d %b %Yг. в %H:%M`]]
        2. avatar Вадим 11 сентября 2015, 20:37 #
          Спасибо за статью. Попробую установить на одну из страниц.
          1. avatar Вадим 11 сентября 2015, 20:37 #
            Спасибо
            1. avatar Ден 07 января 2016, 08:40 #
              Хорошая статья, недавно открыл для себя модх, сейчас активно изучаю, потребляю всю доступную информацию. хотя в голове еще каша, но уже многое начинает проясняться. читаю все статьи, одну за другой на этом сайте про модх, нравиться как автор понятно излагает материал.
              1. avatar Simkin Andrew 07 января 2016, 21:50 #
                Спасибо, стараюсь иногда писать.
              2. avatar Виталий 27 января 2016, 01:15 #
                Здравствуйте, всё работает, дата в кириллице нормально, а вот сам текст комментария в виде ??????????,
                хотя в сообщение модератору приходит в нормальном виде.
                Подскажите, где искать проблему.
                1. avatar Simkin Andrew 27 января 2016, 09:21 #
                  Это в QUip? Видимо кодировка, но с такой проблемой не сталкивался, перешел на Tickets
                  1. avatar Виталий 27 января 2016, 13:11 #
                    Да, это Quip — MODX Revo 2.4.2
                    Не могу найти, где происходит смена кодировки для поля имени автора и для текста самого сообщения
                  2. avatar Марат Лопатин 03 июня 2016, 09:05 #
                    еще раз тест, это тикетс?
                    1. avatar Simkin Andrew 03 июня 2016, 13:50 #
                      Это сниппет TicketComments входящий в состав пакета Tickets
                  3. Комментарий был удален.
                    1. avatar Ника 03 мая 2016, 17:09 #
                      Здравствуйте. У меня слетает в Tickets :( Кириллица слетает в «Тексте комментария» и в «Авторе»?! Кириллица становится в виде ??????????! В сообщениях приходит в нормальном виде. Помогите, где копать?
                      1. avatar Ника 03 мая 2016, 17:11(был изменён) #
                        А слетает кириллица при перезагрузке страницы, то есть когда комментарий на клиенте — он нормальный, как только пишется на сервер — ????????.. Подскажите, где копать?
                        1. avatar Simkin Andrew 04 мая 2016, 11:12 #
                          Лучше на modx pro спросить, но судя по всему, неправильная кодировка у таблиц с комментариями в базе данных. То есть, когда добавляешь комментарий, то всё нормально потому что аяксом добавляется, не обращаясь к базе, а при перезагрузки страницы комментарии уже подгружаются из БД с неправильной кодировкой.
                        2. avatar Ника 04 мая 2016, 16:17 #
                          Спасибо за быстрый ответ!
                          1. Комментарий был удален.
                            1. avatar Зуля 26 сентября 2016, 23:21 #
                              После установки Tickets, у меня слетел сайт. Pdoresources перестал работать. А в админке Управлении пакетами перестали отображаться установленные модули. Причину не поняла почему так.
                              1. avatar Simkin Andrew 27 сентября 2016, 07:46 #
                                Необходимо смотреть логи MODX. Установка Тикетов не могла повлиять на Управление пакетами, скорее всего какие-то проблемы в настройке хостинга.
                                1. avatar Зуля 27 сентября 2016, 09:40 #
                                  Вы подскажите где смотреть логи Modx? У меня впс от adminvps. Такое даже не было с сайтом на друпал 7. Пришлось удалить модули Tickets и Jevix.
                                  1. avatar Simkin Andrew 27 сентября 2016, 09:50 #
                                    В верхнем меню Управление > Отчёты > Журнал ошибок. Но всё же проблема не в движке а в настройках веб сервера.
                              2. avatar Зуля 27 сентября 2016, 15:42 #
                                Посмотрела. Там много записей об ошибках.
                                Там примерно такие ошибки:
                                [2016-09-26 23:44:26] (ERROR @ /var/www/.../mysite/core/xpdo/om/xpdoobject.class.php : 240) Error HY000 executing statement: 
                                Array
                                (
                                    [0] => HY000
                                    [1] => 23
                                    [2] => Out of resources when opening file '/tmp/#sql_27a9_0.MYI' (Errcode: 24)
                                )
                                
                                [2016-09-27 00:12:15] (ERROR @ /var/www/.../mysite/core/xpdo/xpdo.class.php : 502) Path specified for package tickets is not a valid or accessible directory: /var/www/.../mysite/core/components/tickets/model/
                                [2016-09-27 00:12:16] (ERROR @ /var/www/.../mysite/core/xpdo/xpdo.class.php : 502) Path specified for package tickets is not a valid or accessible directory: /var/www/.../mysite/core/components/tickets/model/
                                [2016-09-27 00:12:17] (ERROR @ /var/www/.../mysite/core/xpdo/xpdo.class.php : 502) Path specified for package tickets is not a valid or accessible directory: /var/www/.../mysite/core/components/tickets/model/
                                [2016-09-27 01:05:21] (ERROR @ /var/www/.../mysite/core/xpdo/om/xpdoobject.class.php : 240) Error HY000 executing statement: 
                                Array
                                (
                                    [0] => HY000
                                    [1] => 23
                                    [2] => Out of resources when opening file '/tmp/#sql_27a9_0.MYI' (Errcode: 24)
                                )
                                
                                Не знаю что это означает, не поняла.
                                1. avatar Simkin Andrew 27 сентября 2016, 16:30 #
                                  Явно проблема на стороне хостинга. Пишите в тех. поддержку или просите системного администратора настроить его если у вас VDS
                                  1. avatar Зуля 27 сентября 2016, 16:32 #
                                    Да, у меня впс. Под modx revo наверно есть свои требования к серверу? Спасибо.
                                © REALADMIN.RU   2016 г.
                                Страница сгенерирована: 0,1081 s | 10 mb.
                                На каком уровне Вы играете в шахматы?
                                О П Р О С
                                Home Question Top