#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 . Список создается там..