2013-06-06 4 views

ответ

7
<select> 
<?php 
$category = Mage::getModel('catalog/category'); 
$tree = $category->getTreeModel(); 
$tree->load(); 

$ids = $tree->getCollection()->getAllIds(); 

if ($ids) 
{ 
    foreach ($ids as $id) 
    { 
    $cat = Mage::getModel('catalog/category'); 
    $cat->load($id); 
    if($cat->getLevel()==1 && $cat->getIsActive()==1) 
    { 
     echo "<option>"; 
     echo $cat->getName(); 
     echo "</option>"; 
    } 
    } 
} 
?> 
</select> 
5

Во-первых получить Каталог-> Категория помощника:

$helper = Mage::helper('catalog/category'); 

Расположение: приложение/код/​​ядро ​​/ Mage/Каталог/Helper/category.php

Тогда:

<select> 
<?php foreach ($helper->getStoreCategories() as $_category): ?> 
    <?php if ($_category->getIsActive()): ?> 
     <option value="<?php echo $_category->getId(); ?>"><?php echo $_category->getName(); ?></option> 
    <?php endif; ?> 
<?php endforeach; ?> 
</select> 

Примечание: Это только для категорий верхнего уровня. Если вы хотите, чтобы получить дочерние категории, тоже, то вы можете получить их с чем-то вроде:

<?php if ($_category->hasChildren()): ?> 
    <?php $category = Mage::getModel('catalog/category')->load($_category->getId()); ?> 
     <?php foreach ($category->getChildrenCategories() as $subcategory): ?> 
      <?php if ($subcategory->getIsActive()): ?> 
       <?php echo $helper->getCategoryUrl($subcategory); ?> 
       <?php echo $subcategory->getName(); ?> 
       <?php /* etc... */ ?> 
      <?php endif; ?> 
     <?php endforeach; ?> 
<?php endif; ?> 
Смежные вопросы