11<?php
2-
32declare (strict_types=1 );
43
54use CustomGento \Cookiebot \ViewModel \Script ;
@@ -12,19 +11,17 @@ use Magento\Framework\View\Helper\SecureHtmlRenderer;
1211/** @var SecureHtmlRenderer $secureRenderer */
1312/** @var Script $viewModel */
1413$ viewModel = $ block ->getData ('view_model ' );
15- $ consentMessage = __ ( ' Please <a href="javascript:Cookiebot.renew()" class="cookiebot-iframe-consent-link">accept %1 cookies</a> to view this %2 content. ' );
16-
14+ $ consentMessage
15+ = __ ( ' Please <a href="javascript:Cookiebot.renew()" class="cookiebot-iframe-consent-link">accept %1 cookies</a> to view this %2 content. ' );
1716$ scriptString = '
1817 document.addEventListener("DOMContentLoaded", function () {
1918 ((document, selector, consentType) => {
2019 const createTextNode = text => document.createTextNode(text);
2120 const createElement = element => document.createElement(element);
22-
2321 document.querySelectorAll(selector).forEach(iframe => {
2422 const divElement = createElement("div");
2523 const paragraphElement = createElement("p");
2624 const iframeSrc = iframe.dataset.cookieblockSrc;
27-
2825 // Detect service provider type
2926 const serviceProvider =
3027 /google\.com\/maps\/embed/.test(iframeSrc) ? "Google Maps" :
@@ -61,9 +58,29 @@ $scriptString = '
6158 iframe.parentNode.insertBefore(divElement, iframe);
6259 });
6360 })(document, "iframe[data-cookieblock-src]", "marketing");
64- })
65- ' ;
66-
61+
62+ function fixIframeStyle () {
63+ ((document, selector) => {
64+ document.querySelectorAll(selector).forEach(iframe => {
65+ const pageBuilderContainer = iframe.closest(".pagebuilder-video-container");
66+ const pageBuilderColumn = iframe.closest(".pagebuilder-column");
67+ if (!pageBuilderContainer) {
68+ return;
69+ }
70+ if (!Cookiebot?.consent?.marketing) {
71+ pageBuilderContainer.style.paddingTop = "0";
72+ if (pageBuilderColumn) {
73+ pageBuilderColumn.style.backgroundColor = "#fff";
74+ }
75+ } else {
76+ pageBuilderContainer.style.paddingTop = "56.25%";
77+ }
78+ });
79+ })(document, "iframe");
80+ }
81+
82+ addEventListener("CookiebotOnConsentReady", fixIframeStyle);
83+ }) ' ;
6784// checking on if SecureHtmlRenderer exists first, because this module is still compatible with Magento 2.3.x which doesn't include this class
6885if (class_exists (SecureHtmlRenderer::class)) {
6986 echo $ secureRenderer ->renderTag ('script ' , ['data-cookieconsent ' => 'ignore ' ], $ scriptString , false );
0 commit comments