MediaWiki:Common.js — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
 
Строка 1: Строка 1:
if ($wgUser->isLoggedIn()) {
 
  $lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
 
} else {
 
  $lines = explode( "\n", wfMsgForContent( 'anon_sidebar' ) );
 
}
 
  
  

Текущая версия на 13:40, 4 июня 2026





(function () {
  var STORAGE_KEY = 'oktell_cookie_consent';

  function hasConsent() {
    return localStorage.getItem(STORAGE_KEY) === 'accepted';
  }

  function hasDeclined() {
    return localStorage.getItem(STORAGE_KEY) === 'declined';
  }

  function saveConsent(value) {
    localStorage.setItem(STORAGE_KEY, value);
  }

  function createCookieBanner() {
    if (hasConsent() || hasDeclined()) {
      return;
    }

    var banner = document.createElement('div');
    banner.className = 'oktell-cookie-banner';
    banner.innerHTML =
      '<div class="oktell-cookie-text">' +
        'Мы используем cookies для корректной работы сайта, анализа посещаемости и улучшения пользовательского опыта. ' +
        'Продолжая пользоваться сайтом, вы можете согласиться с использованием cookies. ' +
        '<a href="/index.php?title=Политика_конфиденциальности">Подробнее в Политике конфиденциальности</a>.' +
      '</div>' +
      '<div class="oktell-cookie-actions">' +
        '<button type="button" class="oktell-cookie-btn oktell-cookie-decline">Не согласен</button>' +
        '<button type="button" class="oktell-cookie-btn oktell-cookie-accept">Согласен</button>' +
      '</div>';

    document.body.appendChild(banner);

    setTimeout(function () {
      banner.classList.add('is-visible');
    }, 300);

    var acceptBtn = banner.querySelector('.oktell-cookie-accept');
    var declineBtn = banner.querySelector('.oktell-cookie-decline');

    acceptBtn.addEventListener('click', function () {
      saveConsent('accepted');
      banner.classList.remove('is-visible');
      setTimeout(function () {
        banner.remove();
      }, 300);

      if (typeof window.oktellLoadAnalytics === 'function') {
        window.oktellLoadAnalytics();
      }
    });

    declineBtn.addEventListener('click', function () {
      saveConsent('declined');
      banner.classList.remove('is-visible');
      setTimeout(function () {
        banner.remove();
      }, 300);
    });
  }

  document.addEventListener('DOMContentLoaded', createCookieBanner);
})();