Skip to content

Commit e775afd

Browse files
authored
MAGE-851: use securedRenderer for inline scripts (#1541)
1 parent c7f9510 commit e775afd

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed
Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
<?php
22

33
/** @var \Algolia\AlgoliaSearch\Block\Configuration $block */
4+
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
45

56
$configuration = $block->getConfiguration();
67

78
?>
8-
<script>
9-
<?php
10-
if ($configuration['instant']['enabled'] === true && $configuration['isSearchPage'] === true) :
11-
$css = '<style type="text/css">' . $configuration['instant']['selector'] . ' {display:none}</style>';
12-
?>
13-
// Hide the instant-search selector ASAP to remove flickering. Will be re-displayed later with JS.
14-
document.write('<?php /* @noEscape */ echo $css; ?>');
15-
<?php
16-
endif;
17-
?>
189

19-
window.algoliaConfig = <?php /* @noEscape */ echo json_encode($configuration); ?>;
20-
</script>
10+
<?php
11+
if ($configuration['instant']['enabled'] === true && $configuration['isSearchPage'] === true) {
12+
$css = /* @noEscape */ $secureRenderer->renderTag('style', [], $configuration['instant']['selector'] . ' {display:none}', false);
13+
/* @noEscape */ echo $secureRenderer->renderTag('script', [], 'document.write(\'' . $css . '\');' , false);
14+
}
15+
?>
16+
17+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], "window.algoliaConfig = " . json_encode($configuration) . ';' , false); ?>
18+

view/frontend/templates/layer/view.phtml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
<?php
2+
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
3+
?>
4+
15
<?php if ($block->canShowBlock()) : ?>
26
<div class="block filter algolia-filter-list" id="layered-filter-block" data-mage-init='{"collapsible":{"openedState": "active", "collapsible": true, "active": false, "collateral": { "openedState": "filter-active", "element": "body" } }}'>
37
<?php $filtered = count($block->getLayer()->getState()->getFilters()) ?>
@@ -30,14 +34,16 @@
3034
<?php if ($wrapOptions) : ?>
3135
</div>
3236
<?php else : ?>
33-
<script>
34-
require([
35-
'jquery'
36-
], function ($) {
37-
$('#layered-filter-block').addClass('filter-no-options');
38-
});
39-
</script>
37+
<?php $scriptString = <<<script
38+
require([
39+
'jquery'
40+
], function ($) {
41+
$('#layered-filter-block').addClass('filter-no-options');
42+
});
43+
script;
44+
?>
45+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false); ?>
4046
<?php endif; ?>
4147
</div>
4248
</div>
43-
<?php endif; ?>
49+
<?php endif; ?>

0 commit comments

Comments
 (0)