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

Материал из Oktell
Перейти к: навигация, поиск
(Новая страница: «if ($wgUser->isLoggedIn()) { $lines = explode( "\n", wfMsgForContent( 'sidebar' ) ); } else { $lines = explode( "\n", wfMsgForContent( 'anon_sidebar' ) ); }»)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
if ($wgUser->isLoggedIn()) {
+
 
  $lines = explode( "\n", wfMsgForContent( 'sidebar' ) );
+
 
} else {
+
 
  $lines = explode( "\n", wfMsgForContent( 'anon_sidebar' ) );
+
 
}
+
(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);
 +
})();

Текущая версия на 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);
})();