L'aggiunta di blocco di navigazione stratificato alla pagina personalizzata
-
16-10-2019 - |
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
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;)