From 1543d1d02d7fe4ff7a171bdcd8d5c6ffa88a1e47 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 16 May 2026 09:45:22 -0700 Subject: [PATCH 1/3] Update privacy settings icon --- styles/all/template/event/overall_footer_timezone_after.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/all/template/event/overall_footer_timezone_after.html b/styles/all/template/event/overall_footer_timezone_after.html index 9930341..03cabe7 100644 --- a/styles/all/template/event/overall_footer_timezone_after.html +++ b/styles/all/template/event/overall_footer_timezone_after.html @@ -1,7 +1,7 @@ {% if S_CONSENTMANAGER_ENABLED %} {% endif %} From a820d11571f9e571c768e038198608b9a03d6eee Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 16 May 2026 09:46:21 -0700 Subject: [PATCH 2/3] Refactor ACP-managed integrations ACP explainer --- adm/style/consentmanager_acp.html | 16 +++++++++++++--- language/en/acp_consentmanager.php | 9 +++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/adm/style/consentmanager_acp.html b/adm/style/consentmanager_acp.html index afe0fe8..4649c7d 100644 --- a/adm/style/consentmanager_acp.html +++ b/adm/style/consentmanager_acp.html @@ -73,9 +73,19 @@

{{ lang('WARNING') }}

{{ lang('ACP_CONSENTMANAGER_INTEGRATIONS') }}
-

{{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_EXPLAIN') }}

- {{ lang('EXAMPLE') ~ lang('COLON') }}
-
{{ CONSENTMANAGER_INTEGRATIONS_EXAMPLE }}
+
+
+ {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_EXPLAIN') }}
+
+ {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_FORMAT') }}
+
{{ CONSENTMANAGER_INTEGRATIONS_EXAMPLE }}

+ {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED') ~ lang('COLON') }}
+ • id{{ lang('COLON')}} {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_ID') }}
+ • category{{ lang('COLON')}} {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_CAT') }} necessary, analytics, marketing, media.
+ • src{{ lang('COLON')}} {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_SRC') }}
+
+ {{ lang('ACP_CONSENTMANAGER_INTEGRATIONS_OPTIONAL') ~ lang('COLON') }}
+ • label, description, async, defer
diff --git a/language/en/acp_consentmanager.php b/language/en/acp_consentmanager.php index 95aca51..69a8d8b 100644 --- a/language/en/acp_consentmanager.php +++ b/language/en/acp_consentmanager.php @@ -28,7 +28,13 @@ 'ACP_CONSENTMANAGER_MEDIA' => 'Enable embedded media category', 'ACP_CONSENTMANAGER_MEDIA_EXPLAIN' => 'Allows videos, players, widgets, and other iframe-based external media to be loaded after consent.', 'ACP_CONSENTMANAGER_INTEGRATIONS' => 'Manual integrations', - 'ACP_CONSENTMANAGER_INTEGRATIONS_EXPLAIN' => 'Use this to add third-party analytics, marketing, or other scripts directly from the ACP. These integrations appear in the consent UI and are only loaded after the required consent has been granted.

Provide a JSON array of integrations.

Each object must include: id, category, src. The id may only use letters, numbers, dots, underscores, colons, and hyphens. The category must be necessary, analytics, or marketing. The src must be a valid http, https, or relative script URL.

Optional fields: label, description, async, defer.', + 'ACP_CONSENTMANAGER_INTEGRATIONS_EXPLAIN' => 'Use this to add third-party analytics, marketing, or other scripts directly from the ACP. These integrations appear in the consent UI and are only loaded after the required consent has been granted.', + 'ACP_CONSENTMANAGER_INTEGRATIONS_FORMAT' => 'Provide a JSON array of integrations. For example:', + 'ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED' => 'Required properties', + 'ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_ID' => 'may only use letters, numbers, dots, underscores, colons, and hyphens.', + 'ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_CAT' => 'must be one of these values:', + 'ACP_CONSENTMANAGER_INTEGRATIONS_REQUIRED_SRC' => 'must be a valid http, https, or relative script URL.', + 'ACP_CONSENTMANAGER_INTEGRATIONS_OPTIONAL' => 'Optional properties', 'ACP_CONSENTMANAGER_INTEGRATIONS_EXAMPLE_LABEL' => 'Example Analytics', 'ACP_CONSENTMANAGER_INTEGRATIONS_EXAMPLE_DESC' => 'Loads a simple analytics library after consent.', 'ACP_CONSENTMANAGER_REGISTRATIONS' => 'Registered integrations', @@ -45,7 +51,6 @@ 'CONSENTMANAGER_CATEGORY_ANALYTICS' => 'Analytics', 'CONSENTMANAGER_CATEGORY_MARKETING' => 'Marketing', 'CONSENTMANAGER_CATEGORY_MEDIA' => 'Media', - 'EXAMPLE' => 'Example', // Consent logs 'ACP_CONSENTMANAGER_EXPORT_EXPLAIN' => 'Download a CSV file of stored consent log records or permanently delete matching records from the database. All fields are optional; leave them blank to work with the full log.', From 419f7869973a637b64b16d9ebce035500a985b3c Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sat, 16 May 2026 10:23:36 -0700 Subject: [PATCH 3/3] Bump to v 0.4.0 --- CHANGELOG.md | 14 ++++++++++++++ README.md | 2 +- composer.json | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 506af20..4601a60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ All notable changes to this project will be documented in this file. +## 0.4.0-dev - 2026-05-16 + +### Added + +- Added a registry of active services registered with Consent Manager to the ACP. +- Added live JSON validation to the manual (ACP-managed) integrations field. + +### Changed + +- Improved the ACP description of the manual (ACP-managed) integrations. +- Improved formatting of buttons in the Consent Manager modal on mobile devices. +- Improved CSRF protections when deleting consent logs. +- Switched the Privacy settings link to a new lock icon. + ## 0.3.0-dev - 2026-05-12 ### Added diff --git a/README.md b/README.md index f58dc34..606a76d 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Consent Manager is a GDPR-ready privacy/cookie consent management solution built for phpBB forums. -It adds a consent banner, settings modal, and category-based controls, allowing visitors to accept all, reject all, or choose specific tracking types. A footer link lets users revisit and update their preferences at any time. +It adds a consent banner, settings modal, and category-based controls, allowing visitors to accept all, reject all, or choose specific cookie types. A footer link lets users revisit and update their preferences at any time. The extension also provides an easy integration point for other phpBB extensions, enabling them to make their non-essential scripts compliant. diff --git a/composer.json b/composer.json index 6209221..c64015a 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "type": "phpbb-extension", "description": "Centralized GDPR-compliant consent and deferred script loading for phpBB forums.", "homepage": "https://www.phpbb.com/", - "version": "0.3.0-dev", + "version": "0.4.0-dev", "keywords": ["phpbb", "extension", "gdpr", "consent", "cookies"], "license": "GPL-2.0-only", "authors": [