<сильный>1. Для навигации по меню пользовательских категорий в Magento
Макет
Откройте app/design/frontend/base/default/layout/page.xml
или эквивалент вашей темы. Поместите следующий код под тегом по умолчанию:
<reference name="right">
<block type="core/template" name="catalog.sidenav" template="page/custom.phtml" before="cart_sidebar"/>
</reference>
Создайте app/design/frontend/base/default/template/page/custom.phtml
со следующим содержимым:
<ul>
<?php
$obj = new Mage_Catalog_Block_Navigation();
$storeCategories = $obj->getStoreCategories();
Mage::registry('current_category') ? $currentCategoryId = Mage::registry('current_category')->getId() : $currentCategoryId='';
foreach ($storeCategories as $_category):
?>
<li>
<strong><?php echo $_category->getName(); ?></strong>
<?php $categoryChildren = $_category->getChildren(); ?>
<?php if($categoryChildren->count()) : ?>
<ul>
<?php foreach($categoryChildren as $_categoryChild) : ?>
<?php $_categoryChildModel = Mage::getModel('catalog/category')->load($_categoryChild->getId());?>
<?php $categoryGrandchildren=$_categoryChild->getChildren(); ?>
<li>
<?php
$currentCategoryId===$_categoryChild->getId() ? $bold="style=\"font-weight:bold\"" : $bold='';
echo ' ' . '<a href="' . $_categoryChildModel->getUrl() . '"' . $bold . '>' . $_categoryChild->getName() . '(' . $_categoryChildModel->getProductCollection()->count() . ')</a>';
?>
</li>
<?php if($categoryGrandchildren->count()) : ?>
<?php foreach($categoryGrandchildren as $_categoryGrandchild) : ?>
<?php $_categoryGrandchildModel = Mage::getModel('catalog/category')->load($_categoryGrandchild->getId());?>
<li>
<?php
$currentCategoryId===$_categoryChild->getId() ? $bold="style=\"font-weight:bold\"" : $bold='';
echo '  ' . '<a href="' . $_categoryGrandchildModel->getUrl() . '"' . $bold . '>' . $_categoryGrandchild->getName() . '(' . $_categoryGrandchildModel->getProductCount() . ')</a>';
?>
</li>
<?php endforeach; ?>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach ?>
</ul>
Вы также можете вставить этот шаблон на любую другую страницу, закодировав обновление макета или через администратора, вставив эту строку как содержимое вашей страницы CMS:
{{block type="core/template" template="page/custom.phtml"}}
2. Чтобы добавить навигацию по категориям на левой боковой панели:
создайте новый файл "category_listing.phtml" в вашей теме по адресу -
app/design/frontend/{your_namespace}/{your_module}/template/catalog/navigation/category_listing.phtml
Поместите в него следующий код:
<div class="block block-category">
<div class="inside-box">
<div class="block-title block-category-title">
<h2><?php echo $this->__('Categories') ?></h2>
</div>
<div class="block-category-navigation">
<ul id="category-nav">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php if($_category->name!=""): ?>
<li><?php echo $this->drawItem($_category) ?></li>
<?php endif?>
<?php endforeach ?>
</ul>
</div>
</div>
</div>
затем вызовите это в файле catalog.xml, расположенном в папке темы -
app/design/frontend/{your_namespace}/{your_module}/layout/catalog.xml
код:
<reference name="left">
<-- this is new block added by us -->
<block type="catalog/navigation" name="catalog.categorymenu" after="top.search" template="catalog/navigation/category_listing.phtml"/>
<block type="core/template" name="left.permanent.callout" template="callouts/left_col.phtml">
...
...
...
</reference>
26.11.2016