Модуль YLab: Лайки/Дизлайки — это готовое решение для платформы 1С-Битрикс, которое добавляет на сайт систему голосования для любого типа контента. Продукт предназначен для реализации механик социального взаимодействия: пользователи могут оценивать статьи, новости, товары, комментарии или любые другие сущности. В отличие от стандартных рейтингов, модуль работает через универсальное ORM-ядро и не требует доработки под конкретные задачи — разработчику достаточно указать ID типа контента.
Технические возможности и архитектура
Решение построено на собственном ORM-классе Ylab\Likes\YlabLikesTable, что позволяет гибко интегрировать его в любые компоненты и шаблоны. Покупатель получает доступ к двум константам для голосования (VoteLike и VoteDislike), а также к трём публичным методам:
- setLike() — запись голоса «лайк» для контента по ID, типу и ID пользователя.
- setDislike() — запись голоса «дизлайк» по аналогичному принципу.
- getContentStat() — получение статистики голосов для одного или нескольких элементов контента, включая информацию о голосе текущего пользователя.
Для фронтенд-части предусмотрена JS-библиотека YlabLikesForm, которая подключается через CJSCore::Init(['YlabLikesForm']). Метод BX.Ylab.Likes.setAjaxPath() позволяет динамически изменять пути к PHP-обработчикам, что упрощает работу в сложных архитектурах или при использовании кеширования.
Что получает покупатель после установки
После установки модуля в распоряжении владельца сайта оказывается:
- Готовый API для голосования с поддержкой любых типов сущностей Битрикса.
- Инструмент для сбора аналитики по реакциям пользователей на контент.
- Возможность выводить статистику лайков и дизлайков в любом компоненте (новости, блог, каталог, инфоблоки).
- Поддержка персонализации — метод getContentStat может передавать статус голоса конкретного пользователя, что позволяет подсветить выбранную им оценку.
- Гибкая настройка путей для AJAX-запросов через JavaScript.
Модуль совместим со всеми редакциями 1С-Битрикс: от «Первого сайта» до «Бизнеса». Установлен на более чем 500 проектах, что подтверждает стабильность и востребованность решения. Важно: продукт не требует адаптивности и поддержки композита — он работает как серверный модуль без привязки к шаблону сайта.
Для кого подходит и сценарии использования
Решение будет полезно:
- Владельцам новостных и блоговых порталов — чтобы отслеживать реакцию аудитории на материалы.
- Интернет-магазинам — для сбора обратной связи по товарам или отзывам.
- Сообществам и форумам — где требуется оценка комментариев или пользовательского контента.
- Разработчикам — которые хотят быстро внедрить систему рейтинга без написания собственного кода с нуля.
Модуль подходит для любых тематик, где важна обратная связь от пользователей: от образовательных порталов до маркетплейсов. Благодаря универсальности, продукт легко адаптируется под нестандартные сущности — достаточно задать произвольный ID типа контента.
Модуль реализует функционал лайков/дизлайков для любых сущностей битрикс.
API
ID типа контента определяется произвольно в рамках проекта
php
- ORM класс Ylab\Likes\YlabLikesTable
- Константы
- VoteDislike - Значение дизлайка
- VoteLike - Значение лайка
- Методы
- public static function setLike($iContentId, $iContentType, $iUserId) - Делает запись голоса типа (лайк)
- $iContentId - ID контента
- $iContentType - ID типа контента
- $iUserId - ID пользователя от имени которого будет отдан голос
- public static function setDislike($iContentId, $iContentType, $iUserId) - Делает запись голоса типа (дизлайк)
- $iContentId - ID контента
- $iContentType - ID типа контента
- $iUserId - ID пользователя от имени которого будет отдан голос
- public static function getContentStat($mContentId, $iContentType, $iUserLike = null) - Получает данные о количестве голосов контента
- $mContentId - ID или массив ID контента.
- $iContentType - Ид типа контента
- $iUserLike - (необязательный) ID пользователя для которого будет получено значение его голоса
js
Подключение библиотеки js CJSCore::Init(['YlabLikesForm']);
- Библиотека YlabLikesForm
- Методы
- BX.Ylab.Likes.setAjaxPath(AjaxPath) - Изменить пути к php обработчикам событий
- AjaxPath - По умолчанию{
"setLike": "/bitrix/themes/ylab.likes/ajax/setLike.php",
"setDislike": "/bitrix/themes/ylab.likes/ajax/setDislike.php",
"getContentStat": "/bitrix/themes/ylab.likes/ajax/getContentStat.php"
}
- BX.Ylab.Likes.setLike(iContentId, iContentType, oCallback) - Делает запись голоса типа (лайк) от имени текущего пользователя
- iContentId - ID контента
- iContentType - ID типа контента
- oCallback - Функция коллбек будет вызвана после отправки запроса
- BX.Ylab.Likes.setDislike(iContentId, iContentType, oCallback) - Делает запись голоса типа (дизлайк) от имени текущего пользователя
- iContentId - ID контента
- iContentType - ID типа контента
- oCallback - Функция коллбек будет вызвана после отправки запроса
- BX.Ylab.Likes.getContentStat(iContentId, iContentType, oCallback) - Получает данные о количестве голосов контента и голосе текущего пользователя
- iContentId - ID контента
- iContentType - ID типа контента
- oCallback - Функция коллбек будет вызвана после отправки запроса
Bitrix component
Компонент уже содержит все необходимое для начала работы. Пример использования компонента.
<?
$APPLICATION->IncludeComponent("ylab:likes", "", [
'ELEMENT_ID' => '' /* ID контента */,
'ENTITY_ID' => ''/* ID типа контента */,
'CACHE_TYPE' => 'А',
'CACHE_TIME' => 300
]);
?>