WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 14.02.2026 21:09:42

Slugger
Developer

Klaro Consent Manager

Hallo,
was soll ich erzählen ... seit der DSV-GO 2018  begleitet mich das Thema im Alltag, Arbeit und Hobby.

So viel Dazu, ich wollte das Thema Consent Management greifbar machen und habe mit Unterstützung der KI eine Beta Version mit Gemini kreiert.

Nachdem ich bereits mehrere Erstversionen verworfen habe gibt es jetzt den ersten Einblick.

Ich weis nicht ob ich über das Ziel hinausgeschossen bin aber wer will darf das gerne Testen.
- Zwei Einstellungen in der Global gehen noch nicht Test-Modus und Akzentfarbe

Außerdem habe ich gerade einen dicken fetten Knoten im Hirn und muss eine Pause einlegen.

Und bitte nicht auf eure offiziellen Webseiten installieren, alles geschieht auf eigene Gefahr.

Einbindung in ein Template, so früh wie möglich nach <HEAD>
      <?php
       // Globaler Aufruf des Klaro Consent Managers
       if (file_exists(WB_PATH.'/modules/klaro_consent/view.php')) {
       include(WB_PATH.'/modules/klaro_consent/view.php');
       }
    ?>

Damit das Testen und Einblendung einfacher geht, Button nach <BODY> einfügen.
Es müsste links oben ein Zahnrad erscheinen.
Ist für meine Zwecke ausreichend gewesen.

   <!-- Button Klaro Contend -->
   <button type="button" class="klaro-settings-trigger" onclick="return klaro.show();" title="Cookie-Einstellungen ändern">
    <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <circle cx="12" cy="12" r="3"></circle>
        <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
    </svg>
    </button>

Anbei Doku:

===TXT===
============================================================
MODUL-DOKUMENTATION: Klaro Consent Manager für WBCE
Status: BETA 0.1.0
Rolle: Programmer / Editor
============================================================

1. FUNKTIONSBESCHREIBUNG
------------------------------------------------------------
Das Modul integriert den Klaro Open Source Consent Manager
nahtlos in WBCE. Es ermöglicht die datenschutzkonforme
Blockierung von externen Skripten, Stylesheets und Iframes.

Kernfunktionen:
- Multi-Instance fähig (verschiedene Einstellungen pro Sektion).
- Strikte Trennung von Logik (PHP) und Design (CSS).
- Dynamische Akzentfarbe über Datenbank steuerbar.
- Kontextuelle Zustimmung: Blockierte Inhalte (z.B. Karten)
  können direkt im Inhaltsbereich per Klick aktiviert werden.
- Automatisches Löschen von Cookies bei Widerruf.
- Ungruppierte, flache Dienstliste zur besseren Übersicht.

2. DATENBANK-STRUKTUR (MySQL)
------------------------------------------------------------
Tabelle: mod_klaro_consent (Globale & Sektions-Einstellungen)
- section_id: (INT) Primärschlüssel (0 = Globaler Standard).
- testing: (BOOL) Testmodus an/aus.
- must_consent: (BOOL) Modal erzwingen.
- storage_name: (STR) Name des Cookies (Default: 'klaro').
- cookie_expires: (INT) Gültigkeit in Tagen.
- privacy_policy_url: (STR) Link zur Datenschutzerklärung.
- modal_description: (TEXT) Einleitungstext im Consent-Fenster.
- accent_color: (STR) Hex-Code für Buttons/Details (z.B. #2b4c61).

Tabelle: mod_klaro_services (Dienste / Muster)
- service_id: (INT) Primärschlüssel.
- section_id: (INT) Zuordnung zur Sektion.
- name: (STR) Technischer Name (z.B. 'twitter', 'leaflet').
- title: (STR) Anzeigename im Frontend.
- description: (TEXT) Erklärung des Dienstes für den User.
- purposes: (STR) Zweck (essential, analytics, marketing).
- active: (BOOL) Dienst aktiv/inaktiv.

3. BENUTZERROLLEN & RECHTE
------------------------------------------------------------
Administrator / Entwickler:
- Installiert das Modul-Paket als ZIP.
- Definiert globale Standardwerte in der DB (section_id = 0).
- Pflegt die Sprachdateien (/languages/DE.php).
- Passt das technische Framework (view.php) an.

Redakteur:
- Erstellt in den Seiten-Abschnitten (WYSIWYG) die Inhalte.
- Nutzt das Droplet-Code-System zur Einbindung externer Dienste.
- Kann spezifische Einstellungen für seine Sektion vornehmen.

4. MUSTER-EINSTELLUNGEN (DIENSTE)
------------------------------------------------------------
Beispiel Matomo (Analytics):
- Name: matomo
- Purpose: analytics
- Snippet: Matomo JS-Code mit u+'matomo.js' Platzhalter.

Beispiel Leaflet (Karten):
- Name: leaflet
- Purpose: marketing
- Besonderheit: Nutzt data-href für CSS, um Vorabladen zu verhindern.

5. REDAKTEUR: DROPLET-EINSATZ
------------------------------------------------------------
Der Redakteur bindet Dienste mittels Droplet-Code ein. Das
Droplet maskiert den Code automatisch für Klaro.

Syntax:
[[KlaroService?name=DIENSTNAME&id=PLATZHALTER_ID]]

Praxisbeispiele:
- Matomo: [[KlaroService?name=matomo&id=https://meine-domain.de/piwik/]]
- Twitter: [[KlaroService?name=twitter&id=1234567890]]
- Leaflet: [[KlaroService?name=leaflet&id=map-container-01]]

Vorteil: Der Redakteur muss keinen JavaScript-Code anfassen.
Er gibt nur den Namen des Dienstes und die jeweilige ID an.

------------------------------------------------------------
HINWEIS: BETA 0.1.0 - Design-Anpassungen erfolgen ausschließlich
über die klaro.min.css unter Verwendung der Variable --klaro-accent.
============================================================

Das Droplet ist nicht im ZIP-Paket der Beta und ist separat angehängt . Der Quellcode des Droplet muss noch manuell angelegt werden.
Steht aber auf meiner Agenda.
Auch eine Abschlussprüfung der geladenen Seite.

Anhänge entfernt!

Last edited by Slugger (22.05.2026 12:25:15)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#2 15.02.2026 09:39:43

florian
Administrator

Re: Klaro Consent Manager

Sieht so weit schon mal ganz gut aus.
Ich bekomme es noch nicht hin, dass der Consent-Hinweis automatisch beim Aufruf der Seite hochploppt - das muss passieren, auch wenn auf der (Start-)Seite kein Youtube, Maps o.ä. eingebunden ist.
Die Consent-Einstellungen müssen auch in Live-Umgebungen immer verfügbar sein, z.B. durch einen absolut positionierten Button oder einen entsprechenden Link in der Fußzeile, also nicht nur im Testmodus.
Du kannst versuchen, die KI dazu zu bringen, dass sie dir eine include.php generiert und in der info.php

$module_function    = 'tool, snippet';

statt

$module_function    = 'tool'; 

verwendet, dann müsste das manuelle Einbinden der view.php entfallen.


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#3 15.02.2026 18:42:05

Slugger
Developer

Re: Klaro Consent Manager

florian wrote:

Sieht so weit schon mal ganz gut aus.
Ich bekomme es noch nicht hin, dass der Consent-Hinweis automatisch beim Aufruf der Seite hochploppt - das muss passieren, auch wenn auf der (Start-)Seite kein Youtube, Maps o.ä. eingebunden ist.

Ja das ist so ein Punkt den ich auch noch nicht so ganz verstehe.

In der kommentierten klaroConfig.js gibt es:

/*
    Wenn 'mustConsent' auf 'true' gesetzt ist, zeigt Klaro den consent manager modal
    direkt an und erlaubt dem Benutzer nicht, ihn zu schließen, bevor er der Nutzung
    von Diensten Dritter nicht aktiv zugestimmt oder diese abgelehnt hat.
    */
    mustConsent: false,

Das ist bei dem Modul in den globale Einstellung "Consent-Wall (Erzwingen):"

Ist der Haken nicht gesetzt (false), kommt rechts unten ein Hinweisfenster.

Unabhängig von false oder true, poppt jetzt der Consent auf wenn ein Dienst hinzugefügt wurde.

florian wrote:

Die Consent-Einstellungen müssen auch in Live-Umgebungen immer verfügbar sein, z.B. durch einen absolut positionierten Button oder einen entsprechenden Link in der Fußzeile, also nicht nur im Testmodus.
Du kannst versuchen, die KI dazu zu bringen, dass sie dir eine include.php generiert und in der info.php

$module_function    = 'tool, snippet';

statt

$module_function    = 'tool'; 

verwendet, dann müsste das manuelle Einbinden der view.php entfallen.

Im Anhang ein Fix.

Dateien ersetzen und Modul neu Laden.

- info.php - mit $module_function    = 'tool, snippet';
- include.php generiert
- view.php - Button hinzugefügt
- alternativ über Grundeinstellung - Fußzeile: " <a href="#" onclick="return klaro.show();">Klaro</a> " einfügen.

Dann nur noch einen Eintrag in das Template index.php nach <body>:

<?php if(function_exists('show_klaro')) { show_klaro(); } ?>

Das andere folgt später.

Anhang entfernt!

Last edited by Slugger (22.05.2026 12:25:57)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#4 16.02.2026 08:40:50

florian
Administrator

Re: Klaro Consent Manager

Okay, das funktioniert jetzt schon mal mit der Consent-Wall.
Wie werden die betreffenden Inhalte nun konkret aufgerufen?
Versuch mit Youtube-Video:
[[klaroservice?name=youtube&id=EOIvnRUa3ik]]
Ausgabe im Frontend:

<script type="text/plain" data-type="application/javascript" data-name="youtube" type="text/plain" data-type="application/javascript" data-name="youtube">
<iframe data-name="youtube" width="560" height="315" data-src="https://www.youtube.com/embed/{{id}}" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</script>

D.h. der Platzhalter {{id}} wird nicht ersetzt.
Lässt sich beheben, indem der Code im Droplet

 $code = str_replace('{{id}}', $id, $code);

geändert wird in

 $code = str_replace('[id]', $id, $code);

und analog im Backend bei YT hinterlegt wird

<script type="text/plain" data-type="application/javascript" data-name="youtube">
<iframe width="560" height="315" src="https://www.youtube.com/embed/[id]" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

Dann wird zwar der gewünschte Code im FE eingefügt, aber nicht ausgeführt.
Fehlerkonsole:

Uncaught SyntaxError: expected expression, got '<'

Als würde die modules/klaro_consent/js/klaro-no-css.js nicht gefunden oder geblockt werden. Sie ist aber da und auch aufrufbar.


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#5 16.02.2026 09:42:47

Slugger
Developer

Re: Klaro Consent Manager

Hallo,
wie ich sehe ist in der Install.php die beigelegt ist noch "alte" Mustervorschläge von der Quasselstrippe.

Aktuell habe ich für YT den hier:

<iframe width="560" height="315" src="https://www.youtube.com/embed/[ID]" frameborder="0" allowfullscreen></iframe>

Das mit dem Platzhalter ist mittlerweile bereinigt.

Ich hänge mal ein DUMP an.

Anhang enfernt!

Dann sind wir auf der gleichen Wellenlänge, sind in der Zwischenzeit mehr geworden.

Achja, Sonderfälle wie z.b.: Twitter sind im Moment mit <DIV> im Muster damit das Widged nicht vorlagen kann.

Reminder für mich:
-> Droplet erweitern

Last edited by Slugger (22.05.2026 12:26:30)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#6 16.02.2026 16:27:48

florian
Administrator

Re: Klaro Consent Manager

Yay! Wir nähern uns dem Ziel.

Also, mit ID in Großbuchstaben funktioniert es mit Youtube nicht. Wenn ich
- im Droplet

...
 $code = str_replace('[id]', $id, $code);
...

stehen habe, im YT-Template

...src="https://www.youtube.com/embed/[id]"...

und das dann im FE mit
[[klaroservice?name=youtube&id=356xwuNcA70]]
nutze,  klappt's.

Dito mit Google Maps.

Edit: Der zuvor gemeldete Scriptfehler kam dadurch, dass ich den Funktionsaufruf in der index.php nicht nach <body>, sondern vor </body> (also ganz am Schluss) eingefügt hatte... wer lesen kann usw.   ops

Last edited by florian (16.02.2026 16:37:47)


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#7 16.02.2026 17:26:35

Slugger
Developer

Re: Klaro Consent Manager

Danke für deine Nachricht.
Ja das Skript will so früh wie möglich geladen werden.

Hast du ein Gefühl welche Dienste häufig in Gebrauch sind?

Dann kann ich mich erst auf die konzentrieren, bevor die Exoten und hartnäckigen Fälle dran kommen.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#8 16.02.2026 19:58:43

florian
Administrator

Re: Klaro Consent Manager

Youtube, Google Maps,  OpenStreetMap, Google Analytics, Google Tag Manager, Matomo fallen mir spontan ein


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#9 17.02.2026 10:14:14

Slugger
Developer

Re: Klaro Consent Manager

Danke,

  • Youtube,

  • Google Maps,

  • OpenStreetMap,

  • Google Analytics,

  • Google Tag Manager,

  • Matomo

Die ersten zwei sind ja mehr oder weniger fertig Openstreet ist in arbeit.

Der Rest sind unsichtbare Verarbeitungs Dienste. Da Blende ich was für den Test ein, wenn der Dienst zugestimmt wurde.

Last edited by Slugger (17.02.2026 10:18:26)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#10 15.03.2026 22:43:42

Slugger
Developer

Re: Klaro Consent Manager

Hier geht es auch weiter, seitdem ich nun Claude benutze.

Betaversion 0.1.0 vorher deinstallieren.
Droplet auch löschen.

Im Anhang Betaversion 0.2.0 und Anleitung.

ENFERNT!

Für diejenigen die Matomo, GTM, GA benutzen, bitte Testen, da ich die Dienste nicht im Einsatz habe.

Last edited by Slugger (22.05.2026 12:27:04)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#11 16.05.2026 16:33:34

florian
Administrator

Re: Klaro Consent Manager

Diesem schönen Modul kommt gar nicht die Aufmerksamkeit zu, die es eigentlich verdient hätte.

Ein paar Anmerkungen dazu:

1) Die automatische Einbindung ins Frontend der Website mittels include.php scheitert an der Abfrage

// Im Frontend direkt ausführen (nicht im Backend)
if (!defined('ADMIN_URL')) {
    show_klaro();
}

Diese Bedingung ist nie erfüllt bzw. (möglicherweise etwas widersinnigerweise) ist ADMIN_URL auch im Frontend definiert, folglich wird show_klaro() nicht aufgerufen.
Da allerdings include.php nur aufs Frontend und nicht aufs Backend angewendet wird, braucht es die Abfrage gar nicht. Wenn man also unten in der include.php nur

    show_klaro();

stehen lässt, wird der Klaro-Consent im FE angezeigt.

2) Da das Modul kein Seitenmodul ist, ist eigentlich auch keine view.php erforderlich, sondern der darin befindliche Code könnte mMn direkt in der include.php stehen, ohne Umweg über die Funktion show_klaro.

3) Im Dialog steht beim erstmaligen Aufruf "Alle ablehnen", obwohl sich das Session-Cookie und das Klaro-Cookie nicht ablehnen lassen (was ja auch so sein muss), d.h. die Schaltfläche müsste "Alle optionalen Cookies ablehnen" heißen und nur angezeigt werden, wenn es überhaupt ablehnbare Cookies gibt. Aber das kommt vermutlich aus dem Klaro-Core .

4) Man kommt aus dem Backend gar nicht an die schöne Anleitung heran, dafür müsste es vielleicht einen Button geben. Anzeige dann in einem Popup wie bei dem gewissen anderen Tool, damit man das paralle geöffnet halten kann.

<Edit>
5) Für den Link zur Datenschutzerklärung sollte es die Möglichkeit geben, die Seite direkt auszuwählen (Seitenbaum) statt die URL eingeben zu müssen. Wobei da auch übrigens eine Angabe wie [wblink5] funktioniert.

6) Es sollten initial nicht alle Dienste aktiv sein, oder es sollte zumindest eine Checkbox "alle auswählen"/"alle abwählen" geben.
</Edit>
Die Einbindung von Diensten habe ich jetzt noch nicht getestet.

Last edited by florian (16.05.2026 16:37:45)


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#12 16.05.2026 18:29:20

Slugger
Developer

Re: Klaro Consent Manager

Hallo Florian,
vielen Dank für die vielen Anmerkungen, das waren ja noch die ersten Gehversuche mit der Quasselstrippe Gemini und Umstieg zu Claude.

Da sind einige Sachen darunter die Gemini nicht auf dem Schirm hatte und zu dem Zeitpunkt waren einige Sachen bei mir noch nicht Firm.

Ich werde das Modul nochmal unter die Lupe nehmen und alles soweit bereinigen sofern Klaro-Config das zulässt.

Last edited by Slugger (16.05.2026 18:30:18)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#13 18.05.2026 17:28:13

webbird
Administrator

Re: Klaro Consent Manager

Noch ein spontaner Einwurf: Wenn man im Frontend den Dialog geöffnet hat, kommt man nur wieder raus, wenn man [Speichern] klickt.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#14 18.05.2026 18:24:22

Slugger
Developer

Re: Klaro Consent Manager

Hi webbird.

webbird wrote:

Noch ein spontaner Einwurf: Wenn man im Frontend den Dialog geöffnet hat, kommt man nur wieder raus, wenn man [Speichern] klickt.

Das Zauberwort heißt hier Consent-Wall (erzwingen) wink

Wenn Haken = muss "speichern", kein wegklicken außerhalb des Modals
Wenn kein Haken = ohne, also außerhalb des Modals mit der Maus klicken.

Klaro-config ist ziemlich eingegrenzt, ich schaue mir das aber gerne nochmal an, vielleicht gab es in letzter Zeit Anpassung daran.


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#15 18.05.2026 18:28:05

webbird
Administrator

Re: Klaro Consent Manager

Hm, in meinem Gehirn macht das nur Sinn, wenn der Dialog beim Laden der Seite automatisch öffnet. Aber egal, mir isses einfach nur aufgefallen. wink


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#16 18.05.2026 23:20:39

Slugger
Developer

Re: Klaro Consent Manager

Feedback Florian & webbird – Status

Punkt 1 – include.php Guard (Florian)
Erledigt in 0.2.1. Die fehlerhafte Abfrage if (!defined('ADMIN_URL')) wurde durch den korrekten WB_FRONTEND Guard ersetzt. Zusätzlich wurde die Einbindung auf die WBCE I:: Klasse umgestellt damit CSS/JS korrekt im <head> landen.

Punkt 2 – view.php vereinfachen (Florian)
Geplant. include.php und view.php werden zusammengeführt – weniger Dateien, klarere Struktur.

Punkt 3 – "Alle ablehnen" Button (Florian)
Teilweise erledigt in 0.2.1. Der Button heißt jetzt "Nur notwendige akzeptieren" – das beschreibt besser was tatsächlich passiert. Das Verhalten selbst kommt aus dem Klaro-Core und kann nicht verändert werden.

Punkt 4 – Anleitung im Backend (Florian)
Erledigt in 0.2.1. Im Admin-Tool gibt es jetzt einen "? Hilfe / Anleitung" Button der die vollständige Anleitung in einem separaten Browser-Popup öffnet – parallel zum Backend nutzbar
.
Punkt 5 – Seitenbaum für Datenschutz-URL (Florian)
Geplant. Aktuell funktioniert bereits [wblink5] im URL-Feld als Workaround. Ein echter Seitenbaum-Picker kommt später.

Punkt 6 – Dienste initial deaktiviert (Florian)
Bereits korrekt implementiert. default: false in der Klaro-Konfiguration sorgt dafür dass beim ersten Besuch alle Schieberegler ausgeschaltet sind. Wer alle aktiviert sieht hat bereits einen gespeicherten Cookie.

Punkt 7 – Dienste gruppieren (Florian)
Erledigt in 0.2.1. Neue Checkbox "Dienste nach Zweck gruppieren" im Admin-Tool – aktiviert groupByPurpose in Klaro. Die Gruppierung (Notwendig / Social Media / Externe Inhalte / Statistik) sieht sehr übersichtlich aus.

webbird – Modal nicht schließbar
Das ist das konfigurierbare Consent-Wall Verhalten (mustConsent). Wenn die Consent-Wall im Backend aktiviert ist muss der Besucher eine Wahl treffen bevor er die Seite nutzen kann – das ist gewollt. Ohne Consent-Wall erscheint ein Banner mit Schließen-Option.

Weitere geplante Verbesserungen
Dienst-Typ in der Datenbank (embed_type)
Aktuell sind iframe-Dienste (YouTube, Vimeo, Maps usw.) und Script-Dienste (GA, GTM) in hartcodierten Listen in view.php und KlaroService.php definiert. Geplant ist eine embed_type Spalte direkt in der Datenbank – der Administrator wählt beim Anlegen eines neuen Dienstes den Typ (iframe / script / social). Damit können beliebige neue Dienste ohne Code-Eingriff korrekt eingebunden werden.

Datenschutz-URL pro Dienst
Das Datenbankfeld service_url ist bereits vorhanden aber noch nicht im Backend editierbar und wird noch nicht an Klaro übergeben. Geplant ist das Eingabefeld im Admin-Tool sowie die Übergabe als links.privacyPolicy pro Dienst – dann erscheint im Modal ein direkter Link zur Datenschutzerklärung des jeweiligen Anbieters (Google, Meta usw.).

Sub-Zweck Feld entfernen
Das bisherige purpose_detail Feld hat keinen praktischen Nutzen da Klaro kein entsprechendes Attribut unterstützt. Das war ein Überbleibsel aus einem Versuch, weiter Zwecke in das Modal einzubinden. Es wird entfernt und der Platz für die service_url genutzt.

Automatische Gruppierung
Wenn alle aktiven Dienste zur selben Kategorie gehören wird die Gruppierung automatisch deaktiviert – sie macht dann keinen Sinn. Klaro zeigt die Einzelliste. Bei 2 oder mehr verschiedenen Kategorien wird automatisch gruppiert.

Toggle-Farben und Kontrast
Die Klaro-eigenen CSS-Variablen für Schieberegler und Buttons werden über die konfigurierbare Button-Farbe gesteuert – damit ist das gesamte Modal farblich konsistent zum Template.

Anleitung-Popup verfeinern
Das Markdown-Rendering im Hilfe-Popup wird verbessert (vollständige Überschriften-Erkennung, bessere Code-Block-Darstellung) und der Zeilenkontrast in Tabellen kräftiger.

Google Consent Mode V2
Für Websites mit Google-Diensten (GA4, GTM) wird die Integration des Google Consent Mode V2 ergänzt – seit März 2024 für alle Google-Nutzer verpflichtend.

Seitenbaum für Datenschutz-URL
Direktes Auswählen der Datenschutz-Seite aus dem WBCE-Seitenbaum statt manuelle URL-Eingabe.

Last edited by Slugger (18.05.2026 23:26:24)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

Liked by:

florian

#17 19.05.2026 12:58:32

Slugger
Developer

Re: Klaro Consent Manager

Kleiner zwischenstand:
Klaro Consent Manager – Update 0.3.2

Hallo zusammen,

vielen Dank an Florian und webbird für das wertvolle Feedback zur Beta! Hier eine Übersicht was seit 0.2.0 passiert ist.

Feedback-Abarbeitung

Fast alle gemeldeten Punkte sind jetzt umgesetzt:

include.php Guard – Die fehlerhafte ADMIN_URL Abfrage wurde durch den korrekten WB_FRONTEND Guard ersetzt. CSS/JS-Einbindung läuft jetzt sauber über die WBCE I:: Klasse.

view.php vereinfachen – include.php und view.php wurden zusammengeführt. Eine Datei weniger, sauberere Architektur.

"Alle ablehnen" Button – Heißt jetzt "Nur notwendige akzeptieren" – beschreibt besser was tatsächlich passiert.

Anleitung im Backend – Ein "? HILFE / ANLEITUNG" Button öffnet die vollständige Anleitung als Browser-Popup. Rendering via Parsedown (Markdown-Bibliothek, MIT-lizenziert), saubere Darstellung mit Tabellen und Code-Blöcken.

Dienste initial deaktiviert – default: false sorgt dafür dass beim ersten Besuch alle Schieberegler ausgeschaltet sind.

Dienste gruppieren – groupByPurpose als Checkbox im Admin-Tool. Aktiviert sich automatisch wenn 2 oder mehr verschiedene Kategorien vorhanden sind.

Modal schließen – Das ist das konfigurierbare Consent-Wall Verhalten (mustConsent). Wenn aktiviert muss der Besucher eine Wahl treffen. Ohne Consent-Wall erscheint ein Banner mit Schließen-Option.

Seitenbaum für Datenschutz-URL – Noch offen. Als Workaround funktioniert [wblink5] bereits im URL-Feld.

Was sonst noch passiert ist

embed_type pro Dienst – Neue Spalte im Admin-Tool mit Dropdown (iframe / script / social / essential). Neue Dienste wie Wisuki können jetzt ohne Code-Eingriff korrekt eingebunden werden – einfach Dienst anlegen, Typ wählen, fertig.

Datenschutz-URL pro Dienst – Hinterlege die Datenschutzerklärung des Anbieters direkt beim Dienst. Erscheint dann im Klaro-Modal als direkter Link (z.B. https://policies.google.com/privacy für Google).

Redakteur-Hinweise – Eingeloggte Benutzer sehen farbige Hinweise wenn ein Dienst fehlt (roter Rahmen) oder deaktiviert ist (gelber Rahmen). Normale Besucher sehen einen DSGVO-konformen Hinweistext.

Tab-Navigation im Admin-Tool – Dienste sind jetzt nach Kategorien in Tabs aufgeteilt (Notwendig / Statistik / Externe Inhalte / Social Media / + Neuer Dienst). Kein endloses Scrollen mehr.

CHANGELOG.md – Vollständige Versionshistorie ab 0.2.0 liegt dem Paket bei.

Getestete Dienste

  • YouTube, Vimeo, Google Maps, OpenStreetMap (+ Pin + Layer), SoundCloud (Track + Playlist), Facebook

  • Instagram, X/Twitter

  • Google Analytics 4, Google Tag Manager, Matomo -> Noch offen!

  • Klaro-Modal, Banner, Zahnrad-Button, Consent-Wall, Automtische Gruppierung

  • Hinweise Admin/Redakteur/Besucher wenn kein Dienst Aktiv

  • Wisuki (neuer Dienst via embed_type ohne Code-Eingriff)

Noch offen (geplant)

  • Seitenbaum für Datenschutz-URL

  • Toggle-Farben via CSS-Variablen

  • Google Consent Mode V2

  • Multi-Instance Frontend

Last edited by Slugger (19.05.2026 15:02:01)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#18 19.05.2026 19:23:13

Slugger
Developer

Re: Klaro Consent Manager

In Arbeit...

CSS-Design für Klaro Modal und Banner im Tool-Bereich  in Arbeit mit diversen Einstellungen.
Zwischenstand:

Der Rest folgt, wenn ich Zeit bekomme mit Assi zu Quasseln  wink

Last edited by Slugger (20.05.2026 16:09:32)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

Liked by:

giz, florian

#19 20.05.2026 13:04:56

Slugger
Developer

Re: Klaro Consent Manager

Klaro Consent Manager – Zwischenstand 0.4.9

Hallo zusammen,

nach intensiver Weiterentwicklung gibt es einen neuen Zwischenstand zum Testen. Das Modul hat sich seit 0.3.2 erheblich weiterentwickelt – hier die wichtigsten Neuerungen.

Design & Anpassung

Das Admin-Tool wurde komplett überarbeitet und in vier übersichtliche Bereiche aufgeteilt:

Gemeinsam (Modal & Banner) – Akzent-Farbe für Toggles und Buttons, Button-Textfarbe, Ecken-Rundung, Schriftart und Schriftgröße.

Spezifisch – Modal: Hintergrund, Textfarbe, Beschreibungstext, Sekundärtext, Zweck-Text. Banner: Position und Breite.

Widerrufs-Button & Beschriftungen – Eigene Farbe für den Widerrufs-Button (getrennt von Akzent-Farbe), Position (Oben/Unten Links/Rechts), Icon-Auswahl (Font Awesome), alle Button-Beschriftungen mit direkter Farbzuordnung und Hinweis wo der Button sichtbar ist.

Alle Farben werden direkt über klaroConfig.styling übergeben – Klaro setzt sie selbst korrekt.

Neue Einstellungen

  • Akzent-Farbe vs. Widerrufs-Button Farbe – beide nun separat einstellbar

  • "Nur notwendige" ausblendenhideDeclineAll als Checkbox

  • Dienste gruppieren – Radio-Buttons: Aus / Auto (ab 2 Kategorien) / Immer

  • Seitenbaum für Datenschutz-URL – Dropdown mit allen WBCE-Seiten direkt im Admin-Tool

  • Tooltips – alle Checkboxen haben ℹ Hinweise was sie bewirken

Buttons – Beschriftung & Farbe

Alle Buttons sind jetzt in einer übersichtlichen Tabelle mit Beschriftung, Farbe und "Wo sichtbar" Spalte:

  • OK → Banner

  • Alle akzeptieren → Modal + Banner

  • Auswahl speichern → Modal (eigener Colorpicker)

  • Nur notwendige → Banner, wenn nicht ausgeblendet (eigener Colorpicker)

  • Schließen (X) → Modal, nur wenn kein Consent-Wall

  • Mehr erfahren → Banner (eigener Colorpicker)

Anbieter-Datenschutzerklärung pro Dienst

Jeder Dienst kann eine eigene Datenschutz-URL hinterlegen. Diese erscheint als "Anbieter-Datenschutzerklärung" Link direkt unter der Dienst-Beschreibung im Modal. Die Beschriftung ist frei konfigurierbar.

Hier brauche ich nochmal mehr Augen ob alle Zuordnungen richtig getroffen sind, mein Gehirn qualmt devil

DSGVO-Musterbeschreibungen

Die Anleitung enthält jetzt vollständige DSGVO-konforme Musterbeschreibungen für alle vorinstallierten Dienste (YouTube, Google Maps, OSM, Facebook, Instagram, X/Twitter, SoundCloud, Vimeo, GA4, GTM, Matomo, Wisuki). Diese können direkt übernommen werden.

Ich weise darauf hin das dass keine Rechtsberatung ist, die Mustervorlagen dienen nur als Beispiele!

Technisch

  • json_encode() statt addslashes() – Sonderzeichen, Kommas, Anführungszeichen in Texten kein Problem mehr

  • Parsedown für Hilfe-Popup – sauberes Markdown-Rendering

  • Versionsnummer im Hilfe-Popup aus DB – immer aktuell

  • install.php + upgrade.php vollständig geprüft (34 Spalten, kein PDO)

  • CHANGELOG.md vollständig (ab 0.2.0)

Noch geplant (0.5.0)

  • Feedback aus 0.4.9

  • Google Consent Mode V2 für GA/GTM

  • Anleitung vollständig überarbeiten

Feedback wie immer willkommen!

Last edited by Slugger (20.05.2026 16:14:37)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#20 20.05.2026 21:49:33

florian
Administrator

Re: Klaro Consent Manager

Schön grün... irgendwie denkt sich Claude auch für jedes Projekt ein anderes Backend-Design aus... aber davon abgesehen ein großer Fortschritt und funktioniert
Anmerkungen:

  • Test-Modus funktioniert genau umgekehrt - man muss den Haken entfernen, damit die Consent-Wall oder das Modal unten rechts angezeigt wird.

  • Nach der Installation sind alle Plugins »aktiv«.  Das führt dazu, dass unkundige Nutzer Erlaubnisse für Dienste abfragen, die sie gar nicht benutzen. (Okay, die Alternative, Dienste zu nutzen, ohne darum um Erlaubnis zu bitten, ist auch nicht besser, aber auch da hilft das ja

  • Die Droplets werden installiert, sind aber inaktiv (irrtierend/Fehlerquelle, bitte default=aktiv )

  • Gruppierung nach Diensten klappt erst ab 3 Kategorien (Notwendig + x + y)

  • Besser Web-Colorpicker (siehe NWI-Auswahl Tagfarbe) als Betriebssystem-Colorpicker

  • »vollständige DSGVO-konforme Musterbeschreibungen für alle vorinstallierten Dienste« - was meinst du damit? z.B den Text »Wir binden Kartenmaterial von Google Maps ein.«?


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

#21 20.05.2026 22:39:14

Slugger
Developer

Re: Klaro Consent Manager

florian wrote:

Schön grün... irgendwie denkt sich Claude auch für jedes Projekt ein anderes Backend-Design aus... aber davon abgesehen ein großer Fortschritt und funktioniert

Ja, jedes Modul braucht ein erkennungswert, Klaro*ist*grün  monkey

florian wrote:

Test-Modus funktioniert genau umgekehrt - man muss den Haken entfernen, damit die Consent-Wall oder das Modal unten rechts angezeigt wird.

OK konnte es etwas nachstellen. Das ist mMn noch nicht "sauber". Außerdem verfeinere ich Test-Modus bei "Aktiv", das  ein Testlink generiert wird mit https;//deine.domaine.de/#klaro-testing im neuen Fenster.

florian wrote:

Nach der Installation sind alle Plugins »aktiv«.  Das führt dazu, dass unkundige Nutzer Erlaubnisse für Dienste abfragen, die sie gar nicht benutzen. (Okay, die Alternative, Dienste zu nutzen, ohne darum um Erlaubnis zu bitten, ist auch nicht besser, aber auch da hilft das ja

Werde ich optimieren -> Notwendige sind "Aktiv", alle mitgelieferte Dienste im Paket "Inaktiv"

florian wrote:

Die Droplets werden installiert, sind aber inaktiv (irrtierend/Fehlerquelle, bitte default=aktiv )

OK -> Wird geändert

florian wrote:

Gruppierung nach Diensten klappt erst ab 3 Kategorien (Notwendig + x + y)

OK -> neue Rechung  big_smile

florian wrote:

Besser Web-Colorpicker (siehe NWI-Auswahl Tagfarbe) als Betriebssystem-Colorpicker

Danke für den Tipp, werde ich machen. thumb_up

florian wrote:

»vollständige DSGVO-konforme Musterbeschreibungen für alle vorinstallierten Dienste« - was meinst du damit? z.B den Text »Wir binden Kartenmaterial von Google Maps ein.«?

Habe ich das so in den Beschreibungen stehen?

Das sind Mustervorschläge für die Dienste, die kann man entweder für das Modal verwenden oder nach seinen eigenen DSGVO Knigge anpassen.
Sie können andererseits für die eigene Seite der Datenschutzerklärung verwendet werden und im Modal alternativ die Beschreibung noch kürzer Fassen wie dein Bespiel "Wir binden Kartenmaterial von Google Maps ein."

Es gibt viele Varianten wie und wo die Texte platziert werden können, wichtig ist mMn das man es versteht und nachvollziehen kann.

Last edited by Slugger (20.05.2026 22:40:51)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

Liked by:

florian

#22 21.05.2026 20:38:02

Slugger
Developer

Re: Klaro Consent Manager

Klaro Consent Manager – Zwischenstand 0.4.20

Hallo zusammen,

nach dem letzten Feedback gibt es wieder einen neuen Zwischenstand zum Testen. Seit 0.4.9 hat sich einiges getan – hier die wichtigsten Neuerungen.

DSGVO-Texte: Zwei Ebenen

Die Dienst-Beschreibungen sind jetzt klar zweigeteilt:

- Beschreibung (kurz, 1–2 Sätze) – erscheint im Klaro-Modal direkt beim Dienst
- DSGVO-Rechtstext (vollständig, HTML) – erscheint via [[KlaroDSGVO]] auf der Datenschutzseite

Das verhindert doppelt gemoppelte Rechtstexte im Modal und hält den Einwilligungsdialog übersichtlich.

Beschreibungen überarbeitet

Alle vorinstallierten Dienste haben neue, besucherorientierte Beschreibungen:

- Aktiver Ton: "Wir binden YouTube-Videos direkt ein, damit Sie sie ohne Umweg abspielen können."
- Drittland-Hinweis bei USA-Diensten: "Daten werden in die USA übermittelt. Ein Angemessenheitsbeschluss oder AVV-Vertrag kann nicht garantiert werden."
- GA4: "anonymisiert" bewusst entfernt – entspricht nicht der Realität
- OSM: UK ist Drittland – Angemessenheitsbeschluss vorhanden (gültig bis 2031), kein AVV verfügbar
- Matomo: zwei Szenarien (lokal vs. Cloud/Neuseeland)
- Abschluss bei allen: "Details zur Verwendung und Weitergabe Ihrer Daten entnehmen Sie bitte unserer Datenschutzerklärung."

Ich weise ausdrücklich darauf hin: das ist keine Rechtsberatung, die Texte sind Mustervorlagen!

Neues Droplet: KlaroDSGVO

Einmalig auf der Datenschutzseite einbinden – fertig. Gibt alle aktiven Dienste mit vollständigem DSGVO-Rechtstext aus, gegliedert nach Kategorien. Kein manuelles Pflegen mehr nötig.

Parameter optional: purpose=statistics, service=youtube, inactive=1

Web-Colorpicker

Alle 11 Farbfelder im Admin-Tool haben jetzt einen Web-Colorpicker: Hex-Wert direkt eintippen oder visuell per Swatch auswählen – kein OS-Dialog mehr.

Installation: sinnvolle Defaults

- Neue Dienste starten mit active=0 (nur Notwendige active=1)
- Droplets werden aktiv installiert

Bereinigt

PURPOSE_DESCS war intern definiert aber nie an Klaro übergeben worden – rausgeräumt.

Noch geplant (0.5.0)

- Feedback aus 0.4.x
- Google Consent Mode V2 für GA/GTM
- Anleitung vollständig überarbeiten
- Kategorie-Verwaltung (CRUD) für eigene Zweck-Gruppen

Feedback wie immer willkommen!

Last edited by Slugger (21.05.2026 20:38:16)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

Liked by:

giz

#23 22.05.2026 08:37:44

giz
Member

Re: Klaro Consent Manager

Servus,
da kommst mit dem Testen gar nicht hinterher, so schnell kommen neue Versionen smile

das Droplet [[KlaroDSGVO]] wird nicht installiert, bzw. ist nach Installation nicht im Dropletsbereich vorhanden.
(ich update die neuen Versionen immer, kein deinstall-neuinstall)

Grüße


WBCE 1.6.8 - PHP 8.4.16 - All-inkl
Ein Leben ohne Hund ist möglich, aber sinnlos
#Akkusativ ist kein Verbrechen

Offline

#24 22.05.2026 08:49:39

Slugger
Developer

Re: Klaro Consent Manager

Hast du mal upgrade.php unter Erweiterungen für Klaro gemacht?

Ansonsten mal den Code aus dem Ordner nehmen und im Droplet manuell anglegen. Aber ohne <?php ;-)

Last edited by Slugger (22.05.2026 08:50:45)


Hoster: ALL-INKL *** Grundsätzliche WBCE Konfig ***
WBCE: 1.6.5 • BE: 2.1.0 • PHP: 8.x * Alle • BE: Argos
Status Projekt 1-4:  OK

Online

#25 22.05.2026 08:49:56

florian
Administrator

Re: Klaro Consent Manager

Neuinstallation steigt aus mit

2026-05-22T06:46:39+00:00 [Exception] There was an unknown exception: syntax error, unexpected string content "", expecting "-" or identifier or variable or number in line (291) of /modules/klaro_consent/install.php

Folge: beim Aufruf

Fehler: Datenbanktabellen fehlen. Bitte das Modul deinstallieren und neu installieren.

(aber prima, dass der Fehler im BE sinnvoll abgefangen wird)
WBCE 1.6.7, PHP 8.4

Last edited by florian (22.05.2026 08:50:38)


Wir Benötigen: Cents, Euros... jetzt spenden!

Offline

Board footer

up