Magento e seu top menu!
Estive trabalhando em um projeto de personalização de menu do Magento e percebi uma questão muito chata dele: A documentação oficial é muito fraca! 🙁
Com isso tive que pesquisar na internet para entender os objetos que o Magento me libera para customizar e foi uma briga feia!! Até que achei uma explicação muito simples no link Generate Magento top menu navigation html [$_menu = $this->getHtml(‘level-top’)].
Depois de ler e fazer meus testes, resumi o código para remover a linha <?php $_menu = $this->getHtml('level-top') ?>
e adicionar:
<?php
$obj = new Mage_Catalog_Block_Navigation();
$storeCategories = $obj->getStoreCategories();
$_menu = '';
foreach ($storeCategories as $_category) {
$_menu .= '<li><a href="'. $obj->getCategoryUrl($_category) .'">' . $_category->getName() . '</a>' . "n";
$categoryChildren = $_category->getChildren();
if($categoryChildren->count()) {
$_menu .= '<ul>' . "n";
foreach($categoryChildren as $_categoryChild) {
$_categoryChildModel = Mage::getModel('catalog/category')->load($_categoryChild->getId());
$categoryGrandchildren=$_categoryChild->getChildren();
$_menu .= '<li><a href="' . $_categoryChildModel->getUrl() . '">' . $_categoryChild->getName() . '</a></li>' . "n";
if($categoryGrandchildren->count()) {
$_menu .= '<ul>' . "n";
$_menu .= '<ul>' . "n";
foreach($categoryGrandchildren as $_categoryGrandchild) {
$_categoryGrandchildModel = Mage::getModel('catalog/category')->load($_categoryGrandchild->getId());
$_menu .= '<li><a href="' . $_categoryGrandchildModel->getUrl() . '">' . $_categoryGrandchild->getName() . '</a></li>' . "n";
}
$_menu .= '</ul>' . "n";
}
}
$_menu .= '</ul>' . "n";
}
$_menu .= '</li>' . "n";
}
?>
Depois foi só personalizar a realidade do cliente! 😀