Skip to content
easyComm
easyComm
Создание модулей и разделов отзывов, комментариев, вопросов и ответов
  1. Компоненты
  2. easyComm
  3. Описание

Описание

Назначение

Компонент предназначен для создания на сайтах таких разделов и блоков, как:

  • отзывы;
  • комментарии;
  • вопросы пользователей.

Особенность компонента — механизм пользовательских оценок (от 1 до 5, настраивается), на основании которых считается рейтинг по 2-м алгоритмам (средний и продвинутый).

Продвинутый рейтинг считается как нижняя граница доверительного интервала Вильсона (Wilson) для параметра Бернулли (описание). Этот алгоритм позволяет избежать проблем расчета рейтинга при небольшом количестве оценок.

easyComm работает как с неавторизованными пользователями (гостями), так и с авторизованными.

Описание работы компонента

  • Пользователь сайта оставляет свой комментарий/отзыв/вопрос к чему либо (например, товару) через специальную форму.
  • Администратор сайта получает уведомление на почту, в специальном разделе панели управления сайтом управляет сообщениями (можно опубликовать, удалить, отредактировать), а также оставить свой ответ на него.
  • Если пользователь оставил электронную почту, то он получит уведомление на свой email.
  • Если используется поле Оценка, то после публикации сообщения происходит перерасчет рейтинга.
  • Вы можете включить голосование за каждое сообщение, чтобы пользователи могли оценить его полезность.

Подсказка

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

Цель easyComm — связь с покупателями интернет магазинов, посетителями сайтов компаний, продающих услуги.

Возможности

  1. Создание произвольного количества цепочек сообщений. Сообщения привязаны не к ресурсам, а к цепочкам, а те в свою очередь к ресурсу, это позволяет на одной странице создать несколько цепочек сообщений, к примеру, Отзывы и Вопросы.
  2. Полноценное управление всеми сообщениями и цепочками через админку. Компонент добавляет свой пункт в меню Приложения, через который администратор может создавать/редактировать/удалять как цепочки, так и сообщения.
  3. Вкладка «Сообщения» на странице ресурса. Повторяет функционал, описанный в предыдущем пункте, но с условием, что здесь доступны только сообщения и цепочки, относящиеся к текущему ресурсу.
  4. Уведомления по почте. Приходит уведомления администратору о новом сообщении, а если пользователь оставил свою электронную почту, то и ему о том, что он оставил сообщение и о том, что его сообщение опубликовано на сайте.
  5. Оценки и рейтинг. В компонент добавлен функционал, позволяющий пользователям давать свою оценку чего-либо, а на ее основании рассчитывается общий рейтинг по 2-м алгоритмам.
  6. Добавление произвольных полей. Если вам недостаточно стандартного набора полей у сообщения (а это Дата, Имя пользователя, Эл. почта, Контакты, Оценка, Тема сообщения, Текст сообщения, Автор ответа, Текст ответа), то при помощи системы плагинов есть возможность добавить произвольное количество своих полей.
  7. Несколько полей рейтинга. Хоть в компоненте присутствует одно поле rating, но механизм добавления дополнительных полей позволяет добавить в том числе и поля с типом рейтинг (звездочками), причем для них так же будут высчитываться средние показатели. Таким образом вы можете дать возможность проставлять сразу несколько оценок.
  8. Кастомизация внешнего вида. Внешний вид на фронтенде изменяется привычным способом — путем создания своих чанков. В админке так же есть возможность изменить внешний вид: можно поменять как набор колонок в списках, так и поля, доступные при редактировании сообщения.
  9. Поддержка Gravatar. Сниппет ecMessages поддерживает gravatar. Если у сообщения заполнен email, то в чанке вывода сообщения доступен плейсхолдер gravatar.
  10. Вывод расширенного рейтинга. Сниппет ecThreadRating поддерживает вывод подробной информации о голосах пользователей. Вместе с компонентом идет отдельный чанк tpl.ecThreadDetailedRating, в котором реализован подобный вывод. Расширенное отображение рейтинга
  11. Голосование за Сообщения. Голосование (Нравится/Не нравится) за каждое отдельное Сообщение, как для авторизованных пользователей, так и для гостей.
  12. По-умолчанию оценка проставляется от 1 до 5, но вы можете это изменить, например сделать от 1 до 10. Для этого есть специальная настройка, также потребуется внести изменения в html разметку и css правила.

Зависимости

Для корректной работы необходимо (вы должны самостоятельно установить на сайт):

  • установленная библиотека pdoTools (в чанках используется парсер Fenom, входящий в состав pdoTools);
  • в чанке вывода сообщения дополнительно используется сниппет dateAgo для формирования «красивой» даты (но можно и без него).

Информация

Старые версии компонента (до 1.11.4-pl) требовали наличие на фронте библиотеки jQuery и плагина jquery.form.

Пример работы

Форма добавления сообщения

При помощи сниппета [[!ecForm]] отображаем форму добавления нового сообщения на странице сайта, например в карточке товара. На скриншоте стандартный набор полей, вы можете оставить только те, что нужны.

Написать сообщение

Когда пользователь заполняет форму и отправляет ее, сообщение сохраняется в базе со статусом "не опубликовано" (кстати, есть возможность автопубликации сообщений, см. параметры сниппета [[!ecForm]]). Менеджеру сайта приходит уведомление на электронную почту. Если пользователь оставил свою электронную почту, ему так же придет уведомление о том, что его сообщение получено и ожидает модерации.

Менеджер в специальном разделе панели управления может управлять сообщениями, например опубликовать их, оставить свой ответ, удалить. При редактировании сообщения менеджер имеет возможность установить галочку "уведомить об ответе", в этом случае пользователь получит уведомление на почту о том, что его сообщение на сайте опубликовано. Возможны различные варианты действий, например: опубликовал без ответа; опубликовал и оставил ответ; не публиковал на сайте, но ответил.

Вывод сообщений

При помощи сниппета [[!ecMessages]] выводятся опубликованные сообщения на странице сайта.

Список сообщений

Объекты Сообщение и Цепочка

Компонент оперирует двумя основными объектами:

  • Сообщение (объект ecMessage);
  • Цепочка сообщений (объект ecThread).

Благодаря тому, что все сообщения привязаны к цепочке, а не к ресурсу, можно на одной странице использовать несколько вызовов easyComm и создать, к примеру, 2 вкладки: "Отзывы о товаре" и "Вопросы о товаре".

Поля объекта ecThread:

  • resource - id ресурса, к которому относится цепочка
  • name - уникальное имя цепочки, например "resource-123";
  • title - заголовок цепочки (для удобства), например "Отзывы о товаре 123";
  • message_last - id последнего опубликованного и неудаленного сообщения;
  • message_last_date - дата последнего опубликованного и неудаленного сообщения;
  • count - количество опубликованных и неудаленных сообщений в цепочке;
  • votes - данные с количеством голосов (например оценка "1" - 3 голоса, "2" - 0 голосов и т.д.), в формате json;
  • properties - параметры, с которыми вызывался сниппет ecForm, создавший эту цепочку;
  • extended - поле не используется в текущей версии, можете использовать по своему усмотрению;
  • rating_simple - средняя оценка, на основании всех сообщений в цепочке;
  • rating_wilson - оценка, рассчитанная с использованием алгоритма Вильсона.

Поля объекта ecMessage:

  • thread - id цепочки;
  • subject - тема сообщения, например вы можете создать выпадающий список со значениями "Служба поддержки", "Отдел продаж";
  • date - дата и время;
  • user_name - имя пользователя, который оставил сообщение;
  • user_email - электронная почта;
  • user_contacts - контактная информация;
  • text - текст сообщения;
  • reply_author - автор ответа;
  • reply_text - текст ответа;
  • notify - уведомить об ответе пользователя;
  • notify_date - дата последнего уведомления пользователя (что бы не уведомлять 2 раза);
  • ip - IP адрес;
  • rating - оценка;
  • votes - общее кол-во голосов (как "Нравится", так и "Не нравится");
  • dislikes - кол-во голосов Нравится;
  • rating - кол-во голосов Не нравится;
  • votes_rating - оценка голосов (рейтинг) Сообщения;
  • extended - не используется в текущей версии.

Кроме того, у сообщения есть такие поля: createdon, createdby, editedon, editedby, published, publishedon, publishedby, deleted, deletedon, deletedby, назначение их ясно из названия поля.