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


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

Почти каждый сайт должен иметь обратную связь с посетителями и чаще всего она реализуется через комментирование. В 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). Этого не стоит делать по следующим причинам:

Чтобы избежать подобных проблем, я рекомендую формировать его из псевдонима (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 href="[[+url]]"> [[+pagetitle]] </a> <div> [[+body:ellipsis=`55`]] </div> <div> <span>[[+name]]</span> <span>[[+createdon:strtotime:date=`%d %b %Yг. в %H:%M`]]</span> </div>

В этом чанке выводится название ресурса с комментарием, текст комментария, урезанный до 55 символов, имя автора комментария и дата создания с форматом вывода.

Вывод количества комментариев «Quip» MODX

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

[[!QuipCount? &thread=`[[+alias]]-[[+id]]`]] «Quip» хороший и гибкий компонент, но есть у него и недостаток — замедляет генерацию страницы при большом количестве комментариев (более 50 на один ресурс). Если Ваш сайт часто комментируется, то стоит подумать об использовании альтернативных вариантов.

«MODX Talks» — красота из коробки

Что понравилось: Что не понравилось:

Основной причиной моего отказа от этого инструмента для комментирования, стал баг, при котором после оставления комментария окно прокручивалось в самый конец, а не на оставленный только что комментарий. Скорее всего, это баг исправили, а может и возникал он только у меня. Тем не менее, к тому времени у меня уже стоял Quip и менять я его не стал.

«Tickets» — быстрота и надежность

Пакет «Tickets» включает в себя сниппет «TicketComments», который позволяет комментировать не только созданные тикеты, но и обычные ресурсы.

Что понравилось: Что не понравилось:

Компонент очень понравился, но в связи с тем, что я планировал дать возможность комментирования статей для всех пользователей, в том числе и не зарегистрированных, мой выбор пал на «Quip». Про комментирование статей при помощи компонента «Tickets» у меня есть отдельная статья — Компонент Tickets для MODX

«DISQUS» — сторонний сервис комментирования

Этот сервис используется в разных CMS для организации комментариев. Используют его чаще всего ленивые разработчики, которым влом разбираться с настройками существующих решений под CMS. Для использования DISQUS достаточно зарегистрироваться у них на сайте и получить код для вставки на своём сайте: disqus.com

Что понравилось: Что не понравилось:

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

realadmin.ru

Компонент Tickets — пользовательские страницы и комментарии / Хабр

Давно не писал ничего на Хабре — был по уши занят. За это время многое сделано, но еще больше в планах. А вот вчера выпустил новый компонент Tickets, для создания системы техподдержки. Понятно, только в MODX Revolution.

Принцип обычный — пользователь задает вопрос и получает ответы в комментариях.

В процессе работы оказалось, что систему, в общем-то, можно использовать и для сайтов с user-generated content, типа простенького LiveStreet (видео с демонстрацией работы в конце поста). Итак, какие возможности на данный момент?

Собственные типы ресурсов.
Все тикеты хранятся в ресурсах, но они имеют собственные классы, наследующие modResource. Это дает возможность организовать им отдельные правила создания\изменения\вывода и даже собственные страницы в менеджере.

Например, тикеты не показываются в дереве ресурсов (и не тормозят его, своим количеством), все управление ими происходит со специальной страницы раздела тикетов. Там же выводятся и комментарии, для управления.

Если вы видели Articles, расширение для ведения блога от авторов MODX — то здесь сделано почти так же.

Создание\редактирование страниц с фронтенда
Тут понятно, основной функционал. Используется замечательный редактор MarkItUp. Набор кнопок и их работы можно задавать в системных настройках.
Собственные быстрые ajax-комментарии, с управлением в админке.
Комментарии с этом деле — половина работы. Для MODX Revolution есть ровно одна система комментирования — жутко тормозной Quip, с которым я поначалу хотел сдружиться. Написал свои классы, которые расширяли Quip и давали возможность работать через Ajax. Все шло хорошо, пока не поставил на свой сайт, и не понял — что оно жутко тормозит. Тема с 315 комментариями открывалась 10 -12 секунд, без кэша.

Поэтому, пришлось напрячься и дописать комментарии до самостоятельного состояния, без зависимостей от Quip. Так появилась вторая система комментирования для MODX Revolution. За образец были взяты комментарии Хабра и LiiveStreet.

Страница с 315 комментариями теперь открывается за 0,6 сек., без кэша. Его я пока даже не прикручивал.

Поддержка политик безопасности
Тут рассказывать особо нечего — используется система прав Revolution, которая делает все за меня. Установочный пакет добавляет свои разрешения и политики, которые потом можно использовать.

Отдельно даются права на работу с тикетами «вообще», и для создания их в определенном разделе. Так же есть разрешение на создание комментария.

Отдельный механизм работы с кэшем
Основное нарекание на MODX — это постоянная очистка кэша при любом пуке в менеджере. Понятно, что кэширование в Revolution очень крутое и невозможно иначе очистить все возможные связи обновленного ресурса. Но на сайте с парой тысяч ресурсов это становится настоящей головной болью. Учитывая, что пользователи могут редактировать свои тикеты — сайт просто встанет колом при серьезных цифрах.

Поэтому, при обновлении тикета в админке или фронтенде очищается только кэш именно этого тикета, и страницы его родителя (секции тикетов). Все остальное можно чистить плагином по событию OnDocFormSave, если нужно.

Jevix для фильтрации при выводе на экран
В первую очередь расширение предназначено для контента, созданного пользователями. А они могут напихать нам всяких XSS и прочих пакостей.

С этим вопросом вдумчиво разбирается отличный Jevix, правила которого настраиваются отдельными наборами параметров. Причем, отдельно для тикета и комментария.

Если у вас нет этого расширения для фильтрации и типографии — Tickets автоматически скачает и установит его. Без Jevix работать пока нельзя.

Ну и еще по мелочи:

В общей сложности, на эту работу у меня ушло около 40 дней. Чистого времени, приблизительно, 140 часов. Видео установки и настройки Tickets на чистом сайте.

Это первая публичная бета, версия довольно ранняя — но вполне стабильная.

Не могу не упомянуть добрую студию Simple Dream, которые заказали это расширение, оплатили, и выложить его бесплатно в репозитории.

Исходный код доступен на Github. Посмотреть в реальной работе можно у меня на сайте.

habr.com

Выпустил Tickets / Расширения MODX / Блоги / bezumkin.ru

Сегодня замечательный день! Наконец-то, компонент Tickets был выпущен в свободное плавание — в репозиторий MODX.

В общей сложности, на эту работу у меня ушло около 40 дней. Чистого времени, приблизительно, 140 часов. По сути вышло первое качественное расширение, для создания пользовательских страниц с комментариями. Этакий упрощенный LiveStreet. Комментарии однозначно лучшие из всех, что есть на Revolution (ха-ха, конечно — кроме Quip ничего и не было). Документации нет, как и желания бесплатно её писать. Поэтому я просто сделал видео, в котором показано, что Tickets запускается на новом сайте буквально за несколько минут. Пока делал видео офигел от мысли, что из 8 нужных компонентов, 4 — мои.

Основная разработка закончена, но есть планы на будущее: добавить всякие плюшки, типа рейтингов, редактирования комментариев с фронтенда и индикатора непрочитанных. После некоторого перерыва, конечно.

Сейчас есть:

Очень прошу не задавать глупых вопросов, все что нужно для работы я показал в ролике. У сниппетов есть параметры, у параметров есть описания. Включайте голову, разбирайтесь.

Компонент заказан, оплачен и подарен вам студией Simple Dream. Если бы не они, вы бы вряд ли увидели и другие работы: miniShop, mSearch, Jevix, BannerY.

Добавление новых комментариев отключено.

bezumkin.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта