我想在布局xml中为ifconfig指定多个值。
<action method="setTemplate" ifconfig="mymodule/general/is_enabled">
<template>mymodule/test.phtml</template>
</action>
是否可以为一个操作添加以下两个条件?
ifconfig="mymodule/general/is_enabled"
ifconfig="mymodule/frontend/can_show"
欢迎任何建议。
答案 0 :(得分:4)
您可以在action参数中使用辅助方法。像这样的东西
<action method="setTemplate">
<template helper="mymodule/myhelper/canShowIf"/>
</action>
将调用setTemplate以及对
的调用结果Mage::helper('mymodule/myhelper')->canShowIf();
以下模块中的默认助手:
public function canShowIf()
{
if($displayOnly = Mage::getStoreConfig('mymodule/general/is_enabled') == true)
// Do Something
}else if($displayOnly = Mage::getStoreConfig('mymodule/frontend/can_show') == true) {
// Do Something Else
}
return $displayOnly;
}
在 canShowIf 中实施自定义逻辑。
答案 1 :(得分:1)
在Helper(Data.php)中定义一个函数
<reference name="root">
<action method="setTemplate">
<template helper="modulename/getNewLayoutupdate"/>
</action>
</reference>
在辅助函数中,您可以按条件加载模板。
答案 2 :(得分:0)
的ifconfig = “MyModule的/普通/ is_enabled” 的ifconfig = “MyModule的/前端/ can_show”
为什么不创建一个额外的配置节点 ifconfig =“mymodule / frontend / is_enabled_can_show”并根据此值继续。
答案 3 :(得分:0)
考虑以下情况:
<catalog_category_default>
<reference name="product_list">
<action method="setTemplate" >
<template>mymodule/mytemplate.phtml</template>
</action>
</reference>
</catalog_category_default>
ifconfig:如果返回值为false,则需要在基础文件夹中定义布局。
辅助函数:如果返回值为false,则不会采用基本文件夹中定义的布局,也不会添加模板。这就是显示空块的原因。