2011-05-15 8 views
5

Me gustaría ordenar cada uno de mis filtros de navegación en capas por # de elementos en cada filtro.Magento Layered Navigation - Ordenado por el recuento

Esto es lo que muestra ahora-

  • Libros - 1
  • de CD - 2
  • DVD - 20

Lo que quiero show-

  • DVD - 20
  • CD - 2
  • Libros - 1

He estado buscando en el catálogo/capa/filter.phtml, pero no puedo encontrar la manera de ordenar colecciones de Magento.

Idealmente Quiero algo como esto:

$ this-> getItems() -> orden ('Contar la descripción')

¿Cómo puedo lograr esto?

Respuesta

3

Un buen lugar para comenzar es Mage/Catálogo/Modelo/Layer/Filter/Attribute.php. La lista se construye allí ..

5

encontrado la manera de hacer esto:

Modificado Mage/Catalog/Model/Layer/Filter/Abstract.php para reordenar usando el método de recuento en 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

Es Mage/Catálogo/Modelo/Capa/Filtro/Abstract.php. No Mage/Catálogo/Layer/Filter/Abstract.php –

+0

Aparte de eso, gracias por publicar su respuesta. +1 –

Cuestiones relacionadas