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: