Symfony bundle to append Cookie Consent to your website to comply to AVG/GDPR for cookies.
In a Symfony application run this command to install and integrate Cookie Consent bundle in your application:
composer require connectholland/cookie-consent-bundle
Configure your Cookie Consent with the following possible settings
ch_cookie_consent:
theme: 'light' # light, dark
categories: # Below are the default supported categories
- 'analytics'
- 'tracking'
- 'marketing'
- 'social_media'
excluded_routes: # Routes for which the cookie consent will not be loaded
- 'app_cookies'
excluded_paths: # Paths for which the cookie consent will not be loaded
- '/cookies'
On every (master) kernel request the cookie consent will automatically be loaded into your website when the visitor has not yet used the Cookie Consent form yet. After submitting the form a few cookies are saved ( with a lifetime of 1 year ). The cookie Cookie_Consent is saved with the date of submit and for each configured category a cookie saved e.g. Cookie_Category_analytics with it's value set to either true or false
A controller is available for renderering the cookie consent in a template.
You can use the TwigExtension to check if user has given it's permission for certain cookie categories
{% if chcookieconsent_isAllowed('analytics') == true %}
...
{% endif %}
You can add or remove any category by changing the config and making sure there are translations available for these categories.
All texts can be altered via Symfony translations by overwriting the CHCookieConsentBundle translation files.
CHCookieConsentBundle comes with a default styling. A sass file is available in Resources/assets/css/cookie_consent.scss and a build css file is available in Resoureces/public/css/cookie_consent.css. Colors can easily be adjusted by setting the variables available in the sass file.
By loading Resources/public/js/cookie_consent.js the cookie consent will be shown on top of your website while pushing down the rest of the website.
You can override the templates by placing templates inside your poject:
# app/Resources/CHCookieConsentBundle/views/cookie_consent.html.twig
{% extends '@!CHCookieConsent/cookie_consent.html.twig' %}
{% block title %}
Your custom title
{% endblock %}