有的时候我们要显示网页所有类别或Magento的任何CMS页面。有许多不同的方式来获得的类别列表。我会告诉你如何得到所有类别您的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; ?>
希望对你有帮助,Thanks

