CookieConsent. Вывести уведомление о cookie на сайт.
Настройки плагина CookieConsent
Код чанка:
<div data-name="[[++cookieName]]" data-value="[[++cookieValue]]" data-days="[[++cookieDays]]" class="alert alert-warning alert-dismissible fade in [[++class]]" role="alert">
<p class="text-center">
We have placed cookies on your device to help make this website better. You can view our <a title="View out cookie policy" href="[[++idCookiePolicy:gt=`0`:then=`[[~[[++idCookiePolicy]]]]`:else=`/`]]">cookie policy here</a>.
<button type="button" class="btn btn-info" data-dismiss="alert">Continue using site</button>
</p>
</div>
<script>
$(function()
{
$(".[[++class]] button").click(function ()
{
$(".[[++class]]").mabCookieSet({onDone: function(){$(".[[+class]]").hide();}});
});
});
</script>
В документации указано, что после установки, пакет будет работать (даже без вызова чанка?). Установил, настроил — не работает. Попробовал вызвать чанк, и все равно не работает. Если кто скажет, что я сделал не так — буду благодарен.Или же, напишите в комментариях, чем вы пользуетесь для выведение cookie-уведомления. Заранее спасибо.
Комментарии: 6
Судя по чанку должен быть подключен jQuery и Bootstrap.
Охота вам мудрить с чужими компонентами.
JS нативно умеет выставлять куки
learn.javascript.ru/cookie
Fenom умеет работать с суперглобальными массивами и легко получить {$.cookies}
Осталось в шаблоне проверить если есть в массиве {$.cookies} нужная, то не показывать уведомление, если нет — то показать. А для кнопки закрытия уведомления написать обработку, что при клике закрыть и выставить нужную куку.
JS нативно умеет выставлять куки
learn.javascript.ru/cookie
Fenom умеет работать с суперглобальными массивами и легко получить {$.cookies}
Осталось в шаблоне проверить если есть в массиве {$.cookies} нужная, то не показывать уведомление, если нет — то показать. А для кнопки закрытия уведомления написать обработку, что при клике закрыть и выставить нужную куку.
Да, конечно.
Зачем использовать готовый компонент? Их же просто так создают.
Надо обязательно зае***ься мозгами.
Зачем использовать готовый компонент? Их же просто так создают.
Надо обязательно зае***ься мозгами.
А смысл тратить время на то чтоб разбираться с чужим дополнением, если там кода на несколько строчек?
<style>
.cookie-message {
position: sticky;
z-index: 100;
bottom: 0;
background-color: #fff;
border-top: 1px solid #d3d3d3;
}
.cookie-message-inner {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.5rem 0;
line-height: 1.2;
}
.cookie-message-text {
flex-grow: 2;
}
</style>
<div class="cookie-message js-cookie-message" hidden>
<div class="container">
<div class="cookie-message-inner">
<div class="cookie-message-text">
текст
</div>
<button class="button js-cookie-message-confirm">ОК</button>
</div>
</div>
</div>
<script>
if (!localStorage.getItem('cookieAccept')) {
const el = document.querySelector('.js-cookie-message');
el.style.display = 'block';
el.querySelector('.js-cookie-message-confirm').addEventListener('click', (e) => {
localStorage.setItem('cookieAccept', 1);
el.style.display = 'none';
}, true);
}
</script>
Вставил код, но блок скрыт уже сразу. В чем может быть проблема?
У меня работает так
<div class="cookie-message js-cookie-message">
<div class="container">
<div class="cookie-message-inner">
<div class="cookie-message-text">
We use cookies to enhance your experience.
</div>
<button class="button js-cookie-message-confirm">OK</button>
</div>
</div>
</div>
<script>
const el = document.querySelector('.js-cookie-message');
if (!localStorage.getItem('cookieAccept') || localStorage.getItem('cookieAccept') == 0) {
el.style.display = 'block';
el.querySelector('.js-cookie-message-confirm').addEventListener('click', (e) => {
localStorage.setItem('cookieAccept', 1);
el.style.display = 'none';
}, true);
} else {
el.style.display = 'none';
}
</script>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.