Php magento按子类别覆盖产品列表的排序顺序
我正在用1.4.1建立一个新的商店 我正在尝试按产品所属的子类别对列表中的产品进行排序。在list.phtml的顶部是Php magento按子类别覆盖产品列表的排序顺序,php,magento,Php,Magento,我正在用1.4.1建立一个新的商店 我正在尝试按产品所属的子类别对列表中的产品进行排序。在list.phtml的顶部是 $_productCollection=$this->getLoadedProductCollection(); 我尝试通过添加行来添加排序过滤器 $_productCollection->setOrder('category_ids', 'asc')->setOrder('name', 'asc'); 我还尝试了addAttributeToSort而不是
$_productCollection=$this->getLoadedProductCollection();
我尝试通过添加行来添加排序过滤器
$_productCollection->setOrder('category_ids', 'asc')->setOrder('name', 'asc');
我还尝试了addAttributeToSort而不是setOrder。这似乎没有任何效果。我猜$\u productCollection不是我可以用这种方式排序的模型。我一直在四处挖掘,试图找到应用排序方法的正确位置,但没有成功
有人能告诉我在哪里做这件事吗 对
getLoadedProductCollection
的调用来自哪里?可以肯定的是(根据集合的名称),在您取回集合时集合已经加载(例如,SQL已经执行)。这意味着您限制/排序的机会已经结束
该方法的另一个版本可能尚未加载。如果可能的话,用那个
谢谢,
Joe你说得对Joseph,SQL进入/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php,按“公共函数addAttributeToSort”搜索 但是做这种事情的代码我拿不到 只记得将de new Collection.php保存在路径/app/code/local/Mage/Catalog/Model/Resource/Eav/Mysql4/Product上,以避免更新时出现问题 如果您意识到de代码,请发布
我从这里开始尝试。
$this->getLoadedProductCollection()代码>
只返回块从后端返回的产品集合
如果要为产品集合添加一些自定义代码,请编辑文件夹层次结构下的文件
app/code/core/Mage/Block/catalog/product/list.php
您将找到相同的命名函数,即getLoadedProductCollection()
跟踪其工作情况,最后您将找到解决方案。执行SQL后,是否应该有一种方法对集合进行排序?我认为如果我使用的不是getLoadedProductCollection,那么我必须重写产品列表的工作方式。在集合已经加载之后进行排序的概念是有问题的。考虑安装5k产品。前30种产品的集合有AA到AK。如果你把它们按相反的顺序排序,大多数人心里想的是ZZ-ZA,但实际上你会把AK变成AA。如果要手动排序,请将它们复制到数组并使用ksort。