5

階層化されたナビゲーション フィルターのそれぞれを、各フィルターのアイテム数で並べ替えたいと思います。

これが今示しているものです-

  • 本 - 1
  • CD - 2
  • DVD - 20

見せたいもの――

  • DVD - 20
  • CD - 2
  • 本 - 1

catalog/layer/filter.phtml を見てきましたが、magento コレクションを並べ替える方法がわかりません。

理想的には、次のようなものが必要です。

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

どうすればこれを達成できますか?

4

2 に答える 2

5

これを行う方法を見つけました-

Mage/Catalog/Model/Layer/Filter/Abstract.phpメソッドのcountを使用して再ソートするように変更されました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;
}
于 2011-05-16T16:41:33.103 に答える
3

Mage/Catalog/Model/Layer/Filter/Attribute.php から始めるとよいでしょう。リストはそこに構築されています..

于 2011-05-15T23:36:08.830 に答える