Что умеет решение
Модуль реализует функционал лайков и дизлайков для любых сущностей платформы Bitrix. ID типа контента определяется произвольно в рамках проекта.
В основе решения лежит PHP ORM-класс Ylab\Likes\YlabLikesTable. Определены константы VoteDislike для обозначения дизлайка и VoteLike для лайка.
Для работы с голосами доступны статические методы:
setLike($iContentId, $iContentType, $iUserId) — фиксирует лайк от указанного пользователя.
setDislike($iContentId, $iContentType, $iUserId) — фиксирует дизлайк от указанного пользователя.
В обоих методах параметры $iContentId и $iContentType определяют объект и тип контента, а $iUserId — идентификатор пользователя, выразившего мнение.
Метод getContentStat($mContentId, $iContentType, $iUserLike = null) возвращает статистику голосов. Параметр $mContentId принимает ID или массив ID объектов. Параметр $iContentType указывает тип контента. Необязательный параметр $iUserLike позволяет получить статус конкретного пользователя (его голос или его отсутствие).
Для интеграции интерфейса в JavaScript используется библиотека YlabLikesForm через инициализацию CJSCore::Init(['YlabLikesForm']).
Модуль YLab: Лайки/Дизлайки представляет собой библиотеку для управления системой голосования в среде 1C-Битрикс. Она позволяет регистрировать оценки контента от имени текущего пользователя и получать актуальную статистику.
Метод BX.Ylab.Likes.setAjaxPath(AjaxPath) используется для настройки путей к PHP-обработчикам событий. По умолчанию конфигурация включает следующие маршруты: /bitrix/themes/ylab.likes/ajax/setLike.php для лайков, /bitrix/themes/ylab.likes/ajax/setDislike.php для дизлайков и /bitrix/themes/ylab.likes/ajax/getContentStat.php для получения статистики.
Метод BX.Ylab.Likes.setLike(iContentId, iContentType, oCallback) фиксирует голос «лайк» за указанным контентом. Он принимает идентификатор контента, идентификатор типа контента и функцию обратного вызова, которая срабатывает после отправки запроса.
Метод BX.Ylab.Likes.setDislike(iContentId, iContentType, oCallback) аналогичным образом регистрирует голос «дизлайк» для заданного контента, используя те же параметры: ID контента, ID типа контента и коллбек-функцию.
Метод BX.Ylab.Likes.getContentStat(iContentId, iContentType, oCallback) запрашивает данные о количестве голосов по контенту и статусе голоса текущего пользователя. Результат обработки передается через указанную функцию обратного вызова.
Компонент готов к работе и содержит все необходимое для отображения лайков и дизлайков. Для интеграции вызовите компонент, передав идентификатор элемента и идентификатор типа контента. Параметры кэширования задаются через CACHE_TYPE и CACHE_TIME.
Внедрение «YLab: Лайки/Дизлайки» можно поручить General iT — от установки до настройки и проверки совместимости с сайтом.