2012-03-02 24 views
12

Quindi sto cercando di visualizzare un file list.phtml personalizzato all'interno di un blocco. questo è bene sono in grado di visualizzare tutti i prodotti con categoria id 6.Come ottenere il nome della categoria da list.phtml in Magento

{{block type="catalog/product_list" category_id="6" template="catalog/product/list.phtml"}} 

quanto sopra funziona bene. Ma ora voglio ottenere l'accesso al nome della categoria id 6, come potrei fare per farlo da list.phtml o anche da un blocco diverso. ho solo bisogno del nome della categoria per l'id = 6.

risposta

38

All'interno del modello di blocco list.phtml è possibile ottenere il nome della categoria con

<?php echo $this->getLayer()->getCurrentCategory()->getName() ?> 

In questo caso la categoria corrente è impostato sullo strato dal catalog/product_list blocco nella chiamata _getProductCollection().

All'interno del contenuto della pagina CMS non c'è modo di sapere per accedere direttamente al nome della categoria.
Da un blocco diverso è possibile coinvolgere maggiormente il nome della categoria. Si può provare

<?php echo Mage::getSingleton('catalog/layer')->getCurrentCategory()->getName() ?> 

Naturalmente potrebbe essere il caso che non esiste una categoria attuale potrebbe impostare sull'istanza livello, quindi assicuratevi di controllare che per evitare brutti errori.
In sostanza, se il metodo _beforeToHtml() del blocco elenco prodotti catalog/product_list è stato eseguito, la categoria corrente verrà impostata sul livello.

EDIT: Tutto questo è supponendo che si desidera ottenere il nome della categoria senza specificare di nuovo l'ID della categoria. Se non si preoccupano che si può sempre ottenere il nome categoria con

<?php echo Mage::getModel('catalog/category')->load($this->getCategoryId())->getName() ?> 
+0

entrambe queste interrompere la pagina e nulla viene emesso, come faccio a impostare il livello corrente? – molleman

+0

questo è l'errore Chiamata a una funzione membro getName() su un oggetto non in magento – molleman

+1

Il livello corrente nel registro viene impostato dal modulo di ricerca del catalogo. Ho aggiornato la risposta per usare 'Mage :: getSingleton ('catalog/layer')', e ho anche aggiunto una spiegazione quando la categoria corrente è impostata sull'istanza del livello. – Vinai

Problemi correlati