г.Брянск, Пн-Пт 9:00 – 18:00, Сб 10:00 – 17:00

Уведомление о файлах Cookie на Битрикс

Автор:

Дата публикации:

Уведомление о файлах Cookie на Битрикс

Уведомление об использовании файлов Cookie с 31 мая 2025 года стало обязательной составляющей любого сайта. Рассмотрим один из вариантов создания такого уведомления на 1С-Битрикс. Как правило уведомление состоит из четырех компонентов: 1) всплывающее окно уведомления, 2) текст уведомления, 3) кнопка-крестик "Закрыть" и 4) кнопка "Принять". Создадим в подвале шаблона сайта html уведомления и обрамим его тегом index, так его содержимое не представляет ценности для поисковиков:

Сразу повесим на кнопку закрытия окна cookie__hide функцию removeCookie() удаления уведомления из DOM. А на кнопку "Принять" повесим функцию записи значения в cookie.

Теперь стилизуем уведомление:


.cookie-apply{
	display: none;
	position: fixed;
	bottom: 0px;
	width: 100%;
	background-color: #fff;
	z-index: 10;
	padding: 40px 30px;
	border-top: 1px solid #ccc;
}

.cookie-apply__close{
	position: absolute;
	top: 10px;
	right: 30px;
}

.cookie-apply p{
	padding-right: 40px;
}

.cookie-apply button{
	width: 130px;
}

@media(max-width: 576px){
	.cookie-apply{
		padding: 15px;
	}
}

В итоге должно получиться вот такое окно уведомления (если у вас оно отличается от показанного, то дополнительно стилизуйте его):

Теперь настало время покодить. Первым делом запрограммируем функцию showCookie(), которая показывает уведомление через несколько секунд после загрузки страницы:


function showCookie(){
    $(".cookie-apply").css({"display":"flex"})
}

setTimeout(showCookie, 5000)

Логика простая - функция меняет свойство display со значения none на значение flex и уведомление отображается. С помощью setTimeout мы запускаем функцию showCookie через 5 секунд после загрузки страницы. Теперь запрограммируем кнопку-крестик закрытия уведомления:


function removeCookie(){
	$(".cookie-apply").remove()
}

Тут тоже все просто - функция удаляет уведомление из DOM. И наконец запрограммируем кнопку "Принять":


function applyCookie(){
    $(".cookie-apply").remove()

	$.post("/ajax/cookie_apply.php", {}, function(data){

	})
}

При клике по этой кнопке запускается функция applyCookie, которая также удаляет уведомление из DOM и отправляет POST запрос без параметров на скрипт /ajax/cookie_apply.php, в котором и происходит запись в cookie действия - принятие текста уведомления. Ниже содержимое скрипта cookie_apply.php:


require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

global $APPLICATION;

$APPLICATION->set_cookie("COOKIE_APPLY", "Y");

$application = \Bitrix\Main\Application::getInstance();
$context = $application->getContext();
$context->getResponse()->flush('');

Т.е. в куки записывается строка COOKIE_APPLY со значением Y. Соответственно, при каждой загрузке страницы нужно проверять содержимое строки COOKIE_APPLY в куках и если оно равно Y, то уведомление на страницы не выводим, а в противном случае выводим. Обрамим html уведомления условием:

Вот собственно и все. Ну а если вам лень делать все самому, то можете приобрести модуль bussol.policy по доступной цене, в котором все это реализовано.

241027, Россия, Брянская область, поселок Путевка, улица Рослальская, дом 8, кв.121
Телефон: +7 (950) 692-91-71

Уведомление об использовании файлов Cookie с 31 мая 2025 года стало обязательной составляющей любого сайта. Рассмотрим один из вариантов создания такого уведомления на 1С-Битрикс. Как правило уведомление состоит из четырех компонентов: 1) всплывающее окно уведомления, 2) текст уведомления, 3) кнопка-крестик "Закрыть" и 4) кнопка "Принять". Создадим в подвале шаблона сайта html уведомления и обрамим его тегом index, так его содержимое не представляет ценности для поисковиков:

Сразу повесим на кнопку закрытия окна cookie__hide функцию removeCookie() удаления уведомления из DOM. А на кнопку "Принять" повесим функцию записи значения в cookie.

Теперь стилизуем уведомление:


.cookie-apply{
	display: none;
	position: fixed;
	bottom: 0px;
	width: 100%;
	background-color: #fff;
	z-index: 10;
	padding: 40px 30px;
	border-top: 1px solid #ccc;
}

.cookie-apply__close{
	position: absolute;
	top: 10px;
	right: 30px;
}

.cookie-apply p{
	padding-right: 40px;
}

.cookie-apply button{
	width: 130px;
}

@media(max-width: 576px){
	.cookie-apply{
		padding: 15px;
	}
}

В итоге должно получиться вот такое окно уведомления (если у вас оно отличается от показанного, то дополнительно стилизуйте его):

Теперь настало время покодить. Первым делом запрограммируем функцию showCookie(), которая показывает уведомление через несколько секунд после загрузки страницы:


function showCookie(){
    $(".cookie-apply").css({"display":"flex"})
}

setTimeout(showCookie, 5000)

Логика простая - функция меняет свойство display со значения none на значение flex и уведомление отображается. С помощью setTimeout мы запускаем функцию showCookie через 5 секунд после загрузки страницы. Теперь запрограммируем кнопку-крестик закрытия уведомления:


function removeCookie(){
	$(".cookie-apply").remove()
}

Тут тоже все просто - функция удаляет уведомление из DOM. И наконец запрограммируем кнопку "Принять":


function applyCookie(){
    $(".cookie-apply").remove()

	$.post("/ajax/cookie_apply.php", {}, function(data){

	})
}

При клике по этой кнопке запускается функция applyCookie, которая также удаляет уведомление из DOM и отправляет POST запрос без параметров на скрипт /ajax/cookie_apply.php, в котором и происходит запись в cookie действия - принятие текста уведомления. Ниже содержимое скрипта cookie_apply.php:


require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

global $APPLICATION;

$APPLICATION->set_cookie("COOKIE_APPLY", "Y");

$application = \Bitrix\Main\Application::getInstance();
$context = $application->getContext();
$context->getResponse()->flush('');

Т.е. в куки записывается строка COOKIE_APPLY со значением Y. Соответственно, при каждой загрузке страницы нужно проверять содержимое строки COOKIE_APPLY в куках и если оно равно Y, то уведомление на страницы не выводим, а в противном случае выводим. Обрамим html уведомления условием:

Вот собственно и все. Ну а если вам лень делать все самому, то можете приобрести модуль bussol.policy по доступной цене, в котором все это реализовано.


Другие статьи:  Получить заказы пользователя с сортировкой по дате создания / Сделать информер "Товары добавлены в корзину" вместо стандартного окна / Как в Битрикс сделать уникальным название элемента инфоблока с помощью Bitrix API

Похожие статьи

Интеграция «1С-Битрикс: Управление сайтом» и «1С:Предприятие»
Интеграция сайта с системами «1С:Предприятие» необходима любому бизнесу, который работает с клиентами онлайн. Без неё интернет-магазин просто не может быть конкурентоспособным – обработка заказа будет занимать больше времени, чем клиент может позволить.
Добавление товара в избранное на ajax в Битрикс
Добавление товара или статьи в избранное - это обязательная фишка для интернет-магазина или блога. Однако, в Битрикс по умолчанию нет функционала добавления элемента инфоблока в избранное.


Разработка