2012-03-02 13 views
12

Por lo tanto, estoy tratando de mostrar un archivo list.phtml personalizado dentro de un bloque. que ya está bien soy capaz de visualizar todos los productos con el identificador de categoría 6.Cómo obtener el nombre de la categoría de list.phtml en Magento

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

lo anterior funciona bien. Pero ahora quiero tener acceso al nombre de la categoría id 6, ¿cómo haré esto desde list.phtml o incluso desde un bloque diferente? solo necesito el nombre de la categoría para el ID = 6.

Respuesta

38

Dentro de la plantilla de bloque list.phtml se puede obtener el nombre de la categoría con

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

En este caso la categoría actual se encuentra en la capa por el bloque catalog/product_list en la llamada _getProductCollection().

Dentro del contenido de la página CMS no hay manera de que sepa de acceder directamente al nombre de la categoría.
Desde un bloque diferente, obtener el nombre de la categoría podría ser más complicado. Puede intentar

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

Por supuesto que podría ser el caso de que no existe una categoría actual podría establecer en la instancia de la capa, así que asegúrese de comprobar que para evitar errores feos.
Básicamente, si se ha ejecutado el método de del bloque de lista de productos _beforeToHtml(), la categoría actual se establecerá en la capa.

EDIT: Todo esto es suponiendo que desea obtener el nombre de la categoría sin especificar el ID de la categoría de nuevo. Si no se preocupan por que siempre se puede obtener el nombre de categoría con

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

ambos rompen la página y no se emite, ¿cómo definir la capa actual? – molleman

+0

este es el error Llamar a una función miembro getName() en un objeto no en magento – molleman

+1

La capa actual en el registro está establecida por el módulo de búsqueda de catálogo. Actualicé la respuesta para usar 'Mage :: getSingleton ('catalog/layer')' en su lugar, y también agregué una explicación cuando la categoría actual está configurada en la instancia de la capa. – Vinai

Cuestiones relacionadas