diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5f062e38..be2988cc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,19 +1,11 @@
# REDAXO consent_manager - Changelog
-## Version 5.4.2 - 17.02.2026
-
-- **Revert:** Die Änderung an `box.php` aus 5.4.1 wurde rückgängig gemacht, da sie zu Darstellungsproblemen bei aktiviertem "Eigenes CSS" führte. Das Basis-Layout (Backdrop, Positionierung) wird nun wieder immer ausgegeben.
-
-## Version 5.4.1 - 16.02.2026
+## Version 5.5.0 (Entwicklung)
- **Feature:** Inline-Consent kann nun optional auf "Session-Scope" beschränkt werden. Zustimmungen gelten dann nur, solange der Browser-Tab offen ist (via `sessionStorage`). Konfigurierbar unter Einstellungen.
- **Fix:** Reload-Loop behoben: Das Öffnen der Details aus einem Inline-Element führte unter Umständen zu einem sofortigen Neuladen der Seite.
-- **Fix:** iOS Safari Touch-Event Handling verbessert: Button musste unter Umständen doppelt getippt werden; nun reagiert er sofort (Danke @alexwenz).
-- **Fix:** `box.php`: `outputowncss` Einstellung respektieren und fehlende CSP-Nonce für Inline-Styles ergänzen (#462).
-- **System:** Build-Skript aktualisiert für bessere Minifizierung.
-
-
-
+- **Fix:** iOS Safari Touch-Event Handling verbessert: Button musste unter Umständen doppelt getippt werden; nun reagiert er sofort.
+- **Security:** CSRF/XSS-Schutz: Fehlende CSP-Nonce für Inline-Styles und Scripte ergänzt (`theme_editor.php` und `box_cssjs.php`).
## Version 5.3.4 - 29.01.2026
diff --git a/boot.php b/boot.php
index ab040fd1..bd4b39fe 100644
--- a/boot.php
+++ b/boot.php
@@ -322,12 +322,12 @@
try {
$googleConsentModeConfig = GoogleConsentMode::getDomainConfig($domain);
- $debugScript = '' . PHP_EOL;
+ $debugScript = '' . PHP_EOL;
} catch (Exception $e) {
- $debugScript = '' . PHP_EOL;
+ $debugScript = '' . PHP_EOL;
}
- $debugScript .= '' . PHP_EOL;
+ $debugScript .= '' . PHP_EOL;
// Debug-Script vor einfügen
$content = $ep->getSubject();
diff --git a/fragments/ConsentManager/box_cssjs.php b/fragments/ConsentManager/box_cssjs.php
index 0a3bd86f..2d63124f 100644
--- a/fragments/ConsentManager/box_cssjs.php
+++ b/fragments/ConsentManager/box_cssjs.php
@@ -155,8 +155,8 @@
$jsConfig = [
'cookieSameSite' => 'Lax',
'cookieSecure' => rex_request::isHttps(),
- 'cookieName' => 'consentmanager',
- 'cookieLifetime' => 14, // Tage
+ 'cookieName' => $addon->getConfig('cookie_name', 'consentmanager'),
+ 'cookieLifetime' => (int) $addon->getConfig('lifespan', 14), // Tage
'domain' => rex_request::server('HTTP_HOST', 'string', ''),
'version' => $consent_manager->version,
'cacheLogId' => $consent_manager->cacheLogId,
diff --git a/fragments/ConsentManager/cookiedb.php b/fragments/ConsentManager/cookiedb.php
index 177479e5..276e97c6 100644
--- a/fragments/ConsentManager/cookiedb.php
+++ b/fragments/ConsentManager/cookiedb.php
@@ -21,11 +21,12 @@
if (0 !== count($consent_manager->cookiegroups)) { /** phpstan-ignore-line */
// Cookie Consent + History
+ $cookieName = rex_addon::get('consent_manager')->getConfig('cookie_name', 'consentmanager');
$cookiedata = [];
- if (is_string(rex_request::cookie('consentmanager'))) {
- $cookiedata = (array) json_decode(rex_request::cookie('consentmanager'), true);
+ if (is_string(rex_request::cookie($cookieName))) {
+ $cookiedata = (array) json_decode(rex_request::cookie($cookieName), true);
}
- $consent_manager_cookie = null !== rex_request::cookie('consentmanager') ? $cookiedata : null;
+ $consent_manager_cookie = null !== rex_request::cookie($cookieName) ? $cookiedata : null;
if (null !== $consent_manager_cookie && isset($consent_manager_cookie['cachelogid'])) {
$db = rex_sql::factory();
$db->setDebug(false);
diff --git a/fragments/ConsentManager/inline_placeholder.php b/fragments/ConsentManager/inline_placeholder.php
index d295e51a..f6d585f6 100644
--- a/fragments/ConsentManager/inline_placeholder.php
+++ b/fragments/ConsentManager/inline_placeholder.php
@@ -121,7 +121,7 @@ class="consent-inline-thumbnail"
- ', '<\/script>', $content) ?>
diff --git a/lang/de_de.lang b/lang/de_de.lang
index 38e8b13e..80166659 100644
--- a/lang/de_de.lang
+++ b/lang/de_de.lang
@@ -127,6 +127,7 @@ consent_manager_config_css_framework_mode_uikit3 = UIkit 3
consent_manager_config_css_framework_mode_bootstrap5 = Bootstrap 5
consent_manager_config_css_framework_mode_tailwind = Tailwind CSS
consent_manager_config_css_framework_mode_bulma = Bulma
+consent_manager_config_css_framework_mode_active = Der "Framework Modus" ist aktiv. Themes können in diesem Modus nicht verwendet werden, da das Layout vom Framework gesteuert wird.
consent_manager_config_framework_legend = Framework-Einstellungen
consent_manager_config_framework_shadow = Schatten
diff --git a/lang/en_gb.lang b/lang/en_gb.lang
index 0e4b1a6f..971663c0 100644
--- a/lang/en_gb.lang
+++ b/lang/en_gb.lang
@@ -158,6 +158,7 @@ consent_manager_config_css_framework_mode_uikit3 = UIkit 3
consent_manager_config_css_framework_mode_bootstrap5 = Bootstrap 5
consent_manager_config_css_framework_mode_tailwind = Tailwind CSS
consent_manager_config_css_framework_mode_bulma = Bulma
+consent_manager_config_css_framework_mode_active = "Framework Mode" is active. Themes cannot be used in this mode as the layout is controlled by the framework.
consent_manager_config_framework_legend = Framework Settings
consent_manager_config_framework_shadow = Shadow
diff --git a/lang/sv_se.lang b/lang/sv_se.lang
index 29a2dcfd..51d61694 100644
--- a/lang/sv_se.lang
+++ b/lang/sv_se.lang
@@ -516,3 +516,5 @@ consent_manager_editorial_autoblock_warning_title = Auto-Blocking är inte aktiv
consent_manager_editorial_autoblock_warning_intro = Automatisk blockering av externt innehåll är för närvarande inaktiverad.
consent_manager_editorial_autoblock_warning_admin = För att koderna som genereras här ska fungera måste auto-blocking aktiveras i inställningarna. Utan denna funktion laddas externt innehåll direkt och kringgår samtyckes-mekanismen.
consent_manager_editorial_autoblock_warning_user = För att koderna som genereras här ska fungera måste auto-blocking aktiveras i inställningarna. Kontakta en administratör eller användare med config-behörighet för att aktivera denna funktion. Utan auto-blocking laddas externt innehåll direkt och kringgår samtyckes-mekanismen.
+
+consent_manager_config_css_framework_mode_active = "Framework-läge" är aktivt. Teman kan inte användas i detta läge eftersom layouten styrs av ramverket.
diff --git a/lib/InlineConsent.php b/lib/InlineConsent.php
index dfc2a27d..7ed69eb6 100644
--- a/lib/InlineConsent.php
+++ b/lib/InlineConsent.php
@@ -400,11 +400,11 @@ public static function getJavaScript(): string
$addon = \rex_addon::get('consent_manager');
$sessionScope = $addon->getConfig('inline_consent_session_scope') ? 'true' : 'false';
- $configScript = '';
+ $configScript = '';
// JavaScript-Datei laden
$jsPath = rex_url::addonAssets('consent_manager', 'consent_inline.js');
- return $configScript . '';
+ return $configScript . '';
}
/**
diff --git a/package.yml b/package.yml
index cade55bc..b593c0c3 100644
--- a/package.yml
+++ b/package.yml
@@ -1,5 +1,5 @@
package: consent_manager
-version: "5.4.2"
+version: "5.5.0-dev"
author: "Friends Of REDAXO"
supportpage: https://redaxo.org/support/community/#slack
diff --git a/pages/help.php b/pages/help.php
index aebd189e..30d3074f 100644
--- a/pages/help.php
+++ b/pages/help.php
@@ -166,7 +166,7 @@
$tocHtml .= '';
// JS for Live Search
- $tocHtml .= '