[转]magento获取所有分类列表

1.显示所有的Magento分类列表(Active/Inactive)
下面的代码将获取在你的magento商店里面的所有分类:

$categories = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('*');

2. 显示所有激活的分类( Active Categories)
下面的代码将获取你的magento商店里的所有激活的分类,过滤掉没有激活的分类

$categories = Mage::getModel('catalog/category') ->getCollection() ->addAttributeToSelect('*') ->addIsActiveFilter();

3. 在magento中显示任意级别的并且是激活状态下的分类

下面代码将获取所有特定级别的激活分类,在这里我选择了一级分类,并按照分类的name排序

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

4. 在magento中显示特定分类存储类型

下面的代码将获取所有激活的的存储特定分类

getStoreCategories($sorted=false, $asCollection=false, $toLoad=true)
$helper = Mage::helper('catalog/category');

// sorted by name, fetched as collection
$categoriesCollection = $helper->getStoreCategories('name', true, false);

// sorted by name, fetched as array
$categoriesArray = $helper->getStoreCategories('name', false, false);

5. 在magento中只显示顶级分类

下面的代码将获取所有magento顶级分类

<?php $_helper = Mage::helper('catalog/category') ?> 
<?php $_categories = $_helper->getStoreCategories() ?> 
<?php if (count($_categories) > 0): ?> 
<ul> 
<?php foreach($_categories as $_category): ?> 
<li> 
<a href="getCategoryUrl($_category) ?>"> 
<?php echo $_category->getName() ?> 
</a> 
</li> 
<?php endforeach; ?> 
</ul> 
<?php endif; ?>

6. 在magento中显示所有顶级分类及其所有子分类

下面的代码将获取所有的magento商店中顶级分类以及所有子分类

<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php $currentCategory = Mage::registry('current_category') ?>
<?php if (count($_categories) > 0): ?>
<ul>
<?php foreach($_categories as $_category): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_category) ?>">
<?php echo $_category->getName() ?> //Top Level Category Listing
</a>
<?php $_category = Mage::getModel('catalog/category')->load($_category->getId()) ?>
<?php $_subcategories = $_category->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
<ul>
<?php foreach($_subcategories as $_subcategory): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>"> //Sub Category Listing
<?php echo $_subcategory->getName() ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

7. 在magento中显示当前顶级分类的子分类

下面的代码将获取当前顶级分类的所有子分类

<?php $_currentCategory = Mage::register('current_category') ?>
<?php $_helper = Mage::helper('catalog/category') ?>
<?php $_categories = $_helper->getStoreCategories() ?>
<?php if (count($_categories) > 0): ?>
<ul>
<?php foreach($_categories as $_category): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_category) ?>" title="<?php echo $_category->getName() ?>">
<?php echo $_category->getName() ?>
</a>
<?php if ($_category->getId() == $_currentCategory->getId()): ?>
<?php $_subcategories = $_currentCategories->getChildrenCategories() ?>
<?php if (count($_subcategories) > 0): ?>
<ul>
<?php foreach($_subcategories as $_subcategory): ?>
<li>
<a href="<?php echo $_helper->getCategoryUrl($_subcategory) ?>" title="<?php echo $_subcategory->getName() ?>">
<?php echo $_subcategory->getName() ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

8. 获取类目树

下面的代码将返回一段类目树的html代码

$catalogHtml = Mage::getModel("newaddproducts/newaddproducts")->getTreeCategories('2', false);

希望对你有帮助,Thanks

本文转载自:http://www.360magento.com/blog/get-all-category-listing-in-magento/

 

posted @ 2021-06-17 14:09  ec04  阅读(105)  评论(0编辑  收藏  举报