2015-08-27 2 views
0

Я использовал следующий код для печати категории в древовидной структуре, но ничего не печатает. Его не отображают ни категории, ни подкатегории.Категория печати в древовидной структуре magento

Вот мой код:

 <!-- List all categories and their second level subcategories --> 
     <div class="block block-list block-categories"> 
    <div id="block-categories" class="block-title active"> 
    <strong><span>Categories </span></strong> 
    </div> 

<div id="leftnav" class="block-content" style="display:block"> 
<?php $helper = $this->helper('catalog/category') ?> 
<?php $categories = $this->getStoreCategories() ?> 
<?php if (count($categories) > 0): ?> 
    <ul id="leftnav-tree" class="level0"> 
     <?php foreach($categories as $category): ?> 
      <li class="level0<?php if ($this->isCategoryActive($category)): ?> active<?php endif; ?>"> 
       <a href="<?php echo $helper->getCategoryUrl($category) ?>"><span><?php echo $this->escapeHtml($category->getName()) ?></span></a> 
       <?php //if ($this->isCategoryActive($category)): ?> 
        <?php $subcategories = $category->getChildren() ?> 
        <?php if (count($subcategories) > 0): ?> 
         <ul id="leftnav-tree-<?php echo $category->getId() ?>" class="level1"> 
          <?php foreach($subcategories as $subcategory): ?> 
           <li class="level1<?php if ($this->isCategoryActive($subcategory)): ?> active<?php endif; ?>"> 
            <a href="<?php echo $helper->getCategoryUrl($subcategory) ?>"><?php echo $this->escapeHtml(trim($subcategory->getName(), '- ')) ?></a> 
            <?php $secondLevelSubcategories = $subcategory->getChildren() ?> 
            <?php if (count($secondLevelSubcategories) > 0): ?> 
         <ul id="leftnav-tree-<?php echo $subcategory->getId() ?>" class="level2"> 
          <?php foreach($secondLevelSubcategories as $secondLevelSubcategory): ?> 
           <li class="level2<?php if ($this->isCategoryActive($secondLevelSubcategory)): ?> active<?php endif; ?>"> 
            <a href="<?php echo $helper->getCategoryUrl($secondLevelSubcategory) ?>"><?php echo $this->escapeHtml(trim($secondLevelSubcategory ->getName(), '- ')) ?></a> 
           </li> 
           <?php endforeach; ?> 
         </ul> 
         <script type="text/javascript">decorateList('leftnav-tree-<?php echo $category->getId() ?>', 'recursive')</script> 
        <?php endif; ?> 
          <?php endforeach; ?> 
         </ul> 
         <script type="text/javascript">decorateList('leftnav-tree-<?php echo $category->getId() ?>', 'recursive')</script> 
        <?php endif; ?> 
       <?php //endif; ?> 
      </li> 
     <?php endforeach; ?> 
    </ul> 
    <script type="text/javascript">decorateList('leftnav-tree', 'recursive')</script> 
<?php endif; ?> 
</div> 
    </div> 

Может кто-нибудь помочь мне напечатать категории в структуре дерева .. Спасибо заранее.

+0

возможно дубликат [Magento - получить родительскую категорию и все суб-суб-категории] (http://stackoverflow.com/questions/5564647/magento-get-a-parent-category-and-all -sub-суб-категории) –

ответ

0

Вы можете использовать нижеследующий код для отображения категории дерева.

<?php 
$rootcatId= Mage::app()->getStore()->getRootCategoryId(); 
$categories = Mage::getModel('catalog/category')->getCategories($rootcatId); 
function get_categories($categories) { 
    $array= '<ul>'; 
    foreach($categories as $category) { 
     $cat = Mage::getModel('catalog/category')->load($category->getId()); 
     $count = $cat->getProductCount(); 
     $array .= '<li>'. 
     '<a href="' . Mage::getUrl($cat->getUrlPath()). '">' . 
        $category->getName() . "(".$count.")</a>\n"; 
     if($category->hasChildren()) { 
      $children = Mage::getModel('catalog/category')->getCategories($category->getId()); 
      $array .= get_categories($children); 
      } 
     $array .= '</li>'; 
    } 
    return $array . '</ul>'; 
} 
echo get_categories($categories); ?> 
Смежные вопросы