Многоуровневая навигация Magento — Сортировка по количеству

#magento #navigation #layered

#magento #навигация #многоуровневая

Вопрос:

Я хотел бы отсортировать каждый из моих многоуровневых навигационных фильтров по количеству элементов в каждом фильтре.

Вот что видно сейчас-

  • Книги — 1
  • Компакт-диски — 2
  • DVD-дисков — 20

Что я хочу показать-

  • DVD-дисков — 20
  • Компакт-диски — 2
  • Книги — 1

Я просматривал каталог / layer / filter.phtml, но я не могу понять, как сортировать коллекции magento.

В идеале я хочу что-то вроде этого:

$this-> GetItems()-> order(‘Количество по убыванию’)

Как я могу этого добиться?

Ответ №1:

Нашел способ сделать это-

Изменено 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;
}
  

Комментарии:

1. Это Mage/Catalog/Model/Layer/Filter/Abstract.php . Не Mage/Catalog/Layer/Filter/Abstract.php

Ответ №2:

Хорошее место для начала — Mage/Catalog/Model/Layer/Filter/Attribute.php . Список создается там..