Skip to content

el.cookie — легковесная библиотека без зависимостей для управления cookie-согласиями на сайте. Поддерживает категории cookies (обязательные, маркетинговые, функциональные), адаптивный баннер, модальное окно настроек и проверку разрешений

License

Notifications You must be signed in to change notification settings

el-system/el.cookie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

El'Cookie

Легковесный плагин для управления cookie-файлами с поддержкой категорий и настройками пользователя.

Описание

El'Cookie - это компактный JavaScript плагин, который помогает веб-сайтам соответствовать требованиям законодательства о cookie (GDPR, CCPA и др.). Плагин предоставляет пользователю возможность выбора, какие категории cookie он разрешает использовать.

Основные возможности

  • Обход блокировщиков через динамические селекторы
  • Модальное окно с настройками cookie по категориям
  • Ленивая инициализация - стили и элементы создаются только при необходимости
  • Проверка наличия согласия для инициализации различных скриптов
  • Поддержка локального хранилища для отслеживания согласия
  • Минималистичный код без внешних зависимостей
  • Адаптивный дизайн

Ленивая инициализация

Плагин использует принцип ленивой инициализации — все DOM-элементы и стили создаются только в момент отображения баннера или окна настроек. Это позволяет минимизировать влияние на производительность страницы при начальной загрузке. При закрытии окон все созданные элементы удаляются из DOM, а стили удаляются при отсутствии активных компонентов.

Установка

Просто подключите скрипт перед закрывающим тегом </body>:

<script src="el.cookie.js"></script>

Использование

Проверка согласия

Для проверки наличия согласия пользователя используйте встроенный метод:

PermissionChecker.check('marketing', () => {
    console.log('Маркетинговые cookie разрешены');
});

PermissionChecker.check('other', () => {
    console.log('Дополнительные cookie разрешены');
});

PHP:

class CookieConsent
{
    private static array $permissions = [];

    private static function loadPermissions(): void
    {
        if (empty(self::$permissions)) {
            $consent = $_COOKIE['cookie_consent'] ?? '';
            self::$permissions = array_filter(explode(',', $consent));
        }
    }

    public static function hasConsent(string $category): bool
    {
        self::loadPermissions();
        return in_array($category, self::$permissions, true);
    }
}

// Usage
if (CookieConsent::hasConsent('marketing')) {
    echo '<script src="marketing.js"></script>';
}

if (CookieConsent::hasConsent('other')) {
    echo '<script src="additional-features.js"></script>';
}

Открытие настроек

Для открытия окна настроек cookie можно использовать функцию:

window.openCookieSettings();

Или добавить класс к любой ссылке:

<a href="#" class="open-cookie-settings">Настройки cookie</a>

Лицензия

MIT License - свободное использование, модификация и распространение.

Автор

Andrey Shuin, El'System © 2025

About

el.cookie — легковесная библиотека без зависимостей для управления cookie-согласиями на сайте. Поддерживает категории cookies (обязательные, маркетинговые, функциональные), адаптивный баннер, модальное окно настроек и проверку разрешений

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published