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

Était-ce utile?

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;)

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top