[Some Category] ​​-> Custom Design 下的“Custom Layout Updates”框来设置变量,以-6ren">
gpt4 book ai didi

php - Magento:在每个类别的基础上通过 "Custom Layout Updates"XML 设置变量?

转载 作者:可可西里 更新时间:2023-11-01 13:47:10 26 4
gpt4 key购买 nike

我希望能够使用出现在 Manage Categories -> [Some Category] ​​-> Custom Design 下的“Custom Layout Updates”框来设置变量,以指定数据片段可用于分类页面模板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>

但是当我在 list.phtml 中尝试 echo $this->getData("custom_banner_type"); 时,数据不可用。

我也试过在模板的 Controller List.php_beforeToHtml() 函数中获取数据,但这也没有任何作用!

那么有什么方法可以使用自定义布局更新 XML 传递数据/变量吗?它必须通过那里完成,因为每个类别的数据都会发生变化,所以我不能使用硬编码布局文件。

最佳答案

您在哪个布局句柄中执行此操作?应使用 catalog_category_viewcatalog_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)

我不知道是否启用了缓存,如果启用则刷新缓存并且它应该可以工作。

关于php - Magento:在每个类别的基础上通过 "Custom Layout Updates"XML 设置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26050724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com