Frage

In Magento funktioniert der geschichtete Navigationsblock gut auf der Produktlistenseite.

Wie kann dieser Block erfolgreich auf eine benutzerdefinierte Seite kopiert werden, auf der eine benutzerdefinierte Liste von Produkten vorhanden ist?

Hinweis: Fügen Sie den Block nur zum XML hinzu und rufen Sie ihn an getChildHtml('blockname') tut nicht den Trick.

War es hilfreich?

Lösung

Grundsätzlich müssen Sie tun, ist extend/overwrite aus Mage_catalog_block_product_list (List.php) und schreibe das um getProductCollection() Methode:

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

Als das geschah, hatte ich beide überschrieben Mage_Catalog_Model_Layer Klasse und die Mage_Catalog_Model_Category und führte eine neue Variable ein:

protected $_customProductCollection;

Ich habe das überschrieben getProductCollection() In beiden Klassen fügte ich dies zu Beginn der Methode hinzu:

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

Ich habe auch eine Methode, mit der ich dies festlegen kann "customProductCollection" In beiden Klassen. Sobald es festgelegt ist, der Rest der Daten der Daten Schichtnavigation/Kategorie basiert auf dieser Sammlung.

Schauen Sie sich die erste Frage+Antwort an hier.

Viel Glück ;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top