Aggiunta del blocco di navigazione a più livelli alla pagina personalizzata


9

In Magento, il blocco Navigazione a strati funziona bene nella pagina dell'elenco dei prodotti.

In che modo questo blocco può essere copiato correttamente in una pagina personalizzata, in cui è presente un elenco personalizzato di prodotti?

Nota: basta aggiungere il blocco all'XML e chiamare getChildHtml('blockname')non fa il trucco.


2
È necessario aggiungere una categoria predefinita al codice del blocco di navigazione a strati poiché la navigazione a strati viene creata dai prodotti della categoria corrente.
Sander Mangel

+1 per l'aiuto, cosa succede se ci sono più prodotti di più categorie (ad esempio, prodotti di promozione)?
pzirkind,

2
Farei una categoria speciale per quello. Potrebbero esserci altri modi, ma questo è sicuramente il più semplice e il più scalabile!
Sander Mangel

1
Se vuoi davvero, allora dovresti creare una categoria personalizzata. La navigazione a più livelli si aspetta davvero che ci sia una categoria con cui lavorare, non ci vorrà un semplice ProductCollection senza scavalcare un sacco di classi.
Rick Kuipers,

Risposte:


5

Fondamentalmente quello che devi fare è extend/overwriteda 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 ciò, ho sovrascritto sia la Mage_Catalog_Model_Layerclasse sia la Mage_Catalog_Model_Categorye ho introdotto una nuova variabile:

protected $_customProductCollection;

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

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

Ho anche un metodo che mi permette di impostare questo "customProductCollection"in entrambe queste classi. Una volta impostato, il resto dei dati della navigazione / categoria a più livelli si basa su questa raccolta.

Dai un'occhiata alla domanda iniziale + risposta qui .

In bocca al lupo ;)


Qual è questo metodo per impostare il customproductcollection e da dove lo chiami?
easymoden00b,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.