Комментарии в MODX Revolution. Quip и его альтернативы. Modx quip
Комментарии статей в 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). Этого не стоит делать по следующим причинам:
- 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 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» — красота из коробки
Что понравилось: - Прост в установке и настройке
- Работает на Ajax, благодаря чему, при оставлении комментария, страницы не перезагружаются полностью
- Современно и красиво выглядит уже из коробки
- Сыроват, встречал баги при работе;
- Внешний вид. Он красив, но в то же время выглядит как-то напыщено, по Джумловски.
Основной причиной моего отказа от этого инструмента для комментирования, стал баг, при котором после оставления комментария окно прокручивалось в самый конец, а не на оставленный только что комментарий. Скорее всего, это баг исправили, а может и возникал он только у меня. Тем не менее, к тому времени у меня уже стоял Quip и менять я его не стал.
«Tickets» — быстрота и надежность
Пакет «Tickets» включает в себя сниппет «TicketComments», который позволяет комментировать не только созданные тикеты, но и обычные ресурсы.
- Работает на Ajax, благодаря чему, при комментировании страница не перезагружается полностью;
- Гибко настраивается внешний вид;
- Высокая скорость работы.
- Не поддерживает возможность оставления комментариев незарегистрированным пользователям;
- Плохо документирован, поэтому потребуется повозится для подстройки под себя.
Компонент очень понравился, но в связи с тем, что я планировал дать возможность комментирования статей для всех пользователей, в том числе и не зарегистрированных, мой выбор пал на «Quip». Про комментирование статей при помощи компонента «Tickets» у меня есть отдельная статья — Компонент Tickets для MODX
«DISQUS» — сторонний сервис комментирования
Этот сервис используется в разных CMS для организации комментариев. Используют его чаще всего ленивые разработчики, которым влом разбираться с настройками существующих решений под CMS. Для использования DISQUS достаточно зарегистрироваться у них на сайте и получить код для вставки на своём сайте: disqus.com
- Работает используя Ajax;
- Просто в установке;
- Неплохо выглядит.
- Внешний вид нельзя настроить под себя;
- Комментарии хранятся отдельно от вашего сайта;
- Дополнительная нагрузка на страницу, так как идет обращение к стороннему сервису;
На этом всё. Если есть поправки или дополнения, пишите в комментариях, но не забывайте, что я изложил лишь собственное видение различных систем комментирования в MODX Revolution.
realadmin.ru
Quip MODX Revolution. Компонент комментариев MODX
Что такое Quip?
Quip – простой сниппет для создания комментариев в MODx Revolution. Он позволяет быстро и просто добавить возможность размещения комментариев на сайте, а также модерировать их, преобразовывать адреса в ссылки, поддерживает треды (thread) и автозавершение тредов, предоставляет доступ к полному управлению комментариями через внутренний, недоступный пользователю, интерфейс Revolution.
Системные требования
- MODx Revolution 2.0.0-RC-2 или более новая версия,
- PHP5 или более новая версия
История разработки
Quip создан Шоном МакКорником (Shaun McCormick) как простой компонент для создания комментариев, впервые опубликован 7 мая 2009 года.
Загрузка
ПО может быть загружено с помощью менеджера MODx Revolution Package Management, или из MODx Extras Repository.
Использование
Quip использует два режима работы, с тредовыми и нетредовыми комментариями.
Нетредовые коментарии
Сниппет Quip может быть вызван на той же странице, на которой вы хотите отобразить комментарий:
1 2 3 |
[[!Quip? &thread=`threadNameHere` &threading=`0`]] [[!QuipReply? &thread=`threadNameHere`]] |
Древовидные комментарии
Перед включением режима «треда» нужно сделать несколько вещей. Первое - добавить страницу «Ответить на тред»("Reply to Thread") с этим вызовом сниппета:
Reply to Thread
Вам не нужно задавать никаких свойств в этом вызове, так как они будут получены из исходного вызова QuipReply на основной странице треда. |
Затем нужно добавить свойство 'replyResourceId' к исходному вызову сниппета Quip на той странице, где осуществляется загрузка комментариев (например, страница с постами в блоге), для ресурса с ID 123 это будет выглядеть так:
[[!Quip? &thread=`threadNameHere` &replyResourceId=`123`]] [[!QuipReply? &thread=`threadNameHere`]] |
Quip также включает в себя дополнительный сниппет QuipCount, который может использоваться для поиска последних комментарий в треде или последних комментариев пользователей.
www.modx.cc
Отзывы в MODX Revo – настройка Quip
Если есть необходимость разместить отзывы или комментарии на сайте, наиболее подходящим решением будет установка пакета Quip для MODx. Используя готовое решение из данной статьи вы сможете получить комментарии на сайте.
Данная инструкция подходит для MODx revolution. По умолчанию аватары отключены, но их можно включить (&useGravatar=1 в настройках сниппета Quip).
Вставляем в шаблон (либо ресурсе):
[ [!Quip?&thread=`[ [*alias]]-[ [*id]]`&useGravatar=`0`&dateFormat=`%d %b %Yг. в %H:%M`]][ [!QuipReply? &thread=`[ [*alias]]-[ [*id]]` &moderate=`1`&closeAfter=`0`]]
CSS:
.quip-comment .quip-fld{margin:5px}.quip-comment .quip-fld label{font-weight:700;white-space:nowrap;width:220px}#quip-comment-box-qcom{margin-bottom:10px}.quip h4{display:none}.quip-comment button{border:1px solid #ccc;border-radius:4px;background:#F5F5F5;outline:none;padding:5px 10px;cursor:pointer}.quip-comment button:hover{background:#E2E2E2}.quip-comment button:active{background:#fff}.quip-comment-list .quip-comment{margin-bottom:10px;border:1px solid #DFDFDF}.quip-comment .quip-comment-text p{padding:0;margin:0 0 7px}.quip-comment p.quip-comment-meta{border-bottom:1px solid #eaeaea;margin-bottom:7px}.quip-comment .quip-comment-body{padding:10px 20px}
В файле:
core/components/quip/elements/chunks/quipaddcomment.chunk.tpl Убедетесь, что права файлов установлены такие, что вы можете сохранить файл после редактирования
Вместо:
<button type="submit" name="[ [+preview_action]]" value="1">[ [%quip.preview]]</button>[ [+can_post:is=`1`:then=`<button type="submit" name="[ [+post_action]]" value="1">[ [%quip.post]]</button>`]]
Поместить:
[ [+can_post:is=`1`:then=`<button type="submit" name="[ [+post_action]]" value="1">Опубликовать</button>`]]<button type="submit" name="[ [+preview_action]]" value="1">Предпросмотр</button>
Комментарии (2)
about-cms.com
Урок 21. AJAX загрузка Quip комментариев MODX
Попробуем разобраться сегодня как загружать комментарии используя Quip, AJAX и прямые руки. Для начала установите компонент Quip, если он ещё не установлен.
Создадим ресурс с произвольным именем, шаблоном _Blank (!) и назначим ему псевдоним (alias) как ajaxgetcomments, переходим на вкладку Настройки (Settings) и ставим чекбокс Заморозить URI (Freeze URI) и выставляем значение ajaxgetcomments без ".html".
Вставляем в поле "содержимое" (content) некешируемый вызов сниппета ajaxGetComments. Получается следующая картина:
Давайте теперь создадим сам сниппет ajaxGetComments. Этот сниппет - всего лишь модифицированный сниппет Quip, который будет принимать параметр thread от AJAX вызова и выдавать соответствующий тред комментариев. Скопируем код сниппета Quip и добавим туда сверху код, принимающий параметр thread (нужный тред) и передающий его в $properties в виде массива после инициализации контекста:
Мы проверим вначале работу сниппета и, если всё сделали правильно и получаем комментарии, то поменяем GET на POST.
Проверим теперь работу сниппета: напишем в адресной строке браузера запрос, вида: http://mysite.com/ajaxgetcomments?thread=mythread, где mythread - это ИД треда, для меня строка проверки работы была http://modx.ws/demo/ajaxgetcomments?thread=blog-post-11
ИД треда можно найти в менеджере в Quip компоненте, смотрим изображение:
Итак, если сниппет работает как нужно, то меняем запрос GET на POST и добавляем вверху сниппета ajaxGetComments для проверки наличия AJAX-запроса следующую строчку:
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}Создадим код кнопки "Показать комментарии", которая будет содержать данные о треде вывода комментариев в атрибуте data-thread. Вставляем его в том месте шаблона, где планируем выводить комментарии. Код кнопки:
Создадим JS-код, который будет обрабатывать нажатие кнопки, брать данные о треде из атрибута data-thread и отсылать его в post-запросе на нужный нам URL:
Вставляем данный код после вызова библиотеки jQuery (на момент написания статьи - 1.8.2). Добавляем необходимые стили и в итоге получаем следующий код шаблона:
Что нужно читать, чтобы понять как я это сделал:
- Основы Ajax статья Василия Наумкина о AJAX в MODX Revolution. Расширяет горизонты =).
- Документация по Quip. - тут можно почитать и узнать какие дополнительные параметры можно передавать-получать для AJAX запроса.
- HTML5 data-атрибуты (data-*) пожалуй самая удачная статья по data-атрибутам, есть одна на Хабре, но эта была самой понятной.
- AJAX в MODX Revolution когда-то я уже переводил статьи о AJAX в MODX Revolution.
Demo
Вот пожалуй и всё. Как обычно задавайте вопросы.
modx.ws
Комментарии в MODX Revolution. Quip.
В MODX Revolution есть несколько пакетов, предназначенных для организации вывода и создания комментариев. Самый распространенный и старейший - «Quip».
Установка производится из репозитория в несколько кликов.
В шаблоне (или чанке), который планируется использовать для ресурсов с комментариями, прописываем 2 сниппета:
[ [!Quip?&thread=`kommentarii-v-modx-revolution.-quip-65` &useGravatar=`0` &dateFormat=`%d %b %Yг. в %H:%M` &tplComment=`comment` ]]
[ [!QuipReply?&thread=`kommentarii-v-modx-revolution.-quip-65`&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'у комментатора. Если есть, то выводит её, а если нет - выводит аватар по умолчанию.
dateFormat - формат выводимого времени, когда был оставлен комментарий.
tplComment - чанк, содержащий оформление выводимого комментария.
moderate - указывает, показывать ли оставленный комментарий сразу, или только после одобрения модератором.
tplAddComment - чанк для оформления формы ввода нового комментария.
У сниппетов так же много других параметров. Есть возможность создания капчи, разрешение комментирования только зарегистрированным пользователям и многие другие.
Вывод последних комментариев в «Quip» MODX
Осуществляется вызовом сниппета:
[ [!QuipLatestComments? &tpl=`latestCommentTpl` &limit=`3`]]
limit - указывает, сколько последних комментариев выводить; tpl - чанк оформления одного «последнего» комментария. Его содержимое представляет из себя плейсхолдеры, вывод которых оформляется с помощью html и CSS. Вот пример:
<a href=""> </a><div> </div>
<div><span></span> <span></span> </div>
В этом чанке выводится название ресурса с комментарием, текст комментария, урезанный до 55 символов, имя автора комментария и дата создания с форматом вывода.
Вывод количества комментариев «Quip» MODX
Иногда требуется к описанию поста вывести количество комментариев. Чаще всего краткие описания делаются на главной странице. Тогда в шаблоне, отвечающем за формирование описания, прописываем сниппет:
[ [!QuipCount?&thread=`-`]]
freelgraf.in.ua
Quip - Дополнения - RTFM
Что такое Quip?
Quip - сниппет простого комментирования для MODX Revolution. Он позволяет быстро и легко писать комментарии на своем сайте, в том числе с поддержкой веток, модерации, преобразованием url в ссылки, автоматическим закрытием тем и многое другое. Он также позволяет полностью управлять комментариями через админку системы или сайта.
Требования
MODX Revolution 2.0.0 RC2 или новее
PHP5 или новее
История
Quip был написан Шоном Маккормиком как компонент простого комментирования, первый релиз состоялся 7 мая 2009 года.
Скачать
Компонент можно скачать через админку MODX Revolution с помощью менеджера пакетов или из репозитория дополнений MODX, это здесь: http://modx.com/extras/package/quip
Документацию по API для Quip можно найти здесь: http://api.modx.com/quip/
Использование
Quip работает в 2-х режимах - древовидные комментарии и обычные
Обычные комментарии
Сниппет Quip можно вызвать на странице там, где вы хотите показать комментарии, вот так:
Древовидные комментарии
Если у вас включено ветвление, вам нужно сначала сделать несколько действий. Одним из них является добавить страницу "Ответить в теме" с этими вызовами сниппетов:
<h3>Reply to Thread</h3> <br />Вам не нужно задавать другие параметры в этом вызове, так как они будут взяты из вашего оригинального вызова QuipReply на главной странице темы.
И затем вам нужно будет добавить параметр "replyResourceId" в ваш исходный вызов сниппета Quip на странице, где будут загружаться комментарии (например, в блоге), так это будет выглядеть с ресурсом, у которого id 123:
<br />Кроме этого, Quip дает возможность пользователям с помощью вызова сниппета QuipCount получить количество ветвей комментариев или обычных комментариев пользователей.
Сниппеты Quip
Quip поставляется с 4 отдельными сниппетами:
- Quip - показывает комментарии для ветки
- QuipReply - отображает форму для ответа в ветке
- QuipCount - возвращает количество комментариев в ветке
- QuipLatestComments - отображает список последних комментариев для все веток, пользователей или конкретной ветки.
Системные настройки
Quip поставляется с предварительно заданными некоторыми параметрами, распространяющимися на весь сайт.
Ключ | Описание |
quip.emailsFrom | Email, от которого будут отсылаться системные письма и письма для модерации. |
quip.emailsTo | Email, на который будут отсылаться системные письма и письма для модерации. |
quip.emailsReplyTo | Email, который будет установлен в поле reply-to. По умолчанию поле emailFrom. |
quip.allowedTags | Теги разрешеннные пользователям в комментариях. Смотрите список возможных значений тут php.net/strip_tags |
Кроме того есть 3 настройки для поддержки reCaptcha в пространстве имен recaptcha:
Ключ | Описание |
recaptcha.public_key | Ваш публичный ключ для reCaptcha |
recaptcha.private_key | Ваш секретный ключ для reCaptcha |
recaptcha.use_ssl | Если да, будет использован протокол SSL для подключения reCaptcha |
Примеры
Строка с простым кодом для поста в блоге, который в ресурсе без ветвления:
Показать комментарии для ветки "post45", но только для зарегистрированных пользователей и будет видна кнопка "Ответить в теме" для ресурса с ID 123:
<br />Показать комментарии для ветки "spamproof123" без ветвления, но с поддержкой reCaptcha.
<br />modx.by
Создание страницы с отзывами на MODX
Сегодня мы поговорим о том как в modx создать страницу с отзывами.
Есть несколько способов сделать это.
1 способ. Подключение комментариев от в контакте
Для того чтобы подключить форму комментирования от вконтакте, вам нужно перейти на страницу vk.com/dev/Comments, скопировать кусок кода, создать чанк и вставить в него код, далее вывести его в нужном месте.
2 способ. Воспользоватся компонентом easyComm
easyComm платный компонент, стоит менее 500р, купить его можно здесь: modstore.pro/packages/utilities/easycomm.
Чтобы вывести форму для оставления отзывов. достаточно установить этот компонент и на странице с отзывами вывести сниппет ecMessages:
Анонсы компонента от автора:1. modx.pro/components/5234-easycomm-comments-feedback-questions-on-the-website/2. modx.pro/components/5299-easycomm-1-0-4-beta2-evaluation-and-rating/
3 способ. Воспользоватся компонентом modxTalks
Подробнее о данном компоненте можно почитать здесь: modxtalks.artdevue.com/ru/
Ну а скачать его можно с основного репозитория.
4 способ. Воспользоватся компонентом Tickets
Именно на этом способе я обычно останавливаюсь (обычно при создании сайтов визиток).
Устанавливаете компонент Tickets (загрузите его можно из репозитория modxstore).
Вывод простейшей формы для отзывов будет следующим:
[[!TicketComments? &allowGuest=`1`]]
[[!TicketComments? &allowGuest=`1`]] |
где параметр &allowGuest равный единице, добавляет возможность комментирования не авторизованным пользователям.
В данном случае отзывы смогут оставить все желающие и они будут публиковатся на сайте после того как вы их одобрите.
Если хотите чтобы отзывы попадали на сайт без предмодерации, в вывод можно добавить параметр &autoPublish равный единице.
для того чтобы форма комментариев находилась в верху, а не под всеми комментариями добавьте в вызов параметр &formBeforeравный единице.
[[!TicketComments? &allowGuest=`1`&autoPublish=`1`&formBefore=`1`]]
[[!TicketComments? &allowGuest=`1`&autoPublish=`1`&formBefore=`1`]] |
Ну и так далее, смотрите документацию по компоненту: docs.modx.pro/components/tickets/snippets/ticketcomments
Также есть возможность скрывать форму от не авторизованных пользователей и дать возможность оставлять отзывы только тем кто залогинился. Для этого вам дополнительно нужно установить компонент HybridAuth, и вызывать форму так.
[[!HybridAuth? &providers=`Facebook,Vkontakte` &groups=`Member:2` ]] [[!TicketComments? &allowGuest=`0`&autoPublish=`1`&formBefore=`1`]]
[[!HybridAuth? &providers=`Facebook,Vkontakte` &groups=`Member:2` ]] [[!TicketComments? &allowGuest=`0`&autoPublish=`1`&formBefore=`1`]] |
В данном случае нужно настроить права пользователей, о том как это сделать написано в документации здесь: docs.modx.pro/components/tickets/interface/components/tickets/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81/components/tickets/interface/configure-user-rights
Ну а чтобы изменить название комментировать, оставить комментарий и т.д. Перейдите в настройки — управление словарями, выберите tickets — ru и переименуйте все что нужно под свой лад.
Если кому то не нравится стандартное оформление, то можете поправить на свой лад чанки ticket comments
Документация по ticket comments находится здесь: docs.modx.pro/components/tickets/snippets/ticketcomments
Если возникли вопросы, задавайте в комментариях.
web-revenue.ru