使用magento中的ifconfig删除顶部导航

das*_*hbh 1 magento

我正在开发一个模块,我们的配置为"advanemenu/general/enabled"

通过使用此配置,我可以有条件地向我的magento前端添加项目.

防爆.

<reference name="head">
     <action method="addItem" ifconfig="advancemenu/general/enabled"><type>skin_css</type><name>css/advancemenu.css</name></action>
</reference>
Run Code Online (Sandbox Code Playgroud)

现在我同样想要在启用配置值的情况下删除顶部导航.

我试过以下但没有任何结果......

<remove ifconfig="advancemenu/general/enabled" name="catalog.topnav" />
Run Code Online (Sandbox Code Playgroud)

如果ifconfig工作,<action>那么有没有办法使用此方法删除顶部导航.

如果有人知道怎么做,请帮助我.(Thnx提前)

dav*_*elo 5

IfConfig仅适用于action方法.当您在xml布局中调用action时,这将解析块实例中对funcion的调用.

你可以在这里看到:

文件:app/code/core/Mage/core/Model/layout.php第289行

protected function _generateAction($node, $parent)
    {
        if (isset($node['ifconfig']) && ($configPath = (string)$node['ifconfig'])) {
            if (!Mage::getStoreConfigFlag($configPath)) {
                return $this;
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是一个可行的解决方案是仅在真值的情况下添加模板.例如

<reference name="head">
     <action method="setTemplate" ifconfig="advancemenu/general/enabled">
       <template>route/to/template</template>
     </action>
</reference>
Run Code Online (Sandbox Code Playgroud)

然后,只有当您启用了模块时,才会有模板与此块关联,在另一种情况下,您的块没有模板,然后不加载.