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>            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.