magento按子类别覆盖产品列表的排序顺序

时间:2010-08-10 23:32:17

标签: php magento

我正在使用1.4.1

建立一个新商店

我正在尝试按照它们所属的子类别对列表中的产品进行排序。 list.phtml的顶部是

$_productCollection=$this->getLoadedProductCollection();

我尝试通过添加行

为其添加排序过滤器
$_productCollection->setOrder('category_ids', 'asc')->setOrder('name', 'asc');

我也尝试过addAttributeToSort而不是setOrder。这似乎没有任何影响。我猜测$ _productCollection不是我可以用这种方式排序的模型。我一直在努力找到正确的地方来应用排序方法而没有任何成功。

有人可以告诉我适当的地方吗?

3 个答案:

答案 0 :(得分:0)

来自getLoadedProductCollection的电话来自哪里?这是一个安全的赌注(通过集合的名称),在您收集集合时已经加载了集合(例如,SQL已经被执行)。这意味着您的限制/排序机会已经结束。

可能还有另一个尚未加载的方法版本。如果可能,请使用那个。

谢谢, 乔

答案 1 :(得分:0)

你是约瑟夫,SQL是进入/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php,搜索“public function addAttributeToSort”

但这样做的代码是我无法实现的。

只记得在路径/ app / code / local / Mage / Catalog / Model / Resource / Eav / Mysql4 / Product上保存de new Collection.php以避免更新问题。

如果您发现了de code,请发帖。

我正在尝试。

答案 2 :(得分:0)

$this->getLoadedProductCollection();

只返回块从后端返回的产品集合。

如果要为产品集合添加一些自定义代码,请编辑文件夹层次结构下的文件

app/code/core/Mage/Block/catalog/product/list.php

您将找到相同的命名函数,即getLoadedProductCollection()跟踪其工作情况,最后您将找到解决方案。