Статус партнерства с 1С-Битрикс: Бизнес партнер
  • Маркетплейс
  • Документация
  • Блог
  • Новости
  • Софт
  • Профиль
  • Лайки для элементов информационных блоков

    Модуль обеспечивает обработку "Лайков" проставляемых посетителями сайта для элементов информационных блоков.

    При первом клике по кнопке отмеченной для модуля происходит установка лайка, при повторном - отмена. Информация хранится в собственной таблице, возможность хранения "дизлайков" отсутствует. Есть защита от повторного голосования.

    Для использования функционала после установки модуля из Маркетплейс, можно подключить компонент (Документация компонента):

    $APPLICATION->IncludeComponent(
            "vasoft:likeit.button",
            ".default",
            array(
                "SHOW_COUNTER" => "Y",
                "ENABLE_ACTION" => "Y",
                "ID" => $arResult['ID']
            ),
            false
    );
    

    Либо необходимо выполнить следующее:

    • Указать элемент или элементы, которые будут содержать информацию о лайках. Для этого необходимо указать css-класс 'vs-likeit' и добавить атрибут 'dataid' со значением ИД элемента информационного блока
    • Для элементов, которые так же являются кнопками установки/отмены "лайка", указать css-класс vs-likeit-action
    • для отображения количества установленных "лайков" разместить внутри элемента с классом vs-likeit элемент с классом vs-likeit-cnt
    • Подключить скрипт (c учетом кеширования)

    При подключении вне кешируемой области:

    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);
    

    Все решения

    © 2001-2024 Воробьев Александр