2011-05-15 140 views
5

我想按每個過濾器中的項目數對每個分層導航過濾器進行排序。Magento分層導航 - 排序依據數

這裏是顯示NOW-

  • 書籍 - 1
  • 的CD - 2
  • DVD的 - 20

我想顯示─什麼

  • DVD的 - 20
  • CD的 - 2本
  • 書籍 - 1

我一直期待在目錄/層/ filter.phtml,但我無法弄清楚如何Magento的集合進行排序。

理想我想是這樣的:

$這個 - > getItems() - >訂單( '計數說明')

我怎樣才能做到這一點?

回答

3

一個很好的起點是Mage/Catalog/Model/Layer/Filter/Attribute.php。該列表是內置有..

5

發現做這個 -

修改Mage/Catalog/Model/Layer/Filter/Abstract.php重新排序使用計數在getItems方法的方式。

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; 
} 
+0

它是法師/目錄/模型/圖層/過濾器/ Abstract.php。 Not Mage/Catalog/Layer/Filter/Abstract.php – 2013-06-26 05:17:47

+0

除此之外,感謝您發佈您的答案。 +1 – 2013-06-26 05:27:22