La adición de bloque de navegación por capas a la página personalizada
-
16-10-2019 - |
Pregunta
En Magento, el bloque de navegación en capas funciona muy bien en la página de la lista de productos.
¿Cómo puede este bloque puede copiar con éxito a una página personalizada, donde hay una lista personalizada de los productos?
Nota:. Simplemente añadiendo el bloque para el XML, y decir que es de getChildHtml('blockname')
no hacer el truco
Solución
Básicamente lo que tienes que hacer es extend/overwrite
Mage_Catalog_Block_Product_List (List.php)
y reescribir el método getProductCollection()
:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Una vez hecho esto tuve tanto la clase Mage_Catalog_Model_Layer
sobrescribe y el Mage_Catalog_Model_Category
e introdujo una nueva variable:
protected $_customProductCollection;
he sobrescrito la getProductCollection()
en ambas clases y añadí esto en el principio del método:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
También tengo un método que me permite establecer este "customProductCollection"
dentro de estas dos clases. Una vez fijado Es, el resto de los datos de la navegación por capas / categoría se basa en esta colección.
Confirmar la pregunta inicial + respuesta aquí .
Buena suerte;)