Hoy he estado activando una opción de navegación en capas que no se basa en un atributo. Es para clasificaciones, por lo que la parte delantera puede mostrar bonitas estrellas brillantes.
Para hacer esto tengo:
- Creado un módulo
Reescrito catalog_block_layer_view
<blocks> <catalog> <rewrite> <layer_view>Bob_Catalog_Block_Layer_View</layer_view> </rewrite> </catalog> </blocks>
Creó una clase llamada Bob_Catalog_Block_Layer_View que extiende Mage_Catalog_Block_Layer_View
- Creó _initBlocks (), getFilters () y _prepareLayout () para anular los métodos de las clases principales. Todos ellos llaman a la clase padre en algún momento y luego anteponen o agregan datos adicionales a lo que se devuelve.
- Cree un bloque de filtro Bob_Catalog_Block_Layer_Filter_Rating que extiende Mage_Catalog_Block_Layer_Filter_Abstract con un constructor que establece el filterModelName y llama a su padre y luego establece una plantilla personalizada, ya que parece que Mage_Catalog_Block_Layer_Filter_Abstract tiene el nombre de la plantilla en el constructor.
- Cree un modelo Bob_Catalog_Model_Layer_Filter_Rating que extienda Mage_Catalog_Model_Layer_Filter_Abstract e implemente apply (), getName (), _getItemsData ().
Todo esto funciona bien. Las bonitas estrellas brillantes se muestran en la navegación en capas.
Tengo el presentimiento de que me falta algo porque cuando se trata de una plantilla de estado de capa, tuve que poner un condicional para recoger el filtro de calificación personalizado y alterar el diseño. Además, algunas de las cosas que necesito hacer (clonar la colección de productos para que el evento de carga no arruine la colección cuenta con la paginación) me hacen sentir que he estado nadando cuesta arriba.
Entonces, la pregunta es si alguno de ustedes tiene mejores sugerencias (o tal vez un guiño de publicación de blog ) sobre cómo construir un filtro de navegación en capas personalizado sin respaldo de atributos.
Gracias por leer,
Si