Domanda

In Magento, il blocco Layered Navigation funziona bene nella pagina di elenco dei prodotti.

Come può questo blocco essere copiato con successo a una pagina personalizzata, in cui v'è un elenco personalizzato di prodotti?

Nota:. Basta aggiungere il blocco al codice XML, e chiamandolo di getChildHtml('blockname') non fare il trucco

È stato utile?

Soluzione

In pratica quello che hai da fare è extend/overwrite Mage_Catalog_Block_Product_List (List.php) e riscrivere il getProductCollection() Metodo:

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

    return $this->_productCollection;
}

Fatto questo ho avuto sovrascritto sia la classe Mage_Catalog_Model_Layer e la Mage_Catalog_Model_Category e introdotto una nuova variabile:

protected $_customProductCollection;

ho sovrascritto il getProductCollection() in entrambe le classi e ho aggiunto questo all'inizio del metodo:

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

Ho anche un metodo che mi permette di impostare questo "customProductCollection" all'interno di entrambe queste classi. Una volta impostato, il resto dei dati del Navigazione stratificato / categoria si basa su questa collezione.

Controlla la domanda iniziale + risposta qui .

Buona fortuna;)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top