WBCE CMS – Way Better Content Editing.
You are not logged in.
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.
Last edited by Slugger (14.02.2026 23:25:07)
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
Offline
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.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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.
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.
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
Offline
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.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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.
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 (16.02.2026 11:25:12)
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
Offline
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. 
Last edited by florian (16.02.2026 16:37:47)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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
Offline
Youtube, Google Maps, OpenStreetMap, Google Analytics, Google Tag Manager, Matomo fallen mir spontan ein
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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
Offline
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.
Für diejenigen die Matomo, GTM, GA benutzen, bitte Testen, da ich die Dienste nicht im Einsatz habe.
Last edited by Slugger (15.03.2026 23:45:55)
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
Offline
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)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
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
Offline
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.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
Hi webbird.
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)
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
Offline
Hm, in meinem Gehirn macht das nur Sinn, wenn der Dialog beim Laden der Seite automatisch öffnet. Aber egal, mir isses einfach nur aufgefallen. 
Ich habe eine Amazon-Wishlist.
Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal
Offline
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
Offline
florian
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 (Yesterday 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
Offline
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 
Last edited by Slugger (Yesterday 20:00:34)
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
Offline
giz, florian
Pages: 1