🍪 Cookie Consent Manager

common.label.
Posts 171

✨ Demo

Check out the live demo of Cookie Consent Manager here.

🔨 Added

  • GDPR-compliant cookie consent banner with customizable positioning:
    • Top, bottom, left, right positions
    • Corner positions (top-left, top-right, bottom-left, bottom-right)
    • Centered left/right positions
  • Multiple banner styles:
    • Box style (modal window)
    • Bar style (banner strip)
  • Cookie category management:
    • Essential cookies (always active, cannot be disabled - GDPR compliant)
    • Analytics cookies (optional, user-controlled)
    • Marketing cookies (optional, user-controlled)
    • Functional cookies (optional, user-controlled)
  • User preference management with granular control:
    • Accept all cookies button
    • Decline all cookies button
    • Preferences button for detailed settings
  • Consent storage system with revision tracking:
    • Stores user consent preferences securely
    • Revision system to force users to review preferences when configuration changes
    • Consent history tracking with IP addresses and timestamps
  • Automatic cookie clearing when preferences change (requires autoClear configuration)
  • Bot detection to hide banner from crawlers (SEO-friendly)
  • Lazy HTML generation for improved initial page load performance
  • Privacy policy and cookie policy pages with full GDPR compliance information
  • Multi-language support: English, French, German, Dutch, Portuguese
  • Dark mode support with automatic theme detection
  • Admin dashboard with:
    • Consent history (last 10 consents)
    • Cookie category configuration
    • Technical settings management
    • Cookie clearing functionality
  • Page interaction blocking option (blocks scrolling/clicks until consent is given)
  • Auto-show functionality (displays banner automatically on page load if no consent)

⚡ Improved

  • Enhanced banner visibility with multiple positioning options
  • Better user experience with clear accept/decline options
  • Optimized performance with lazy loading and efficient asset management
  • Improved SEO by hiding banner from bots and crawlers
  • Better accessibility with keyboard navigation support
  • Enhanced admin interface for managing cookie categories and settings
  • Automatic theme detection for dark mode compatibility
  • Better translation system with fallback support

🐛 Fixed

  • Resolved issues with consent storage in SQLite database
  • Fixed banner display in dark mode with proper CSS classes
  • Corrected translation loading for plugin description in admin panel
  • Fixed cookie clearing functionality for administrators
  • Resolved issues with banner positioning in different screen sizes

🚀 Updating

Stay tuned for upcoming features and improvements in future releases!

🔗 Links

📝 License

Copyright © 2025 Flatboard Team
This project is GPL3 licensed.

Edited on Jan 11, 2026 By Fred .

  • cookie gdpr
common.label.
Posts 171

[1.0.2] - 2025-12-24

Fixed

  • Major fix: Consent data is now properly saved
    • Fixed JavaScript script execution order
    • Fixed onConsent and onChange callback configuration for vanilla-cookieconsent library
    • Fixed cookie data extraction (handling { cookie: {...} } format)
    • Fixed callback injection in JavaScript configuration (using IIFE instead of direct JSON injection)
    • Added global window.recordCookieConsent() function called by callbacks
    • Improved error handling and debug logging

Changed

  • Enhanced debug logging to facilitate problem diagnosis
  • Refactored getInitJs() method to build JavaScript more safely
  • Improved cookie object format handling (support for both possible formats)

Technical Details

  • Callbacks are now properly injected into configuration via JavaScript IIFE
  • recordCookieConsent function is defined before CookieConsent initialization to ensure availability
  • Data is correctly extracted and sent to server via /cookieconsent/record-consent API
  • Consents are now properly recorded in plugins/CookieConsent/data/consents.json
common.label.
Posts 92

Hi :)

the download link on the resource display a 404 page

common.label.
Posts 171

Fixed! 👍

Edited on Jan 05, 2026 By Fred .

common.label.
Posts 71

The Position Settings not shown up and at least for me no Banner at all. The Plugin is enabled and The Dashboard shows no Errors.
Thanks,

common.label.
Posts 171

[1.0.6] - 2025-01-11

🔄 Changed - Major Refactoring

  • BREAKING CHANGE: Merged Configuration.php and ConsentStorage.php into CookieConsentPlugin.php
  • All plugin logic is now contained in a single file for simplified maintenance
  • Removed external class dependencies

✨ Added - New Features

  • Added private methods for JavaScript script generation (dark mode, consent recording, console filtering)
  • Added dedicated route handlers for better code organization
  • Improved error handling with try/catch blocks in all critical methods
  • Added reflection-based configuration access in admin view

🐛 Fixed - Bug Fixes

  • Critical fix: Corrected banner style (Box/Bar) that wasn't applying correctly
  • Force 'box' style when position contains 'left' or 'right' (incompatible with 'bar' layout)
  • Fixed position mapping to comply with CookieConsent specifications
  • Fixed isPluginActive() to check only the active field in plugin.json
  • Fixed script loading order to ensure recordCookieConsent is defined before CookieConsent.run()
  • Fixed translation file paths (changed from .json to .php)
  • Admin view fix: Removed require_once calls to deleted Configuration.php and ConsentStorage.php files
  • Implemented direct file reading for consents in admin view

🎨 Improved - Enhancements

  • Optimized inline script generation to reduce code duplication
  • Enhanced dark mode handling with Bootstrap 5.3.8 synchronization
  • Refactored view preparation methods for better clarity
  • Improved translation handling with automatic fallback to English
  • Optimized consent storage with better duplicate handling
  • Streamlined admin view to work with unified plugin structure

📚 Documentation

  • Added detailed comments for each code section
  • Documented private methods to facilitate maintenance
  • Added clearly identified sections (Configuration, Storage, Routes, etc.)

⚙️ Technical

  • Removed unnecessary require_once statements (everything in same class)
  • Used private methods instead of static classes
  • Better encapsulation with self::$storageFile and self::$lockKey
  • Simplified routing logic with dedicated handlers
  • Admin view now uses Reflection API to access private configuration method
  • Direct file access for consent storage instead of external class calls

🗂️ File Structure Changes

Deleted files (functionality merged into CookieConsentPlugin.php):

  • src/Configuration.php
  • src/ConsentStorage.php

Modified files:

  • CookieConsentPlugin.php - Now contains all functionality
  • views/admin.php - Updated to work without external classes
  • plugin.json - Version updated to 1.0.6

Unchanged files (no modifications needed):

  • views/frontend/privacy.php
  • views/frontend/cookies.php

Contributors

  • Flatboard Team - Initial work and maintenance
  • Community contributors welcome!

License

GPL-3.0 License - Copyright © 2025 Flatboard Team

This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.


Acknowledgments

  • Built with vanilla-cookieconsent
  • Compliant with GDPR, ePrivacy Directive, and other privacy regulations
  • Designed for Flatboard 5

Last Updated: January 11, 2025
Current Version: 1.0.6
Status: Stable

common.label.
Posts 171

[1.1.1] - 2026-01-12

Fixed

  • Major fix: Inconsistent category names between JavaScript Library and PHP Storage/Display caused incorrect banner button choices in the settings.

    • JavaScript Library: Used categories like "necessary," "measurement," "marketing," and "functionality."
    • PHP Storage/Display: Used categories like "essential," "analytics," and "functional."
    • Cause: The mismatch in category IDs between stored and displayed names led to improper banner button rendering and failure to retain user choices.
    • Fix: Standardized category names in the JavaScript library to ensure consistency across both systems. This resolves the issue, ensuring that the banner buttons now correctly reflect and retain user preferences across the entire site.

Changed

  • Standardized category names for better alignment between JavaScript and PHP configurations.
  • Improved overall settings rendering consistency.

Technical Details

  • Category IDs are now consistent between JavaScript Library and PHP Storage/Display, ensuring that user preferences are correctly saved and displayed.
  • Banner button choices are now rendered properly, reflecting correct stored data.

Thank @JPRuehmann for this feedback.

Edited on Jan 12, 2026 By Fred .

common.label.
Posts 171

[1.1.2] - 2026-01-20

Added

  • Dynamic category configuration: Admin can now enable/disable cookie categories (Analytics, Marketing, Functional) from the settings panel
  • Banner position selector: 6 position options (left-bottom, right-bottom, left-top, right-top, center-bottom, center-top)
  • Banner style selector: 2 style options (Box, Bar)
  • Form-based configuration: New form_config system for cleaner admin interface
  • Automatic category management: Cookie categories are now read dynamically from plugin.json configuration

Changed

  • Configuration.php refactored: Categories are now loaded based on admin settings instead of being hardcoded
  • Removed hardcoded categories: Analytics, Marketing, and Functional categories are only shown if enabled in settings
  • Improved translations structure: Standardized translation keys using hyphens for consistency
  • Better modal sections: Preference modal sections are now generated dynamically based on enabled categories

Fixed

  • Translation keys inconsistency: Fixed mismatch between plugin.json option keys and translation keys (now using hyphens consistently)
  • Position mapping: Corrected position mapping to match CookieConsent library requirements
  • SELECT fields not showing: Removed unsupported depends_on property that was preventing SELECT fields from rendering

Technical

  • Updated Configuration::getCategories() to read enable_analytics, enable_marketing, enable_functional from plugin.json
  • Added center-bottom and center-top position options
  • Standardized all position and style keys to use hyphens instead of underscores
  • Enhanced guiOptions mapping for better position handling

Edited on Jan 20, 2026 By Fred .

Visitor, reply to this topic…
Log in to reply
Navigation
8 Posts
post #1
19 Dec 2025
By Utilisateur