diff --git a/event/listener.php b/event/listener.php index 8110a8a..661c8ae 100644 --- a/event/listener.php +++ b/event/listener.php @@ -64,6 +64,7 @@ public static function getSubscribedEvents() 'core.acp_board_config_edit_add'=> 'add_googleanalytics_configs', 'core.validate_config_variable' => 'validate_googleanalytics_id', 'core.page_footer_after' => 'append_agreement', + 'phpbb.consentmanager.collect_registrations' => 'register_analytics', ]; } @@ -175,4 +176,26 @@ public function append_agreement() $this->template->append_var('AGREEMENT_TEXT', $this->language->lang('PHPBB_ANALYTICS_PRIVACY_POLICY', $this->config['sitename'])); } + + /** + * Register Google Analytics with Consent Manager when available. + * + * @param \phpbb\event\data|array $event The event object or event data + * @return void + */ + public function register_analytics($event) + { + if (!$this->config['googleanalytics_id']) + { + return; + } + + $this->language->add_lang('common', 'phpbb/googleanalytics'); + + $event['consent_manager']->register('phpbb.googleanalytics', [ + 'label' => $this->language->lang('GOOGLEANALYTICS_LABEL'), + 'category' => 'analytics', + 'description' => $this->language->lang('GOOGLEANALYTICS_DESCRIPTION'), + ]); + } } diff --git a/language/en/common.php b/language/en/common.php new file mode 100644 index 0000000..4c8d8c9 --- /dev/null +++ b/language/en/common.php @@ -0,0 +1,27 @@ + +* @license GNU General Public License, version 2 (GPL-2.0) +* +*/ + +/** +* DO NOT CHANGE +*/ +if (!defined('IN_PHPBB')) +{ + exit; +} + +if (empty($lang) || !is_array($lang)) +{ + $lang = array(); +} + +$lang = array_merge($lang, array( + 'GOOGLEANALYTICS_LABEL' => 'Google Analytics', + 'GOOGLEANALYTICS_DESCRIPTION' => 'Tracks the pages you visit, the time spent on each page, and general usage patterns.' +)); diff --git a/styles/all/template/event/overall_header_stylesheets_after.html b/styles/all/template/event/overall_header_stylesheets_after.html index 95c63c2..4340c83 100644 --- a/styles/all/template/event/overall_header_stylesheets_after.html +++ b/styles/all/template/event/overall_header_stylesheets_after.html @@ -1,12 +1,44 @@ {% if GOOGLEANALYTICS_ID %} + {% if S_CONSENTMANAGER_ANALYTICS_ENABLED -%} + + {% endif -%}