Magento 2:xml中的ifconfig用于模块启用/禁用

时间:2017-01-18 07:10:57

标签: xml magento magento2 ifconfig

我已经为启用/禁用模块创建了配置。如果我从配置设置中选择“是”,则我的模块在前面可见,否则不可见。 为此,我在checkout_cart_index.xml中添加了ifConfig条件。 xml代码如下所示。

<referenceContainer name="cart.summary">
         <block class="Mageniks\Test\Block\Test" before="-"   ifconfig="mageniks/general/active" name="displaytest" template="Mageniks_Test::cart.phtml">
        </block>
   </referenceContainer>
   <referenceBlock name="checkout.cart.totals"> 
        <arguments>
            <argument name="jsLayout" xsi:type="array">
                <item name="components" xsi:type="array">
                    <item name="block-totals" xsi:type="array">
                        <item name="children" xsi:type="array">

                            <item name="fee" xsi:type="array" remove="true">
                                <item name="component"  xsi:type="string">Mageniks_Test/js/view/checkout/cart/totals/fee</item>
                                <item name="sortOrder" xsi:type="string">20</item>
                                <item name="config" xsi:type="array">
                                     <item name="template" xsi:type="string">Mageniks_Test/checkout/cart/totals/fee</item>
                                    <item name="title" xsi:type="string" translate="true">Fee</item>
                                </item>
                            </item>

                        </item>
                    </item>
                </item>
            </argument>
        </arguments>

    </referenceBlock>

Ifconfig仅在使用块时才起作用。 Ifconfig不在参数中工作。

我想在参数或项目标签中添加条件,以启用和禁用模块,例如块标记。

我该怎么做?请帮我。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

使用此插件,您可以将模块启用禁用条件放在项目中

<type name="Magento\Checkout\Block\Cart\LayoutProcessor">
<plugin name="CartStorecreditDisable" 
type="Vendor\Module\Plugin\CartStorecreditDisable"/>
</type>

在插件中,

 use Magento\Checkout\Block\Cart\LayoutProcessor;

 public function afterProcess(
    LayoutProcessor $processor,
    array $jsLayout
 ){
    
    $enable = $this->helper->getConfig('storecredit/general/enable');

    if($enable == 0){    
        $jsLayout['components']['block-totals']['children']['storecredit']['config']['componentDisabled'] = true;
    }

    return $jsLayout;
 }