我希望能够使用Manage Categories -> [Some Category] -> Custom Design
下的“自定义布局更新”框设置变量,以指定可在类别页面模板list.phtml
中使用的数据片段。
到目前为止,我已尝试使用此功能:
<reference name="product_list">
<action method="setData">
<name>custom_banner_type</name>
<value>single</value>
</action>
<action method="setData">
<name>custom_banner_position</name>
<value>3</value>
</action>
</reference>
但是当我在echo $this->getData("custom_banner_type");
内尝试list.phtml
时,数据无法使用。
我也尝试在模板控制器_beforeToHtml()
内的List.php
函数中获取数据,但这也没有做任何事情!
那么有什么方法可以使用自定义布局更新XML传递数据/变量?它必须通过那里完成,因为每个类别的数据都会改变,所以我不能使用硬编码的布局文件。
答案 0 :(得分:8)
你在做哪个布局句柄?应使用catalog_category_view
和catalog_category_layered
。
也许您可以使用默认的Magento方式来设置XML数据。 Magento使用set函数在xml中设置数据,我发现它比XML中的setData更具可读性。
示例:
<catalog_category_view>
<reference name="product_list">
<action method="setCustomBannerType"><value>single</value></action>
<action method="setCustomBannerPosition"><value>3</value></action>
</reference>
</catalog_category_view>
要检索您可以使用$this->getData('custom_banner_type');
的数据,还要使用$this->getCustomBannerType();
相同的数据。如果您想了解更多相关信息,我建议您查看魔术方法(http://php.net/manual/en/language.oop5.magic.php)
我不知道缓存是否已启用,如果是,请刷新缓存并且它应该可以正常工作。