我有catalog_category_default句柄,它有这样的内容引用。
<reference name="content">
<block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<block type="page/html_pager" name="product_list_toolbar_pager"/>
<!-- The following code shows how to set your own pager increments -->
<action method="setDefaultDirection"><string>desc</string></action>
<action method="setDefaultListPerPage"><limit>10</limit></action>
<action method="setDefaultGridPerPage"><limit>9</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>10</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>20</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>30</limit></action>
<action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
<action method="addPagerLimit"><mode>grid</mode><limit>12</limit></action>
<action method="addPagerLimit"><mode>grid</mode><limit>30</limit></action>
<action method="addPagerLimit"><mode>grid</mode><limit>60</limit></action>
<action method="addPagerLimit" translate="label"><mode>grid</mode><limit>all</limit><label>All</label></action>
</block>
<action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
<action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
<action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
<!--action method="setColumnCount"><count>4</count></action-->
<action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
</block>
</block>
</reference>
我想使用magento后端的布局更新来更新它,以加载不同的模板,所以该行
<block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
应该变成
<block type="catalog/product_list" name="product_list" template="catalog/product/other-list.phtml">
我想有一个比删除内容引用并创建新内容更好的解决方案。
我怎样才能只更新该参数?
最佳答案
在布局更新中只需添加以下内容:
<reference name="product_list">
<action method="setTemplate"><name>catalog/product/other-list.phtml</name></action>
</reference>
这是可能的,因为 Magento 提供了它的所有 block (以及模型和对象)魔法 setter 。
关于layout - Magento:如何使用 XML 布局更新仅更新 block 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759010/