layout - Magento:如何使用 XML 布局更新仅更新 block 参数

标签 layout magento block

我有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/

相关文章:

android - 我如何将 'ScrollView' 应用于 Android 中的其他布局?

javascript - 如何将 SaveandContinueEdit 按钮添加到我的表单?

javascript - Jquery悬停与点击可扩展菜单

ruby - 在 Ruby 中使用 block、proc、lambda 的优点

c - MPI 输出使用一些 MPI_File_write 在 C 中写入 2d block 循环分布

css - Stackin DIV(可能是纯 CSS)固定高度和非固定高度

android - Android 中的评分栏和进度栏

Ruby block 到数组

html - 水平扩展父 div 以适应其 float 的子元素

observer-pattern - Magento AddAttributeToSelect() 关于自定义添加的属性(观察者)