From 9cb7a9e16a85de90e8404aff469008efd21f7816 Mon Sep 17 00:00:00 2001 From: Matthias Pigulla Date: Tue, 14 Nov 2023 17:45:19 +0100 Subject: [PATCH] Fix "setDoNotTrack" handling --- DependencyInjection/Configuration.php | 1 + DependencyInjection/WebfactoryPiwikExtension.php | 2 +- Resources/config/services.xml | 1 + Twig/Extension.php | 7 +++++-- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index b79260f..ca7879a 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -24,6 +24,7 @@ public function getConfigTreeBuilder() ->scalarNode('tracker_path')->defaultValue('/js/')->end() ->scalarNode('site_id')->isRequired()->end() ->scalarNode('disable_cookies')->defaultValue(true)->end() + ->scalarNode('enable_do_not_track')->defaultValue(true)->info('Include ["setDoNotTrack", true] in default _paqs')->end() ->end(); return $treeBuilder; diff --git a/DependencyInjection/WebfactoryPiwikExtension.php b/DependencyInjection/WebfactoryPiwikExtension.php index 5836bb2..347ab1e 100644 --- a/DependencyInjection/WebfactoryPiwikExtension.php +++ b/DependencyInjection/WebfactoryPiwikExtension.php @@ -18,7 +18,7 @@ public function load(array $configs, ContainerBuilder $container) $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); - foreach (['disabled', 'piwik_host', 'tracker_path', 'site_id', 'disable_cookies'] as $configParameterKey) { + foreach (['disabled', 'piwik_host', 'tracker_path', 'site_id', 'disable_cookies', 'enable_do_not_track'] as $configParameterKey) { $container->setParameter("webfactory_piwik.$configParameterKey", $config[$configParameterKey]); } } diff --git a/Resources/config/services.xml b/Resources/config/services.xml index 61630e4..743b0c1 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -10,6 +10,7 @@ %webfactory_piwik.piwik_host% %webfactory_piwik.tracker_path% %webfactory_piwik.disable_cookies% + %webfactory_piwik.enable_do_not_track% diff --git a/Twig/Extension.php b/Twig/Extension.php index 3150833..dafd93e 100644 --- a/Twig/Extension.php +++ b/Twig/Extension.php @@ -37,13 +37,17 @@ class Extension extends AbstractExtension */ private $paqs = []; - public function __construct(bool $disabled, string $siteId, string $piwikHost, string $trackerPath, bool $disableCookies = true) + public function __construct(bool $disabled, string $siteId, string $piwikHost, string $trackerPath, bool $disableCookies = true, bool $enableDoNotTrack = true) { $this->disabled = $disabled; $this->siteId = $siteId; $this->piwikHost = rtrim($piwikHost, '/'); $this->trackerPath = ltrim($trackerPath, '/'); $this->disableCookies = $disableCookies; + + if ($enableDoNotTrack) { + $this->paqs[] = ['setDoNotTrack', true]; + } } public function getFunctions(): array @@ -81,7 +85,6 @@ public function piwikCode(): string