- Plantillas Web
- Plantillas E-commerce
- Plantillas de CMS y Blog
- Plantillas Facebook
- Constructor Web
Magento. Lista de sub-categorías en la página de categoría
febrero 12, 2013
Este tutorial presentará una de varias formas de mostrar la lista de subcategorías en las páginas de categorías de su tienda Magento.
Para mostrar las miniaturas (thumbnails) de subcategorías y sus nombres en las páginas de categorías:
- En su panel de administración de Magento abra CMS -> Static Blocks (CMS -> Bloques estáticos)
- Haga clic en “Add New Block” (Agregar nuevo bloque) a la derecha.
- Cree un nuevo bloque estático de la siguiente manera:
- Haga clic en “Save Block” (Guardar bloque) a la derecha.
- En el menú superior abra Catalog –> Manage Categories (Catálogo -> Administrar categorías).
- Encuentre una categoría que tiene sub-categorías y en “Display Settings Tab” (Mostrar Pestaña de Configuración) muestra la siguiente:
- Haga clic en “Save category” (Guardar categoría) a la derecha.
- En su ordenador cree un nuevo fichero “subcategory_listing.phtml” con el siguiente contenido:
- Conéctese al directorio FTP que contiene los ficheros de su Magento por medio de Gestor de archivos y suba el fichero al siguiente directorio:
- Por medio de su FTP abra app\code\core\Mage\Catalog\Block\Navigation.php.
- Copie el fichero Navigation.php.
- En el fichero “Navigation.php” búsque:
- Y reemplace esta parte por:
- En front end de su sitio web abra la categoría con las sub-categorías agregadas.
- Si no se puede ver los cambios, trate de limpiar su caché de Magento/del navegador. Si sus sub-categorías no muestran imágenes en miniatura, por favor asegúrese de que las imágenes sean en realidad subidas a sus subcategorías.
Block Title: (Título del bloque) Sub Category Listing
Identifier: (Identificador) subcategory_listing
Status: (Estado) Enabled (Activado)
Content: (Contenido)
{{block type="catalog/navigation" template="catalog/navigation/subcategory_listing.phtml"}}
Display mode: (Mostrar) Static Block only (Sólo Bloque estático)
OnlyCMS Block: Sub Category Listing (Lista de sub-categoriás)
Is Anchor: No.
<div class="category-products"> <ul class="products-grid"> <?php $_categories=$this->getCurrentChildCategories(); if($_categories->count()): $categorycount = 0; foreach ($_categories as $_category): if($_category->getIsActive()): $cur_category=Mage::getModel('catalog/category')->load($_category->getId()); $layer = Mage::getSingleton('catalog/layer'); $layer->setCurrentCategory($cur_category); $catName = $this->getCurrentCategory()->getName(); if ($categorycount == 0){ $class = "first"; } elseif ($categorycount == 3){ $class = "last"; } else{ $class = ""; } ?> <li class="item <?=$class?>"> <a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><img src="<?php echo $_category->getImageUrl() ?>" width="100" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /></a> <h2><a href="<?php echo $_category->getURL() ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"><?php echo $this->htmlEscape($_category->getName()) ?></a></h2> </li> <?php endif; if($categorycount == 3){ $categorycount = 0; echo "</ul>\n\n<ul class=\"products-grid\">"; } else{ $categorycount++; } endforeach; endif; ?> </ul> </div>
app/design/frontend/default/MY-TEMPLATE-DIR/template/catalog/navigation/
(si no se puede encontrar algún directorio de esta lista, hay que crearlo)
Mediante FTP abra app\code\local\Mage\Catalog\Block\ y suba el fichero copiado Navigation.php a este directorio (si no se puede encontrar algún directorio de esta lista, hay que crearlo).
public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $categories = $category->getChildrenCategories(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($categories); return $categories; }
public function getCurrentChildCategories() { $layer = Mage::getSingleton('catalog/layer'); $category = $layer->getCurrentCategory(); /* @var $category Mage_Catalog_Model_Category */ $collection = Mage::getModel('catalog/category')->getCollection(); /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */ $collection->addAttributeToSelect('url_key') ->addAttributeToSelect('name') ->addAttributeToSelect('is_anchor') ->addAttributeToSelect('image') ->addAttributeToFilter('is_active', 1) ->addIdFilter($category->getChildren()) ->setOrder('position', 'ASC') ->joinUrlRewrite() ->load(); $productCollection = Mage::getResourceModel('catalog/product_collection'); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($collection); return $collection; }
Por favor, revise el tutorial: