:::: MENU ::::

Eliminar filtros de la navegación por capas de Magento en algunas páginas

4.50 avg. rating (82% score) - 2 votes

Aunque no es un caso habitual, hay situaciones en las que nos interesa eliminar filtros de la navegación por capas. Para ello sólo hay que conocer el lugar donde se obtiene la lista de filtros.

El lugar mágico es la clase Mage_Catalog_Block_Layer_View, y en concreto la función getFilters, que muestro y comento a continuación:

/**
 * Get all layer filters
 *
 * @return array
 */
 public function getFilters()
 {
     $filters = array();
 
     // Intenta obtener el filtro por categorías, que en la
     // configuración por defecto de magento siempre está 
     // disponible. Si no queremos que aparezca este filtro,
     // sólo hay que comentar estas líneas
     if ($categoryFilter = $this->_getCategoryFilter()) {
         $filters[] = $categoryFilter;
     }
 
     // Obtiene la lista de atributos que tienen marcado 
     // "Usar en Navegación por capas" en el backend. Puede
     // configurarse así cualquier atributo de tipo "Desplegable",
     // "Selección multiple" o "Precio"
     $filterableAttributes = $this->_getFilterableAttributes();
     foreach ($filterableAttributes as $attribute) {
         $filters[] = $this->getChild($attribute->getAttributeCode() . '_filter');
     }
 
     return $filters;
 }

Si lo que se quiere es eliminar alguno de los filtros en alguna página en particular, sólo hay que tener a mano la función:

$this->helper('core/url')->getCurrentUrl()

Que nos devuelve la URL de la página que se está generando y elegir que atributo nos saltamos en el bucle.




One Comment

Hey! Qué opinas sobre el artículo?