1

我有点像 Magento 菜鸟。我的主页的页面布局部分中有以下代码:

<reference name="content">
    <block type="catalog/product_list" name="featured" template="catalog/product/list.phtml">
        <action method="setCategoryId"><category_id>8</category_id></action>
    </block>
</reference>

如何更改此块中产品的排序属性?

4

1 回答 1

1

产品列表的顺序通常由工具栏块控制Mage_Catalog_Block_Product_List_Toolbar。但是,如果您希望能够影响从布局中订购产品集合的方式,您可以执行以下操作:

重写该块Mage_Catalog_Block_Product_List并为其添加一个函数:

public function setOrder($attribute, $direction) 
{
    $collection = $this->_getProductCollection();
    $collection->clear()->setOrder($attribute, $direction);
    $this->_productCollection = $collection;
}

在布局更新中添加一个动作节点,例如

<reference name="content">
    <block type="catalog/product_list" name="featured" template="catalog/product/list.phtml">
        <action method="setCategoryId"><category_id>8</category_id></action>
        <action method="setOrder"><attribute>name</attribute><direction>desc</direction></action>
</block>

于 2013-02-08T13:00:59.343 回答