Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

117 строки
5.7 KiB

  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /** @var $block \Magento\Backend\Block\Widget\Tabs */
  7. /** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
  8. ?>
  9. <?php if (!empty($tabs)): ?>
  10. <div class="admin__page-nav" data-role="container" id="<?= $block->escapeHtmlAttr($block->getId()) ?>">
  11. <?php if ($block->getTitle()): ?>
  12. <div class="admin__page-nav-title" data-role="title" <?= /* @noEscape */ $block->getUiId('title') ?>>
  13. <strong><?= $block->escapeHtml($block->getTitle()) ?></strong>
  14. <span data-role="title-messages" class="admin__page-nav-title-messages"></span>
  15. </div>
  16. <?php endif ?>
  17. <ul <?= /* @noEscape */ $block->getUiId('tab', $block->getId()) ?>
  18. class="<?= /* @noEscape */ $block->getIsHoriz() ? 'tabs-horiz' : 'tabs admin__page-nav-items' ?>">
  19. <?php foreach ($tabs as $_tab): ?>
  20. <?php
  21. if (!$block->canShowTab($_tab)):
  22. continue;
  23. endif;
  24. ?>
  25. <?php $_tabClass = 'tab-item-link ' . $block->getTabClass($_tab) . ' ' .
  26. (preg_match('/\s?ajax\s?/', $_tab->getClass() ?? '') ? 'notloaded' : '') ?>
  27. <?php $_tabType = (!preg_match('/\s?ajax\s?/', $_tabClass) && $block->getTabUrl($_tab) != '#') ?
  28. 'link' : '' ?>
  29. <?php $_tabHref = $block->getTabUrl($_tab) == '#' ? '#' . $block->getTabId($_tab) . '_content' :
  30. $block->getTabUrl($_tab) ?>
  31. <li class="admin__page-nav-item no-display" id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>"
  32. <?= /* @noEscape */ $block->getUiId('tab', 'item', $_tab->getId()) ?>>
  33. <a href="<?= $block->escapeUrl($_tabHref) ?>"
  34. id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>"
  35. name="<?= $block->escapeHtmlAttr($block->getTabId($_tab, false)) ?>"
  36. title="<?= $block->escapeHtmlAttr($block->getTabTitle($_tab)) ?>"
  37. class="admin__page-nav-link <?= $block->escapeHtmlAttr($_tabClass) ?>"
  38. data-tab-type="<?= $block->escapeHtmlAttr($_tabType) ?>"
  39. <?= /* @noEscape */ $block->getUiId('tab', 'link', $_tab->getId()) ?>>
  40. <span><?= $block->escapeHtml($block->getTabLabel($_tab)) ?></span>
  41. <span class="admin__page-nav-item-messages" data-role="item-messages">
  42. <span class="admin__page-nav-item-message _changed">
  43. <span class="admin__page-nav-item-message-icon"></span>
  44. <span class="admin__page-nav-item-message-tooltip">
  45. <?= $block->escapeHtml(__(
  46. 'Changes have been made to this section that have not been saved.'
  47. )) ?>
  48. </span>
  49. </span>
  50. <span class="admin__page-nav-item-message _error">
  51. <span class="admin__page-nav-item-message-icon"></span>
  52. <span class="admin__page-nav-item-message-tooltip">
  53. <?= $block->escapeHtml(__(
  54. 'This tab contains invalid data. Please resolve this before saving.'
  55. )) ?>
  56. </span>
  57. </span>
  58. <span class="admin__page-nav-item-message-loader">
  59. <span class="spinner">
  60. <span></span><span></span><span></span><span></span>
  61. <span></span><span></span><span></span><span></span>
  62. </span>
  63. </span>
  64. </span>
  65. </a>
  66. <div id="<?= $block->escapeHtmlAttr($block->getTabId($_tab)) ?>_content"
  67. <?= /* @noEscape */ $block->getUiId('tab', 'content', $_tab->getId()) ?>>
  68. <?= /* @noEscape */ $block->getTabContent($_tab) ?>
  69. </div>
  70. <?= /* @noEscape */ $secureRenderer->renderStyleAsTag(
  71. 'display:none',
  72. 'div#' . $block->escapeJs($block->getTabId($_tab)) . '_content'
  73. ); ?>
  74. </li>
  75. <?php $scriptString = <<<script
  76. require(['jquery'], function($){
  77. 'use strict';
  78. script;
  79. if ($block->getTabIsHidden($_tab)):
  80. $scriptString .= <<<script
  81. $('li.admin__page-nav-item#{$block->escapeJs($block->getTabId($_tab))}').css('display', 'none');
  82. script;
  83. endif;
  84. $scriptString .= <<<script
  85. $('li.admin__page-nav-item#{$block->escapeJs($block->getTabId($_tab))}').removeClass('no-display');
  86. })
  87. script;
  88. ?>
  89. <?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
  90. <?php endforeach; ?>
  91. </ul>
  92. </div>
  93. <?php $scriptString = <<<script
  94. require(['jquery','mage/backend/tabs'], function($){
  95. $(function() {
  96. script;
  97. $scriptString .= '$(\'#' . /* @noEscape */ $block->getId() . '\').tabs({' . PHP_EOL .
  98. 'active: \'' . /* @noEscape */ $block->getActiveTabId() . '\',' . PHP_EOL .
  99. 'destination: \'#' . /* @noEscape */ $block->getDestElementId() . '\',' . PHP_EOL .
  100. 'shadowTabs: ' . /* @noEscape */ $block->getAllShadowTabs() . ',' . PHP_EOL .
  101. 'tabsBlockPrefix: \'' . /* @noEscape */ $block->getId() . '_\',' . PHP_EOL;
  102. $scriptString .= <<<script
  103. tabIdArgument: 'active_tab'
  104. });
  105. });
  106. });
  107. script;
  108. ?>
  109. <?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
  110. <?php endif; ?>