我正在开发一个模块,我们的配置为"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提前)
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)
然后,只有当您启用了模块时,才会有模板与此块关联,在另一种情况下,您的块没有模板,然后不加载.
| 归档时间: |
|
| 查看次数: |
3390 次 |
| 最近记录: |