3490
41.55
49.86
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Версия
1.0.0-pl
Дата выпуска
23.09.2026
Загрузки
0
Просмотры
16
Обычно баннер cookie ставят так: находят скрипт, вставляют в шаблон, пишут «Мы используем
cookie» — а коды счётчиков остаются там же, где и были. Посетитель жмёт «Отклонить», и в этот
момент Вебвизор уже смотрит, как он это делает. Формально баннер есть, по факту — декорация.
EasyCookies убирает счётчики из шаблона в профиль баннера. Дальше баннер сам решает, когда их
запускать: разрешил посетитель аналитику — Метрика стартует, отказался — её cookie удаляются. В
основе — библиотека CookieConsent Ореста Биды, так что с
внешним видом, доступностью и поведением на мобильных всё в порядке.

При создании профиля компонент спрашивает, какой баннер нужен.
Простой. Уведомление с кнопкой «Понятно» и, по желанию, «Отказаться». Счётчики
работают сразу. В форме только текст, счётчики и вид — больше настраивать нечего.
По требованиям. Ничего не запускается до согласия: категории, окно настроек с
таблицей cookie, любой набор языков со своими текстами, ревизии и Google Consent Mode v2.
Выбор не окончательный: вид меняется одной кнопкой, и настройки при этом не теряются.
Какой баннер нужен конкретному сайту, решают законы, которые к нему применяются. EasyCookies —
инструмент, а не юридическая консультация.

Яндекс Метрика (с Вебвизором), Google Analytics, Google Tag Manager, VK Реклама, Meta Pixel и
свой код для всего остального. У баннера по требованиям каждый сервис относится к категории —
аналитика, маркетинг, функциональные, — его cookie перечислены в окне настроек, а при отказе
удаляются.
_ym_d, _ym_isad, _ym_visorc.
На живом сайте Метрика и Analytics уже вставлены в шаблон, а то и в три разных чанка. Кнопка
«Найти на сайте» ищет их код в шаблонах и чанках — и в базе, и в файлах .tpl и .html
(привет, pdoTools и Fenom), — вычитывает номера счётчиков и Вебвизор и переносит их в профиль.
Отмеченное «Убрать их код» вырезает найденные блоки `и ` со служебными комментариями, иначе
счётчик сработал бы дважды. Блок, где кроме счётчика есть другой код, компонент не трогает.
Прежнее содержимое элементов сохраняется, и «Вернуть код» откатит всё назад.

Баннер показывается прямо на странице менеджера — у того края окна, где он встанет на сайте, — и
меняется по мере правки. Работает тот же скрипт, что и на сайте, поэтому превью совпадает с
результатом. Чтобы он не закрывал форму, страница редактора отодвигается от него сверху или
снизу: любое поле можно докрутить.
Вид — как в плейграунде CookieConsent: окно, облако или плашка, девять положений, окно настроек
по центру или сбоку, темы и свои цвета.

GDPR требует не только спросить согласие, но и уметь его доказать. Баннер по требованиям
записывает каждый ответ посетителя — и первый, и каждое изменение выбора: решение, разрешённые
категории и сервисы, профиль, ревизию, язык, страницу, укороченный IP и браузер. ID согласия тот
же, что лежит в cookie посетителя, так что по нему находится вся история его выбора.
Сверху — сводка за период с графиком по дням: сколько ответов, какая доля приняла всё, отклонила
или выбрала сама. Ниже фильтры и таблица; всё, что под фильтрами, выгружается в CSV. Старые
записи удаляются сами, по умолчанию через год. Сама запись согласия не ставит посетителю никаких
cookie.

Несколько баннеров на сайте, один активный на контекст: у языковых версий и поддоменов может
быть свой баннер. Копия профиля — чтобы пробовать правки, не трогая сайт. Экспорт и импорт в
JSON — чтобы перенести профиль на другой сайт.
Без согласия нельзя показывать не только счётчики, но и встроенное видео, карту или форму с
reCAPTCHA. Сниппет EasyCookiesAllowed выводит блок только тем, кто разрешил нужную категорию:
исчезает сразу.
Сигналы согласия ставятся сразу после `` — раньше любых тегов Google, в том числе вставленных в
шаблон вручную, — а баннер обновляет их, когда посетитель ответил. Если посетитель уже отвечал,
сигналы верны с первой строки.
Браузеры с сигналом GPC («не продавать и не передавать мои данные» — Firefox, Brave, DuckDuckGo)
не получают маркетинговые сервисы, а в окне настроек видят пояснение. Этого требует CCPA.
Плагин сам выводит баннер активного профиля на всех HTML-страницах — в шаблон ничего вставлять
не нужно. Нужные страницы исключаются настройкой. Если место вывода хочется выбрать самому, есть
сниппет [[EasyCookies]].
Ссылку «передумать» ставите в подвал сайта:
accepted('analytics').
Готовые тексты на 14 языках: русский, английский, украинский, белорусский, казахский, узбекский,
таджикский, армянский, азербайджанский, немецкий, французский, испанский, итальянский, польский.
Баннер говорит на языке страницы; если такого языка в профиле нет — на языке по умолчанию.
Страница компонента выглядит родной частью менеджера и в MODX 3, и в MODX 2: те же вкладки,
кнопки, окна, уведомления и цвета. ExtJS в интерфейсе нет. Лексиконы — английский, русский,
таджикский. Плюс виджет «Согласия на cookie» на рабочий стол.
cookie» — а коды счётчиков остаются там же, где и были. Посетитель жмёт «Отклонить», и в этот
момент Вебвизор уже смотрит, как он это делает. Формально баннер есть, по факту — декорация.
EasyCookies убирает счётчики из шаблона в профиль баннера. Дальше баннер сам решает, когда их
запускать: разрешил посетитель аналитику — Метрика стартует, отказался — её cookie удаляются. В
основе — библиотека CookieConsent Ореста Биды, так что с
внешним видом, доступностью и поведением на мобильных всё в порядке.

Простой баннер или по требованиям
При создании профиля компонент спрашивает, какой баннер нужен.
Простой. Уведомление с кнопкой «Понятно» и, по желанию, «Отказаться». Счётчики
работают сразу. В форме только текст, счётчики и вид — больше настраивать нечего.
По требованиям. Ничего не запускается до согласия: категории, окно настроек с
таблицей cookie, любой набор языков со своими текстами, ревизии и Google Consent Mode v2.
Выбор не окончательный: вид меняется одной кнопкой, и настройки при этом не теряются.
Какой баннер нужен конкретному сайту, решают законы, которые к нему применяются. EasyCookies —
инструмент, а не юридическая консультация.

Счётчики живут в баннере, а не в шаблоне
Яндекс Метрика (с Вебвизором), Google Analytics, Google Tag Manager, VK Реклама, Meta Pixel и
свой код для всего остального. У баннера по требованиям каждый сервис относится к категории —
аналитика, маркетинг, функциональные, — его cookie перечислены в окне настроек, а при отказе
удаляются.
_ym_d, _ym_isad, _ym_visorc.
- Яндекс Метрика — номер счётчика и Вебвизор; при отказе удаляются _ym_uid,
- Google Analytics — идентификатор G-XXXXXXXXXX; удаляются _ga и _ga_*.
- Google Tag Manager — идентификатор GTM-XXXXXXX.
- VK Реклама — ID пикселя; удаляются tmr_lvid, tmr_lvidTS, tmr_detect.
- Meta Pixel — ID пикселя; удаляется _fbp.
- Свой код — любые теги, а какие cookie за ними убирать, вы указываете сами.
Перенос счётчиков из шаблонов одной кнопкой
На живом сайте Метрика и Analytics уже вставлены в шаблон, а то и в три разных чанка. Кнопка
«Найти на сайте» ищет их код в шаблонах и чанках — и в базе, и в файлах .tpl и .html
(привет, pdoTools и Fenom), — вычитывает номера счётчиков и Вебвизор и переносит их в профиль.
Отмеченное «Убрать их код» вырезает найденные блоки `и ` со служебными комментариями, иначе
счётчик сработал бы дважды. Блок, где кроме счётчика есть другой код, компонент не трогает.
Прежнее содержимое элементов сохраняется, и «Вернуть код» откатит всё назад.

Превью, которое не врёт
Баннер показывается прямо на странице менеджера — у того края окна, где он встанет на сайте, — и
меняется по мере правки. Работает тот же скрипт, что и на сайте, поэтому превью совпадает с
результатом. Чтобы он не закрывал форму, страница редактора отодвигается от него сверху или
снизу: любое поле можно докрутить.
Вид — как в плейграунде CookieConsent: окно, облако или плашка, девять положений, окно настроек
по центру или сбоку, темы и свои цвета.

Журнал согласий
GDPR требует не только спросить согласие, но и уметь его доказать. Баннер по требованиям
записывает каждый ответ посетителя — и первый, и каждое изменение выбора: решение, разрешённые
категории и сервисы, профиль, ревизию, язык, страницу, укороченный IP и браузер. ID согласия тот
же, что лежит в cookie посетителя, так что по нему находится вся история его выбора.
Сверху — сводка за период с графиком по дням: сколько ответов, какая доля приняла всё, отклонила
или выбрала сама. Ниже фильтры и таблица; всё, что под фильтрами, выгружается в CSV. Старые
записи удаляются сами, по умолчанию через год. Сама запись согласия не ставит посетителю никаких
cookie.

Профили и контексты
Несколько баннеров на сайте, один активный на контекст: у языковых версий и поддоменов может
быть свой баннер. Копия профиля — чтобы пробовать правки, не трогая сайт. Экспорт и импорт в
JSON — чтобы перенести профиль на другой сайт.
Проверка согласия на сервере
Без согласия нельзя показывать не только счётчики, но и встроенное видео, карту или форму с
reCAPTCHA. Сниппет EasyCookiesAllowed выводит блок только тем, кто разрешил нужную категорию:
[[!EasyCookiesAllowed? &category=`marketing` &tpl=`youtube` &tplElse=`youtube.stub`]]Когда посетитель меняет выбор, баннер перезагружает такую страницу — блок появляется или
исчезает сразу.
Google Consent Mode v2 и Global Privacy Control
Сигналы согласия ставятся сразу после `` — раньше любых тегов Google, в том числе вставленных в
шаблон вручную, — а баннер обновляет их, когда посетитель ответил. Если посетитель уже отвечал,
сигналы верны с первой строки.
Браузеры с сигналом GPC («не продавать и не передавать мои данные» — Firefox, Brave, DuckDuckGo)
не получают маркетинговые сервисы, а в окне настроек видят пояснение. Этого требует CCPA.
Вывод на сайте
Плагин сам выводит баннер активного профиля на всех HTML-страницах — в шаблон ничего вставлять
не нужно. Нужные страницы исключаются настройкой. Если место вывода хочется выбрать самому, есть
сниппет [[EasyCookies]].
Ссылку «передумать» ставите в подвал сайта:
<a href="#" data-cc="show-preferencesModal">Настройки cookie</a>Для своих сценариев на странице есть window.EasyCookies: show(), showPreferences(),
accepted('analytics').
Языки
Готовые тексты на 14 языках: русский, английский, украинский, белорусский, казахский, узбекский,
таджикский, армянский, азербайджанский, немецкий, французский, испанский, итальянский, польский.
Баннер говорит на языке страницы; если такого языка в профиле нет — на языке по умолчанию.
Интерфейс
Страница компонента выглядит родной частью менеджера и в MODX 3, и в MODX 2: те же вкладки,
кнопки, окна, уведомления и цвета. ExtJS в интерфейсе нет. Лексиконы — английский, русский,
таджикский. Плюс виджет «Согласия на cookie» на рабочий стол.
1.0.0-pl
Первая версия.
- Профили баннера: несколько на сайте, один активный. Копия профиля неактивна — на ней пробуют правки, не трогая сайт.
- Два вида баннера. Простой — уведомление с кнопкой «Понятно» и, по желанию, «Отказаться»; счётчики работают сразу (opt-out), в форме только текст, счётчики и вид. По требованиям — согласие до запуска счётчиков (opt-in) по GDPR, CCPA и похожим законам: категории, окно настроек с таблицей cookie, переводы, ревизии, Google Consent Mode v2. Вид меняется одной кнопкой без потери настроек.
- Сервисы, которые включает сам баннер: Яндекс Метрика (с Вебвизором), Google Analytics,
Google Tag Manager, VK Реклама, Meta Pixel и свой код. Их запускают
onAcceptсервисов CookieConsent, при отказе их cookie удаляются и страница перезагружается. - Настройки профиля — один JSON; конфиг CookieConsent из него собирает общий для админки и
сайта
src/core/build.ts, поэтому превью не расходится с сайтом. - Превью прямо на странице менеджера: форма узкой колонкой по центру, баннер у краёв окна
там, где он встанет на сайте. Тот же загрузчик, что на сайте, своя cookie
ec_preview, без сервисов и затемнения, слой ниже окон менеджера и форм. Фокус превью у формы не отбирает: CookieConsent ставит его на своё окно при каждом показе, а превью перезапускается на каждую правку — закрывался только что открытый список и прерывался набор. Пока идёт превью, фокус внутрь баннера пускается, только если он уже там; на сайте всё как было. Баннер у верхнего или нижнего края окна отодвигает страницу редактора на свою высоту: высота меряется у самого баннера, а не угадывается по настройкам, поэтому любое поле и любая кнопка остаются доступными на прокрутке. У баннера по центру и у окна настроек отступа нет — докрутить до закрытого ими нельзя. - Вид как в плейграунде CookieConsent: окно, облако или плашка, девять положений, окно настроек в центре или сбоку, темы Light, Dark, «как в системе», Turquoise, Funky, Elegant и свои цвета.
- Готовые тексты баннера на 14 языках; язык посетителя — из
` или браузера.{policy}` в текстах — адрес политики конфиденциальности или id ресурса; без адреса строки с такой ссылкой не выводятся. - Плагин
EasyCookiesнаOnWebPagePrerender: сигналы Consent Mode сразу после(с учётом уже данного согласия из cookie), стили, настройки и загрузчик перед. Только HTML-страницы;easycookies.exclude_resourcesисключает ресурсы. СниппетEasyCookies— для ручного вывода. - Загрузчик баннера — отдельная сборка Vite (
vite.web.config.ts): IIFE-файл и CSS для обычного ``. - Журнал согласий: баннер по требованиям записывает каждый ответ посетителя — первый и
каждое изменение — с ID согласия, решением, категориями и сервисами, ревизией, языком,
страницей без строки запроса, укороченным IP и User-Agent. Вкладка в админке: сводка за
период (доли решений и категорий), фильтры, листание, выгрузка в CSV. Приёмник
consent.phpработает без сессии и cookie, принимает только подписанные страницей запросы (HMAC отsite_id, неделя), не больше 60 в час с адреса и без повторов. Старые записи удаляются поeasycookies.log_days;easycookies.log_ipвыключает хранение IP. - Мастер переноса счётчиков: «Найти на сайте» ищет в шаблонах и чанках Метрику, GA4, GTM,
Meta Pixel и VK Рекламу — в базе и в файлах
.tpl/.html(каталог элементов pdoTools иeasycookies.migrate_paths, только внутри сайта иcore/, безcache,vendorи т. п.; файл статичного элемента — через сам элемент; недоступный на запись файл помечается), вычитывает номера и Вебвизор, добавляет их в профиль и по желанию вырезает их код (блоки/и служебные комментарии; смешанные блоки остаются). Профиль перед этим сохраняется и включается. Прежнее содержимое элементов — вcore/packages/easycookies/backups/, «Вернуть код» восстанавливает его, если элемент не правили после переноса. - Global Privacy Control (флажок профиля, у новых баннеров по требованиям включён): при
navigator.globalPrivacyControlмаркетинговая категория и её сервисы для посетителя исчезают, в окне настроек — пояснение (gpcNotice, готовые тексты на 14 языках). Плагин по заголовкуSec-GPC: 1сразу запрещает рекламные сигналы Consent Mode. В превью — галка «Сигнал GPC». - Сниппет
EasyCookiesAllowed: блок (tpl/tplElse, чанк или@INLINE) — только если посетитель разрешил категорию или сервис; без шаблонов —1или пусто для модификаторов. Учитывает ревизию, режим профиля (у простого до ответа всё разрешено) и GPC. Страницу с таким вызовом загрузчик перезагружает, когда разрешённое меняется. - Контексты: у профиля — список контекстов (поле в форме, когда их больше одного); активный профиль — один на контекст, профиль с контекстами главнее общего. Плагин и сниппеты берут профиль контекста страницы; включение выключает только профили тех же контекстов.
- Экспорт профиля в JSON и импорт новым черновиком — без новых процессоров, на стороне админки; неизвестные сайту контексты при импорте отбрасываются.
- Таблица профилей: колонка «Контексты» (когда их на сайте больше одного; у активного общего
профиля — «кроме …» тех контекстов, где активен свой) и «Согласия» — число записей
журнала со ссылкой на журнал, отфильтрованный по профилю. Строки, как в гридах MODX, при
наведении не подсвечиваются. Переключатель «Активный» — своей колонкой, в строке —
«Настроить», а «Копия» и «Удалить» — в меню под кнопкой с тремя точками,
оформленном как
.x-menuменеджера (наведение в MODX 3 серое, в MODX 2 синее; стрелки, Escape). Дата изменения — в две строки: таблица помещается в окно 1440px. - Сводка журнала — карточки итогов, график ответов по дням (решения стопкой, подсказка при
наведении и фокусе; на длинном периоде — по несколько дней, не больше 60 столбиков) и доли
категорий. Её рисует один модуль
src/stats/и на вкладке журнала под её фильтры, и в виджете рабочего стола «Согласия на cookie» за 30 дней (отдельная сборкаvite.widget.config.tsвassets/components/easycookies/widget/). Числа считаютEasyCookies::consentStats()иconsentSeries(). При первой установке виджет встаёт последним на рабочий стол по умолчанию. - Блок ревизии в редакторе — только у сохранённого профиля: новый ещё ни у кого согласия не спрашивал.
- Редактор: «К списку» — первой кнопкой в шапке. У превью постоянная раскладка: «Показать
снова» и переключатель «Показывать» всегда на своих местах, параметры показа (язык, окно,
сигнал GPC) — отдельной строкой; пока превью скрыто, они недоступны, а не пропадают. Список
«Добавить язык» — двумя группами: языки с готовыми текстами и остальные языки, на которые
переведён MODX (
modLexicon::getLanguageList(), контроллер отдаёт их в конфиге админки), — их тексты начинаются с копии языка по умолчанию; внутри групп — по алфавиту на языке менеджера. Пункт меню строки — «Копировать». - Интерфейс на английском, русском и таджикском. Общие слова — «Копировать», «Действия»,
«Сохранить», «Добавить», «Создать», «Экспорт», «Импорт», «Название», «Описание»,
«Загружается…» — берутся из словаря ядра MODX (
core:default, он есть в MODX 2 и 3), а не дублируются в лексиконе компонента. - Сборка: запущенный от root
build.phpотдаёт владельцуcore/packages/и кеш MODX (core/cache/) — иначе менеджер не мог записать кеш лексиконов и оставался с ключами вместо подписей. - Таблицы сортируются по колонкам: щелчок по заголовку — по этой колонке, повторный — в обратную сторону, у активной колонки стрелка. Профили — по имени, числу согласий и дате изменения (у не менявшихся — создания); журнал — по дате, решению, профилю (по названию), странице, IP и ID. Сортирует сервер, поэтому порядок общий для всех страниц списка; колонки из JSON настроек профиля — вид, сервисы, языки — не сортируются.
- Правый клик по строке профиля открывает то же меню, что кнопка «⋯», — как контекстное меню грида MODX.



Последние обсуждения в сообществе MODX.pro