Markus Michalski FAQ

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.

English Version

Zurück zur Übersicht

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.