Top.Mail.Ru
Уведомление о файлах Cookie на Битрикс - разработка и поддержка сайтов BUSSOL

Уведомление о файлах 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С-Битрикс идет функционал установки водяного знака на превью и детальное изображение товара. Но как быть, если водяной знак нужно установить на дополнительные фотографии, которые отображаются в слайдере товара, т.е. картинки из свойства типа ФАЙЛ?