Многоуровневая навигация Magento - сортировка по количеству - PullRequest
5 голосов
/ 15 мая 2011

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

Вот что показывает сейчас-

  • Книги - 1
  • CD - 2
  • DVD - 20

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

  • DVD - 20
  • CD - 2
  • Книги - 1

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

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

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

Как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 16 мая 2011

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

Изменено 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;
}
3 голосов
/ 16 мая 2011

Хорошее место для начала - Маг / Каталог / Модель / Слой / Фильтр / Attribute.php.Список построен там ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...