Skip to content

Commit 7e7f502

Browse files
committed
Issues 87 - Add CSP Support
1 parent 2b3dc94 commit 7e7f502

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,17 @@
3434
}
3535
],
3636
"require": {
37-
"php": "7.0.2|7.0.4|~7.0.6|~7.1.0|~7.1.3|~7.2.0|~7.3.0|~7.4.0|~8.1.0|~8.2.0|~8.3.0",
38-
"magento/module-backend": "100.0.*|100.1.*|100.2.*|101.0.*|102.0.*",
39-
"magento/framework": "100.0.*|100.1.*|101.0.*|102.0.*|103.0.*",
37+
"php": "~7.3.0|~7.4.0|~8.1.0|~8.2.0|~8.3.0",
38+
"magento/module-backend": "102.0.*",
39+
"magento/framework": "103.0.*",
4040
"magepal/magento2-core": ">=1.1.11"
4141
},
4242
"suggest" : {
4343
"magepal/magento2-enhanced-ecommerce": "Get more from Google Tag Manager with Enhanced E-commerce. Learn more at https://www.magepal.com/enhanced-ecommerce-for-google-tag-manager.html",
4444
"magepal/magento2-google-analytics4": "Prepare for the future with Google Analytics 4. Learn more at https://www.magepal.com/google-analytics-4-for-google-tag-manager.html"
4545
},
4646
"type": "magento2-module",
47-
"version": "2.7.8",
47+
"version": "3.0.0",
4848
"autoload": {
4949
"files": [
5050
"registration.php"

view/frontend/templates/js.phtml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,35 @@
66
*/
77

88
/** @var $block MagePal\GoogleTagManager\Block\DataLayer **/
9+
/** @var $secureRenderer \Magento\Framework\View\Helper\SecureHtmlRenderer */
910
$dataLayerName = $block->getDataLayerName();
1011
$accountId = $block->getAccountId();
11-
$containerCode = $block->getEmbeddedCode();
12+
$containerCode = $block->getEmbeddedCode() ? "+'{$block->getEmbeddedCode()}'" : '';
1213
?>
1314

1415
<!-- Google Tag Manager by MagePal -->
15-
<script type="text/javascript">
16-
window.<?= /* @noEscape */ $dataLayerName ?> = window.<?= /* @noEscape */ $dataLayerName ?> || [];
16+
<?php $scriptString = <<<script
17+
window.{$dataLayerName} = window.{$dataLayerName} || [];
18+
script;
19+
?>
20+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
1721

1822
<?php if (!$block->isGdprEnabled() && $block->addJsInHead() && !$block->isAdvancedSettingsEnabled()): ?>
19-
<?= /* @noEscape */ $block->getDataLayerJs() ?>
23+
<?php $scriptString = <<<script
2024
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2125
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
22-
j=d.createElement(s),dl=l!='<?= /* @noEscape */ $dataLayerName ?>'?'&l='+l:'';j.async=true;j.src=
23-
'https://www.googletagmanager.com/gtm.js?id='+i+dl<?= /* @noEscape */ $containerCode ? "+'{$containerCode}'" : '' ?>;f.parentNode.insertBefore(j,f);
24-
})(window,document,'script','<?= /* @noEscape */ $dataLayerName ?>','<?= /* @noEscape */ $accountId ?>');
26+
j=d.createElement(s),dl=l!='{$dataLayerName}'?'&l='+l:'';j.async=true;j.src=
27+
'https://www.googletagmanager.com/gtm.js?id='+i+dl{$containerCode};f.parentNode.insertBefore(j,f);
28+
})(window,document,'script','{$dataLayerName}','{$accountId}');
29+
script;
30+
?>
31+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
32+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $block->getDataLayerJs(), false) ?>
2533
<?php endif; ?>
26-
</script>
2734

2835
<?php if ($block->isAdvancedSettingsEnabled()): ?>
29-
<script type="text/javascript">
30-
<?= /* @noEscape */ $block->getDataLayerJs() ?>
31-
</script>
32-
<?= /* @noEscape */ $block->getAdvancedSettingsJsCode() ?>
36+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $block->getAdvancedSettingsJsCode(), false) ?>
37+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $block->getDataLayerJs(), false) ?>
3338
<?php endif; ?>
3439

3540
<?php if (($block->isGdprEnabled() || !$block->addJsInHead()) && !$block->isAdvancedSettingsEnabled()) : ?>

view/frontend/web/js/datalayer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ define([
110110
window[config.dataLayer] = window[config.dataLayer] || [];
111111

112112
if (_.has(config, 'accountId') && isTrackingAllowed(config)) {
113-
pushData(config.dataLayer, config.data);
114113
initTracking(config.dataLayer, config.accountId, config.containerCode);
114+
pushData(config.dataLayer, config.data);
115115
}
116116

117117
var dataObject = customerData.get('magepal-gtm-jsdatalayer');

0 commit comments

Comments
 (0)