2013-03-19 3 views
1

У меня есть категории с 4 уровнями.
Пример:
level0category --> level1category --> level2category -->lastlevel_level3cateogory
Возможно ли на последнем уровне отображать категории, которые находятся в level2 и только? (На блоке, который я загрузить пользовательский left.phtml)
я думал что-то с автоматическим определением категории и не должен установить cat_id =Magento: показать все level2 категории

Edit: это то, что я искал, после того, как смесь коды из разных источники.

<?php 
    $currentCat = Mage::registry('current_category'); 

    if ($currentCat->getParentId() == Mage::app()->getStore()->getRootCategoryId()) 
    { 
     // current category is a toplevel category 
     $loadCategory = $currentCat; 
    } 
    else 
    { 
     // current category is a sub-(or subsub-, etc...)category of a toplevel category 
     // load the parent category of the current category 
     $loadCategory = Mage::getModel('catalog/category')->load($currentCat->getParentId()); 
     // @TODO enhance for more nested category levels to display sub-categories 
    }  
    $subCategories = explode(',', $loadCategory->getChildren()); 

    foreach ($subCategories as $subCategoryId) 
    { 
     $cat = Mage::getModel('catalog/category')->load($subCategoryId); 


if ($cat->getIsActive()) 
{ 
    if ($currentCat->getEntityId() == $subCategoryId) 
    { 
     echo '<li style="display:none;">'.$cat->getName().'</li>'; 
    } 
    else 
    { 


    echo '<a href="'.$cat->getURL().'">'.$cat->getName().'</a> <br>'; } 
} 

    } 
?> 

ответ

1
$categories = Mage::getModel('catalog/category') 
        ->getCollection() 
        ->addAttributeToSelect('*') 
        ->addIsActiveFilter() 
        ->addAttributeToFilter('level',2) 
        ->addOrderField('name'); 

убедитесь, что эта линия есть

apply ->addAttributeToFilter('level',2) 
Смежные вопросы