Легковесный плагин для управления 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