Быстрое и удобное уведомление о cookie для сайтов на 1С-Битрикс. Модуль «Cookie менеджер Про» от Первый линк (1lsite.ru) покажет посетителям понятный баннер, даст выбор категорий куки и автоматически приведёт сайт в соответствие с требованиями о персональных данных.
Зачем нужен152-ФЗ требует, чтобы перед сбором и обработкой cookie посетитель дал информированное согласие — и мог отозвать его. Модуль решает это «из коробки»: баннер появляется при первом визите, а выбор сохраняется на срок, который вы задаёте.
ВозможностиЛёгкий модуль баннера согласия на обработку cookie для CMS 1С-Битрикс. Возможность настроить
согласие по категориям (consent manager) с автоматической блокировкой сторонних трекеров до
получения согласия и логированием решений посетителей.
(Яндекс Метрика, GA4), Маркетинговые (GTM, VK, Meta/Facebook, TikTok).
загрузки скриптов) — настраивается в админке.
категории, IP, User-Agent, дата.
(с маркерами llink.cookiepro auto-bootstrap) — баннер начинает работать сразу,
без правки шаблона. При удалении модуля блок из init.php убирается автоматически.
Баннер внедряется автоматически на всех публичных страницах через событие
OnEndBufferContent — правка шаблона не требуется. Достаточно установить и включить
модуль в админке (опция «Баннер активен»), затем сохранить нужные настройки.
Ручной вызов (если нужно управлять порядком или внедрять точечно) — в header.php шаблона:
<?php
use Bitrix\Main\Loader;
if (Loader::includeModule('llink.cookiepro')) {
\llink_cookiepro::addBanner();
}
?> |
Loader::includeModule() подключает include.php модуля (где объявлен класс llink_cookiepro).
Без этого вызова класс не будет доступен в шаблоне.
Вывод ссылки (кнопки) «Настроить cookie» в подвале сайта — позволяет открыть панель настроек
повторно, даже после того как согласие уже дано:
<?= \llink_cookiepro::settingsLink() ?> |
Настройки → Настройки продукта → Настройки модулей → «Cookie Banner»:
Согласие хранится в cookie cookie_consent в виде JSON:
cookie_consent = 1:{"necessary":true,"analytics":false,"marketing":false} |
Пользователь может принять всё, принять только необходимые, отменить всё или настроить по
категориям в панели.
Хелпер hasConsent($category) позволяет подключить трекеры только после согласия:
<?php if (\llink_cookiepro::hasConsent('necessary')): ?>
<!-- основные скрипты сайта -->
<?php endif; ?>
<?php if (\llink_cookiepro::hasConsent('analytics')): ?>
<!-- счётчик Яндекс.Метрики / Google Analytics -->
<?php endif; ?>
<?php if (\llink_cookiepro::hasConsent('marketing')): ?>
<!-- Google Tag Manager / VK / Meta (Facebook) / TikTok -->
<?php endif; ?> |
consent-manager.js задаёт GTM/GA4 consent mode по умолчанию как denied до загрузки
трекеров и выставляет window.ConsentManager с методами hasConsent, acceptAll,
necessaryOnly, declineAll, save, getState, getStatus, loadWhenAllowed.
Дополнительный код согласия для GTM/GA4/Метрики/VK/Facebook/TikTok в шаблоне не нужен.
Модуль перехватывает динамическую загрузку скриптов трекеров (appendChild/insertBefore),
URL которых совпадает с масками из списка blocklist, и откладывает их загрузку до получения
согласия. После согласия отложенные скрипты подгружаются автоматически. Скрипты, внедрённые
непосредственно в HTML (не через JS) и попадающие в страницу до инициализации, рекомендуется
ограничивать серверно через hasConsent().
Скрипт с атрибутом data-cookie-consent="analytics" загрузится только после согласия на
соответствующую категорию. Укажите реальный путь в data-cookie-src (без обычного src,
чтобы скрипт не выполнился до обработки менеджером согласий):
<script data-cookie-consent="analytics" data-cookie-src="/analytics.js"></script> |
Программная загрузка:
window.ConsentManager.loadWhenAllowed('/metrika.js', 'analytics'); |
Повторное открытие панели настроек: любой элемент с атрибутом data-cookie-settings-open
откроет панель, либо воспользуйтесь window.ConsentManager.openSettings().
Решение посетителя записывается в таблицу b_llink_cookiepro_consent: идентификатор согласия,
статус (accepted/partial/declined), категории, IP, User-Agent, дата, а также USER_ID
если пользователь авторизован. По умолчанию включено; отключается в настройках модуля.