Integrate cookieconsent.com in SilverStripe
Yet another cookie consent module. This one integrates https://www.cookieconsent.com/ which allow you to have various layouts (including blocking layouts) and load/allow cookies per type.
NOTE: even if it has the same name (and the same version number!!), it is NOT the cookieconsent from https://www.osano.com/cookieconsent
When you require your scripts, you should add their type in order to load them according to user preference:
The four types are :
And they will be rendered in something like this. Please note the
text/plain type that prevents the script for being executed.
This is what you should do if you include your scripts manually.
<script type="text/plain" cookie-consent="strictly-necessary" src="strict.js"> <script type="text/plain" cookie-consent="functionality" src="functional.js"> <script type="text/plain" cookie-consent="tracking" src="tracking-performance.js"> <script type="text/plain" cookie-consent="targeting" src="targeting-advertising.js">
or for inline scripts
<script type="text/plain" cookie-consent="tracking"> console.log("i'm a tracking script"); </script>
If you use the Requirements api, in order to specify this extra attribute,
you need a
Requirements_Backend that supports it.
This is delegated to my defer backend module.
This is how you would add a tracking script with the updated requirements api
If you set cookies on the serverside, you can check the
CookieConsent::isAllowed method or use the
LeKoala\CookieConsent\CookieConsent: # use local js or cdn js use_cdn: false # class name of your privacy page. leave blank for default privacy_notice_class: 'PrivacyNoticePage' opts: # simple, headline, interstitial, standalone notice_banner_type: "interstitial" # implied, express => should really by express for GDPR consent_type: "express" # light, dark palette: "dark" change_preferences_selector: "#cookieconsent-preferences"
You can use cookiebot the check compliance https://www.cookiebot.com/en/gdpr-cookies/
This can also helps customers to realize the necessity of this module
Tested with 4.6 but should work on any ^4 projects
LeKoala - email@example.com