Magento - 是否可以为ifconfig指定多个值?

时间:2014-01-02 11:35:27

标签: magento magento-layout-xml

我想在布局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"

欢迎任何建议。

4 个答案:

答案 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,则不会采用基本文件夹中定义的布局,也不会添加模板。这就是显示空块的原因。