Magento分层导航 - 按计数排序

时间:2011-05-15 14:39:02

标签: magento navigation layered

我想按照每个过滤器中的#项对每个分层导航过滤器进行排序。

以下是现在显示的内容 -

  • 书籍 - 1
  • CD's - 2
  • DVD's - 20

我想要展示的内容 -

  • DVD's - 20
  • CD's - 2
  • 书籍 - 1

我一直在查看catalog / layer / filter.phtml,但我无法弄清楚如何对magento集合进行排序。

理想情况下,我想要这样的事情:

$ this-> getItems() - > order('Count Desc')

我该如何做到这一点?

2 个答案:

答案 0 :(得分:5)

找到了这样做的方法 -

修改Mage/Catalog/Model/Layer/Filter/Abstract.php以使用getItems方法中的count重新排序。

public function getItems()
{
    if (is_null($this->_items)) {
        $this->_initItems();
    }

    //5-16-11 Custom sort
    $items = $this->_items; 
    usort($items, array("Mage_Catalog_Model_Layer_Filter_Abstract", "sortByCount"));  
    return $items;
}

public static function sortByCount($a, $b)
{
    if ($a->getCount() == $b->getCount()) {
        return 0;
    }
    return ($a->getCount() > $b->getCount()) ? -1 : 1;
}

答案 1 :(得分:3)

一个好的起点是Mage / Catalog / Model / Layer / Filter / Attribute.php。列表是在那里建立的..