Skip to content

Commit a59b52d

Browse files
authored
Merge pull request #32 from baldwin-agency/csp-compatibility
Adding CSP support to the inline google consent mode script, while ke…
2 parents 8fee6e1 + fc7dfea commit a59b52d

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

view/frontend/templates/script.phtml

+23-9
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
<?php /** @var Magento\Framework\View\Element\Template $block */ ?>
2-
<?php /** @var CustomGento\Cookiebot\ViewModel\Script $viewModel */ ?>
3-
<?php $viewModel = $block->getData('view_model') ?>
4-
<?= /* @noEscape */ $viewModel->getScript() ?>
1+
<?php
2+
use CustomGento\Cookiebot\ViewModel\Script as CookiebotScriptViewModel;
3+
use Magento\Framework\View\Element\Template;
4+
use Magento\Framework\View\Helper\SecureHtmlRenderer;
5+
6+
/** @var CookiebotScriptViewModel $viewModel */
7+
/** @var SecureHtmlRenderer $secureRenderer */
8+
/** @var Template $block */
59

10+
$viewModel = $block->getData('view_model')
11+
?>
12+
<?= /* @noEscape */ $viewModel->getScript() ?>
613
<?php
7-
if ($viewModel->isGoogleConsentModeEnabled()):
8-
?>
9-
<script data-cookieconsent="ignore">
14+
15+
if ($viewModel->isGoogleConsentModeEnabled()) {
16+
$scriptString = '
1017
window.dataLayer = window.dataLayer || [];
1118
1219
function gtag() {
@@ -25,5 +32,12 @@ if ($viewModel->isGoogleConsentModeEnabled()):
2532
});
2633
gtag("set", "ads_data_redaction", true);
2734
gtag("set", "url_passthrough", true);
28-
</script>
29-
<?php endif; ?>
35+
';
36+
37+
// checking on if SecureHtmlRenderer exists first, because this module is still compatible with Magento 2.3.x which doesn't include this class
38+
if (class_exists(SecureHtmlRenderer::class)) {
39+
echo $secureRenderer->renderTag('script', ['data-cookieconsent' => 'ignore'], $scriptString, false);
40+
} else {
41+
echo '<script data-cookieconsent="ignore">' . $scriptString . '<script>';
42+
}
43+
}

0 commit comments

Comments
 (0)