|
4 | 4 | * See COPYING.txt for license details. |
5 | 5 | */ |
6 | 6 |
|
7 | | -/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */ |
| 7 | +use Magento\Framework\Escaper; |
| 8 | +use Magento\Framework\View\Helper\SecureHtmlRenderer; |
| 9 | + |
| 10 | +/** |
| 11 | + * @var SecureHtmlRenderer $secureRenderer |
| 12 | + * @var Escaper $escaper |
| 13 | + */ |
8 | 14 | ?> |
9 | | -<!-- <?php if ($block->getTitle()): ?> |
10 | | - <h3><?= $block->escapeHtml($block->getTitle()) ?></h3> |
11 | | -<?php endif ?> --> |
12 | 15 | <?php if (!empty($tabs)): ?> |
13 | | -<div id="<?= $block->escapeHtmlAttr($block->getId()) ?>"> |
| 16 | + <?php $blockId = $block->getId() ?> |
| 17 | +<div id="<?= $escaper->escapeHtmlAttr($blockId) ?>" class="hidden"> |
14 | 18 | <ul class="tabs-horiz"> |
15 | 19 | <?php foreach ($tabs as $_tab): ?> |
| 20 | + <?php $tabId = $block->getTabId($_tab) ?> |
16 | 21 | <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' . |
17 | 22 | (preg_match('/\s?ajax\s?/', $_tab->getClass()) ? 'notloaded' : '') ?> |
18 | 23 | <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ? 'link' : '' ?> |
19 | 24 | <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? |
20 | | - '#' . $block->getTabId($_tab) . '_content' : |
| 25 | + '#' . $tabId . '_content' : |
21 | 26 | $block->getTabUrl($_tab) ?> |
22 | 27 | <li> |
23 | | - <a href="<?= $block->escapeUrl($_tabHref) ?>" |
24 | | - id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>" |
25 | | - title="<?= $block->escapeHtmlAttr($block->getTabTitle($_tab)) ?>" |
26 | | - class="<?= $block->escapeHtmlAttr($_tabClass) ?>" |
27 | | - data-tab-type="<?= $block->escapeHtmlAttr($_tabType) ?>"> |
| 28 | + <a href="<?= $escaper->escapeUrl($_tabHref) ?>" |
| 29 | + id="<?= $escaper->escapeHtmlAttr($tabId) ?>" |
| 30 | + title="<?= $escaper->escapeHtmlAttr($block->getTabTitle($_tab)) ?>" |
| 31 | + class="<?= $escaper->escapeHtmlAttr($_tabClass) ?>" |
| 32 | + data-tab-type="<?= $escaper->escapeHtmlAttr($_tabType) ?>"> |
28 | 33 | <span> |
29 | 34 | <span class="changed" |
30 | | - title="<?= $block->escapeHtmlAttr(__('The information in this tab has been changed.')) ?>"></span> |
| 35 | + title="<?= $escaper->escapeHtmlAttr(__( |
| 36 | + 'The information in this tab has been changed.' |
| 37 | + )) ?>"></span> |
31 | 38 | <span class="error" |
32 | | - title="<?= $block->escapeHtmlAttr(__( |
| 39 | + title="<?= $escaper->escapeHtmlAttr(__( |
33 | 40 | 'This tab contains invalid data. Please resolve this before saving.' |
34 | 41 | )) ?>"></span> |
35 | 42 | <span class="loader" |
36 | | - title="<?= $block->escapeHtmlAttr(__('Loading...')) ?>"></span> |
37 | | - <?= $block->escapeHtml($block->getTabLabel($_tab)) ?> |
| 43 | + title="<?= $escaper->escapeHtmlAttr(__('Loading...')) ?>"></span> |
| 44 | + <?= $escaper->escapeHtml($block->getTabLabel($_tab)) ?> |
38 | 45 | </span> |
39 | 46 | </a> |
40 | | - <div id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>_content"> |
| 47 | + <div id="<?= $escaper->escapeHtmlAttr($tabId) ?>_content"> |
41 | 48 | <?= /* @noEscape */ $block->getTabContent($_tab) ?> |
42 | 49 | </div> |
43 | 50 | <?= /* @noEscape */ $secureRenderer->renderStyleAsTag( |
44 | 51 | 'display:none', |
45 | | - '#' . $block->escapeJs($block->getTabId($_tab)) . '_content' |
| 52 | + '#' . $escaper->escapeJs($tabId) . '_content' |
46 | 53 | ); ?> |
47 | 54 | </li> |
48 | 55 | <?php endforeach; ?> |
|
51 | 58 | <?php $scriptString = <<<script |
52 | 59 | require(["jquery","mage/backend/tabs"], function($){ |
53 | 60 | $(function() { |
54 | | - $('#{$block->getId()}').tabs({ |
55 | | - active: '{$block->getActiveTabId()}', |
56 | | - destination: '#{$block->getDestElementId()}', |
| 61 | + $('#{$escaper->escapeJs($blockId)}').tabs({ |
| 62 | + active: '{$escaper->escapeJs($block->getActiveTabId())}', |
| 63 | + destination: '#{$escaper->escapeJs($block->getDestElementId())}', |
57 | 64 | shadowTabs: {$block->getAllShadowTabs()} |
58 | 65 | }); |
| 66 | + $('#{$escaper->escapeJs($blockId)}').removeClass('hidden'); |
59 | 67 | }); |
60 | 68 | }); |
61 | 69 | script; |
|
0 commit comments