0

我正在尝试覆盖 Magento 中特定类别的默认模板和块类。

以下代码仅更改模板,

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

我还需要将默认块类从 Mage_Catalog_Block_Product_List 更改为 Mage_Catalog_Block_Product_List_Foobar。

这是否可以在类别的“自定义布局更新”字段中使用 XML?

我尝试了以下方法,它也不起作用,

<reference name="product_list">
  <block type="catalog/product_list_foobar" name="product_list" template="catalog/product/list-foobar.phtml" />
</reference>
4

1 回答 1

1

严格回答:

<CUSTOM_CATEGORY_DISPLAY>
    <reference name="category.products">
        <action method="unsetChild"><child>product_list</child></action>
        <block type="catalog/product_list_foobar" name="product_list" template="catalog/product/list-foobar.phtml" />
    </reference>
</CUSTOM_CATEGORY_DISPLAY>

然后,您可以<update handle="CUSTOM_CATEGORY_DISPLAY" />在您希望应用这些指令的每个类别的自定义布局更新 XML 字段中使用。

但是,分层导航中涉及的模型和块之间存在一些奇怪/不幸的耦合,因此很可能存在一些错误行为。

于 2013-02-20T18:39:16.617 回答