[转]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/