Klaro Cookie Consent: Storefront-Integration
Storefront-Integration von Klaro Cookie Consent für Sylius 2 - Twig Hooks, Twig-Funktionen, Magic-Anchor-Trigger und Theme-Kompatibilität.
Klaro Cookie Consent: Storefront-Integration
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Twig Hooks
Das Plugin hängt sich über drei Twig Hooks in das Standard-Sylius-Shop-Theme ein, ohne dass du selbst etwas einbinden musst:
| Hook | Wirkung |
|---|---|
sylius_shop.base#stylesheets |
Lädt klaro.css sowie die Farb-Overrides aus der Channel-Konfiguration; bei aktivem Google Consent Mode zusätzlich die Default-denied-Werte im <head> |
sylius_shop.base#javascripts |
Baut window.klaroConfig, lädt klaro.js (deferred), bindet die Google-Consent-Mode-Brücke und den Magic-Anchor-Click-Handler |
sylius_shop.base.footer.content.menu.help_links |
Fügt den "Cookie-Einstellungen"-Link in die Footer-Service-Links ein |
Für einen Channel ohne Einstellungs-Zeile oder mit deaktivierter Konfiguration greifen alle drei Hooks nicht: Es wird nichts geladen und nichts gerendert.
Theme-Kompatibilität
Ersetzt ein eigenes Theme eines der drei Standard-Sylius-Templates, auf denen diese Hooks aufsetzen (base.html.twig, Footer-Template), verschwinden Banner, Styles oder Footer-Link mit, weil der Hook-Punkt selbst dann fehlt. In dem Fall musst du den jeweiligen Hook-Punkt im eigenen Template wieder einhängen.
Twig-Funktionen
Falls du den Banner oder die Konfiguration aus einem eigenen Template heraus ansteuern willst:
| Funktion | Rückgabe | Zweck |
|---|---|---|
mmd_klaro_active(channel) |
bool |
Ist der Banner für diesen Channel aktiv |
mmd_klaro_channel_configuration(channel) |
Konfiguration oder null |
Die komplette Channel-Konfiguration |
mmd_klaro_config(channel) |
Array oder null |
Die fertige klaroConfig-Struktur |
mmd_klaro_google_consent_mode_enabled(channel) |
bool |
Ist Google Consent Mode v2 für diesen Channel aktiv |
mmd_klaro_google_consent_mode_wait_for_update(channel) |
bool |
Soll auf das erste Update gewartet werden |
mmd_klaro_asset_url(datei) |
string |
URL einer mitgelieferten Asset-Datei |
mmd_klaro_plugin_version() |
string |
Versionsstring für Cache-Busting eigener Einbindungen |
Magic-Anchor-Trigger
Jeder Link, dessen href auf #mmd-klaro-cookie-settings endet, öffnet den Dialog erneut, egal ob er in einem CMS-Block, einem Taxon-Menüeintrag oder einem eigenen Template steht. Ein einzelner delegierter Click-Handler fängt den Klick ab; es ist kein zusätzliches JavaScript nötig.
Lässt du den eigenen Footer-Link aktiv (
showFooterLink), steht dir derselbe Mechanismus zusätzlich an jeder beliebigen Stelle zur Verfügung, ohne doppelten Eintrag.
window.klaroConfig
Die fertige Konfiguration wird sicher per JSON.parse('...'|escape('js')) eingebettet (kein direktes HTML-Escaping-Risiko), mit htmlTexts: false und default: false fest gesetzt, damit Admin-Texte kein HTML einschleusen können und jeder Dienst standardmäßig deaktiviert startet (Opt-in).
Headless/API
Die Storefront-Integration ist aktuell ausschließlich für das Twig-Theme verdrahtet. Details zur fehlenden Shop-API-Anbindung stehen unter Fehlerbehebung: bekannte Einschränkungen.