5

By default, I have sorting set to by Name, and when particular categories are selected, it's usually by Price. 但是,我不确定在按类别以外的选项购物时如何分配默认排序设置。我的分层导航中有一个名为“大小”的属性,当它用作过滤器时,我想按价格排序。

我想问题是是否有办法在 XML 中做到这一点——首先如何为除类别以外的购物选项调用适当的范围,其次如何更改排序依据设置。我猜测虽然通过 XML 是不可能的,而且我必须更深入,但任何建议都值得赞赏!

4

2 回答 2

0

我认为你将不得不覆盖一个核心文件才能完成你想要的(不要修改核心文件——通过将类复制到本地代码池或重写类来覆盖类)。默认情况下,顺序是在管​​理面板中设置的排序顺序。为了改变这一点,您将不得不修改该逻辑。

我首先查看 Mage_Catalog_Block_Layer_Category 类。这引用了 Mage_Catalog_Model_Layer_Filter_Category 类。此类处理获取分层导航的类别。

我认为您需要查看的函数是_getItemsData()。我认为您要么想要修改 $categories 的逻辑以设置所需的顺序(这可能是更可取的选项),要么您可以对放入 $data 数组的项目进行一些自定义排序.

于 2012-04-22T12:41:37.977 回答
0

go to app\code\core\Mage\Catalog\Model\Resource\Eav\Mysql4\Product and open collection.php file and look into the function named as a addAttributeToSort() this function is responsible for sorting attribute, here you can put your logic for sorting and override your file after testing

于 2012-04-24T13:26:38.323 回答