Magento 2 Как установить поставщика конфигурации для всех страниц?
Я создал один модуль. у которых есть вспомогательная функция, которая возвращает модуль, включена или нет? Теперь я хочу проверить, включен ли этот модуль или нет в javascript для всех страниц на интерфейсе, для этого я хочу установить значение функции для поставщика конфигурации, например "window.checkoutconfig.customvalue". Теперь мне нужно, например, "window.catalog.customvalue" или любое глобальное значение javascript, к которому можно получить доступ с каждой страницы, как я могу это сделать?
Еще один примером глобальной конфигурации является "BASE_URL", когда вы пишете BASE_URL в консоли, он дает URL-адрес, я хочу такую же функциональность, просто нужно добавить такую переменную в конфигурацию.
Я знаю, как установить поставщика конфигурации при оформлении заказа с помощью "chckoutconfig", но я хочу установить значение этой функции в общем поставщике конфигурации, чтобы я мог получить это значение в каждом файле js или консоли.
Если у кого-нибудь есть идея по этому поводу?
1 answers
В Magento 2 есть блок "head.additional", в котором вы можете задать свои переменные глобально.
Добавьте приведенный ниже код в app\code\Name\Module\view\frontend\templates\globalvar/globalvariable.phtml
?php $globalConfig = []; $globalConfig['FirstVariable'] = 'My first value'; $globalConfig['SecondVariable'] = 'My second value'; ?>
<script> window.globalConfigData = <?php echo json_encode($globalConfig); ?>; </script>
Затем добавьте приведенный ниже код в XML
app\code\Name\Module\view\frontend\layout\default.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="head.additional">
<block class="Magento\Framework\View\Element\Template" name="globalconfigvariable" template="Name_Module::globalvar/globalvariable.phtml"/>
</referenceBlock>
</body>
</page>