|
6 | 6 | */ |
7 | 7 |
|
8 | 8 | /** @var $block MagePal\GoogleTagManager\Block\DataLayer **/ |
| 9 | +/** @var $secureRenderer \Magento\Framework\View\Helper\SecureHtmlRenderer */ |
9 | 10 | $dataLayerName = $block->getDataLayerName(); |
10 | 11 | $accountId = $block->getAccountId(); |
11 | | -$containerCode = $block->getEmbeddedCode(); |
| 12 | +$containerCode = $block->getEmbeddedCode() ? "+'{$block->getEmbeddedCode()}'" : ''; |
12 | 13 | ?> |
13 | 14 |
|
14 | 15 | <!-- 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) ?> |
17 | 21 |
|
18 | 22 | <?php if (!$block->isGdprEnabled() && $block->addJsInHead() && !$block->isAdvancedSettingsEnabled()): ?> |
19 | | - <?= /* @noEscape */ $block->getDataLayerJs() ?> |
| 23 | + <?php $scriptString = <<<script |
20 | 24 | (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': |
21 | 25 | 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) ?> |
25 | 33 | <?php endif; ?> |
26 | | -</script> |
27 | 34 |
|
28 | 35 | <?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) ?> |
33 | 38 | <?php endif; ?> |
34 | 39 |
|
35 | 40 | <?php if (($block->isGdprEnabled() || !$block->addJsInHead()) && !$block->isAdvancedSettingsEnabled()) : ?> |
|
0 commit comments