Модуль обеспечивает обработку "Лайков" проставляемых посетителями сайта для элементов информационных блоков.
При первом клике по кнопке отмеченной для модуля происходит установка лайка, при повторном - отмена. Информация хранится в собственной таблице, возможность хранения "дизлайков" отсутствует. Есть защита от повторного голосования.
Для использования функционала после установки модуля из Маркетплейс, можно подключить компонент (Документация компонента):
$APPLICATION->IncludeComponent( "vasoft:likeit.button", ".default", array( "SHOW_COUNTER" => "Y", "ENABLE_ACTION" => "Y", "ID" => $arResult['ID'] ), false );
Либо необходимо выполнить следующее:
При подключении вне кешируемой области:
use Bitrix\Main\Page\Asset; Asset::getInstance()->addJs('/bitrix/js/vasoft.likeit/likeit.js');
При подключении в шаблоне другого компонента:
$this->addExternalJS('/bitrix/js/vasoft.likeit/likeit.js');
Пример вывода элементов:
<span class="vs-likeit" dataid="10"><span class="vs-likeit-cnt"></span></span> <span class="vs-likeit vs-likeit-action" dataid="10"><span class="vs-likeit-cnt"></span></span> <span class="vs-likeit vs-likeit-action" dataid="10"></span>
Класс 'vs-likeit-action' указывает на необходимость обрабатывать клик.
Если соответствующий элемент информационного блока уже был "лайкнут" текущим пользователем - элементу HTML добавляется класс 'vs-likeit-active'.
Классы 'vs-likeit-active' и 'vs-likeit-cnt' можно переопределить задав значения JavaScript переменным
window.vas_likeit_classactive = 'my-acive'; window.vas_likeit_classcnt = 'my-cnt';
Так же получить статистику по лайкам в шаблонах при помощи команды (где $arIDs - массив ИД элементов инфо-блока)
Без учета текущего пользователя и без кеширования
\Bitrix\Main\Loader::includeModule('vasoft.likeit'); $stat = new \Vasoft\LikeIt\Services\Statistic(); $arLikes = $stat->checkLike($arIDs);
Без учета текущего пользователя и с кешированием
\Bitrix\Main\Loader::includeModule('vasoft.likeit'); $stat = new \Vasoft\LikeIt\Services\Statistic(); $arLikes = $stat->checkLikeCached($arIDs);
С информацией о выборе текущего пользователя и без кеширования
\Bitrix\Main\Loader::includeModule('vasoft.likeit'); $stat = new \Vasoft\LikeIt\Services\Statistic(); $arLikes = $stat->checkLikeUser($arIDs);
С информацией о выборе текущего пользователя и с кешированием
\Bitrix\Main\Loader::includeModule('vasoft.likeit'); $stat = new \Vasoft\LikeIt\Services\Statistic(); $arLikes = $stat->checkLikeUserCached($arIDs);