Ajout de bloc de navigation en couches à la page personnalisée
-
16-10-2019 - |
Question
Magento, le bloc de navigation Layered fonctionne bien dans la page de la liste des produits.
Comment ce bloc est copié avec succès à une page personnalisée, où il y a une liste personnalisée des produits?
Note:. Il suffit d'ajouter le bloc au XML, et de l'appeler de getChildHtml('blockname')
ne pas faire l'affaire
La solution
En fait ce que vous avez à faire est extend/overwrite
Mage_Catalog_Block_Product_List (List.php)
et réécrire le getProductCollection()
Méthode:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
// Build collection and set it
$collection = "...";
$this->setProductCollection($collection);
}
return $this->_productCollection;
}
Quand cela a été fait, j'avais écrasé à la fois la classe et la Mage_Catalog_Model_Layer
Mage_Catalog_Model_Category
et introduit une nouvelle variable:
protected $_customProductCollection;
Je l'ai remplacé getProductCollection()
dans les deux classes et j'ai ajouté cela au début de la méthode:
if(isset($this->_customProductCollection)){
return $this->_customProductCollection;
}
J'ai aussi une méthode qui me permet de définir cet "customProductCollection"
à l'intérieur ces deux classes. Une fois qu'il est défini, le reste des données du navigation / catégorie en couches est basée sur cette collection.
Découvrez la première question + réponse .
Bonne chance;)