2011-04-22 39 views
2

我有这样的内容参考的catalog_category_default句柄。Magento:如何使用XML布局更新只更新块参数

<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"> 

我想有一个更好的解决方案比删除内容引用,并创建一个新的。
如何更新该参数?

回答

5

在布局更新只补充一点:

<reference name="product_list"> 
    <action method="setTemplate"><name>catalog/product/other-list.phtml</name></action> 
</reference> 

这是可能的,因为Magento的给出了所有它的块(与模型和对象)魔法制定者。

+0

我不明白。我应该直接在类别管理的布局更新中调用' pasine 2011-04-23 00:34:06

+1

对不起。我超越了我自己,并假设你明白''s。 – clockworkgeek 2011-04-23 00:50:32

+0

哇!谢谢!我甚至错过了可以称为参考的东西,甚至在单个模块上,我认为它只能用于“内容”,“左”或“右”等参考。现在一切都更加清晰!谢谢! – pasine 2011-04-23 09:25:23