Magento:如何按级别获取当前类别的子类别等

时间:2015-11-09 07:35:53

标签: php magento-1.9

我有以下代码逐级显示,但我必须显示该特定类别的所有子类别。

    <?php 
    $_cat = new Mage_Catalog_Block_Navigation();
    $currentCat = $_cat->getCurrentCategory();
    $subCats = Mage::getModel('catalog/category')->load($currentCat->getId())- >getChildren();
    $subCatIds = explode(',',$subCats);
    ?>
    <?php ////////////////////////level-3///////////////////////////// ?>
    <?php $category = Mage::registry('current_category');
            $category->getParentCategories(); 
                    if ( $category->getLevel() == 3 )  : ?>
    <div class="cat_drop_ser_wrap">                
    <?php $currentCat = Mage::getModel('catalog/category')->load($currentCat- >getId()) ?> 
    <select class="select_class" onchange="window.location.href=this.value">
    <option value="#">-Select</option>
      <?php foreach($subCatIds as $subCatId): ?>
       <?php $subCat = Mage::getModel('catalog/category')->load($subCatId); ?>
       <?php if($subCat->getIsActive()): ?>
        <option value="<?php echo $subCat->getUrl() ?>">
         <?php echo $subCat->getName(); ?>
        </option>
       <?php endif; ?>
      <?php endforeach; ?>
    </select>
    </div>
    <?php endif; ?><!--if--level-3-->

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果有人需要,以下将显示子类别,等等:

<?php //////sub////// ?>
<?php
$category_levels = Mage::getModel('catalog/category')->load($category->getId());
$subcategories = $category_levels->getChildrenCategories();
if (count($subcategories) > 0){ 
    foreach($subcategories as $subcategory){
            $category_levels_two = Mage::getModel('catalog/category')->load($subcategory->getId());
            $subcategoriess = $category_levels_two->getChildrenCategories();
            if (count($subcategoriess) > 0){                            
                $attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_category', 'category_dropdown_label');                                
                $text = $category_levels_two->getCategoryDropdownLabel(); 
                echo '<div class="empty_serch_select_1 cat_drop_ser_wrap 2">';                               
                echo '<label>' . $text . '</label>';
                echo '<select disabled="disabled">';
                echo '<option value="#">-Select</option>';
                echo '<select>';    
                echo '</div>';    
                break;        
            }
    }
}
?>
<?php //////sub-sub////// ?>
<?php
$category_levels = Mage::getModel('catalog/category')->load($category->getId());
$subcategories = $category_levels->getChildrenCategories();
echo '<div class="empty_serch_select_2 cat_drop_ser_wrap 3">';
if (count($subcategories) > 0){ 
    foreach($subcategories as $subcategory){
            $category_levels_two = Mage::getModel('catalog/category')->load($subcategory->getId());
            $subcategoriess = $category_levels_two->getChildrenCategories();
            if (count($subcategoriess) > 0){                           
                    foreach($subcategoriess as $subcategorys){
                            $category_levels_three = Mage::getModel('catalog/category')->load($subcategorys->getId());
                            $subcategoriesss = $category_levels_three->getChildrenCategories();
                            if (count($subcategoriesss) > 0){                            
                                $attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_category', 'category_dropdown_label');                                
                                $text = $category_levels_three->getCategoryDropdownLabel(); 

                                echo '<label>' . $text . '</label>';

                                break;  

                            }

                    }
            }
    }
}
echo '<select disabled="disabled">';
echo '<option value="#">-Select</option>';
echo '<select>';    
echo '</div>';  
?>
<?php //////sub-sub-sub////// ?>
<?php
$category_levels = Mage::getModel('catalog/category')->load($category->getId());
$subcategories = $category_levels->getChildrenCategories();
echo '<div class="empty_serch_select_2 cat_drop_ser_wrap 3">';
if (count($subcategories) > 0){ 
    foreach($subcategories as $subcategory){
            $category_levels_two = Mage::getModel('catalog/category')->load($subcategory->getId());
            $subcategoriess = $category_levels_two->getChildrenCategories();
            if (count($subcategoriess) > 0){                           
                    foreach($subcategoriess as $subcategorys){
                            $category_levels_three = Mage::getModel('catalog/category')->load($subcategorys->getId());
                            $subcategoriesss = $category_levels_three->getChildrenCategories();
                            if (count($subcategoriesss) > 0){                            
                                foreach($subcategoriesss as $subcategorys){
                                        $category_levels_three = Mage::getModel('catalog/category')->load($subcategorys->getId());
                                        $subcategoriessss = $category_levels_three->getChildrenCategories();
                                        if (count($subcategoriessss) > 0){                            
                                            $attribute = Mage::getSingleton('eav/config')->getAttribute('catalog_category', 'category_dropdown_label');                                
                                            $text = $category_levels_three->getCategoryDropdownLabel(); 

                                            echo '<label>' . $text . '</label>';
                                            break; 

                                        }

                                }

                            }
                    }
            }
    }
}
echo '<select disabled="disabled">';
echo '<option value="#">-Select</option>';
echo '<select>';  
echo '</div>';
?>