magento 获取分类及其子分类 多种情况举例

1. 获取指定分类id 下的子分类

// 例如获取 分类id为 13 的子分类信息

<?php
$root = Mage::getModel('catalog/category')->load(13);
$subCat = explode(',',$root->getChildren());

$collection  = $root
            ->getCollection()
            ->addAttributeToSelect("*")
            ->addFieldToFilter("entity_id", array("in", $subCat) );

foreach($collection as $catname){
echo $catname->getName();

echo '<br>';

echo $catname->getUrl();

}
?>

echo '<br>';

//echo $catname->getProductCount();   //获取目录下的产品数量
//echo $catname->getChildrenCount();  //获取目录下子目录数量

2. 显示所有分类和子分类

<?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) ?>">
                    <?php echo $_category->getName() ?>
                </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) ?>">
                                    <?php echo $_subcategory->getName() ?>
                                </a>
                            </li>
                        <?php endforeach; ?>
                    </ul>
                <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

3.获取所有的一级分类信息

<?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) ?>">
                    <?php echo $_category->getName() ?>
                </a>
            </li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

4.获取所有的一级分类和当前分类的子分类信息

<?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() ?>
                </a>
                <?php if ($currentCategory && $currentCategory->getId() == $_category->getId()): ?>
                    <?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) ?>">
                                        <?php echo $_subcategory->getName() ?>
                                    </a>
                                </li>
                            <?php endforeach; ?>
                        </ul>
                    <?php endif; ?>
                <?php endif; ?>
            </li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

<< ---  代码整理自网络搜集总结 --->>

时间: 2024-10-07 09:10:34

magento 获取分类及其子分类 多种情况举例的相关文章

Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名

在Magento目录的分类页面里,希望在左侧导航获取到父分类和子分类,可以用以下方法:打开app/your_package/your_themes/template/catalog/navigation/left.phtml 显示父分类的分类名 1 2 3 4 5 6 7 8 9 10 $currentCat = Mage::registry('current_category'); //如果是根目录,则显示当前目录 if ( $currentCat->getParentId() == Mage

Think PHP递归获取所有的子分类的ID (删除当前及子分类)

递归获取所有的子分类的ID: //递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as $v){ if($v['pid'] == $id){ $arr[] = $v['id']; $arr = array_merge($arr,get_all_child($array,$v['id'])); }; }; return $arr; } 在进行删除栏目的时候,需要删除当前栏目下的所有子栏

destoon实现调用当前栏目分类及子分类和三级分类的方法

调用当前栏目分类及子分类和三级分类是程序设计里常用的方法,本文就来详细讲述destoon实现调用当前栏目分类及子分类和三级分类的方法.具体操作如下: 在destoon中提供了如下的调用语句: 一级分类名: ? 1 {$m[catname]} 二级分类名: ? 1 {$c[catname]} 三级分类名: ? 1 {$b[catname]} 具体调用示例如下: 一.直接调用分类名称和链接: ? 1 2 3 4 5 6 {loop $maincat $i $m}<dl>    {php $chil

tp3.2中怎么访问分类及子分类下面的文章

在项目开发过程中,我们可能会遇到在进入文章分类时需要遍历文章分类及文章子分类下面的文章的情况,具体解决步骤如下: 一.为便于理解,这里列出用到的表及字段 文章分类表(article_cate) 文章表(article) 其中 article 表的 cate_id 和 article_cate 表的 id 关联,article_cate 表中的 pid 是 id 的父级代号. 从表中可以看出,在 id 为 69 的文章分类下的 id 为 70 的子分类 下的 id 为 111 的 分类下 有一篇

ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)

获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $categoryID; do { $ids = ''; $where['pid'] = array('in',$categoryID); $cate = M('cate')->where($where)->select(); foreach ($cate as $k=>$v){ $array[]

destoon调用它的分类及子分类和三级分类名的方法

下面的一种方法可以实现,三个分类名分别代表 一级分类名:{$m[catname]} 二级分类名:{$c[catname]} 三级分类名:{$b[catname]} {loop $maincat $i $m} {php $child = get_maincat($maincat, $CATEGORY, 1);} <div class="hq01"> <div class="hq-tt"> <p><h4>{$m[catna

问答项目---删除分类的时删除其子分类

递归获取所有的子分类的ID: //递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as $v){ if($v['pid'] == $id){ $arr[] = $v['id']; $arr = array_merge($arr,get_all_child($array,$v['id'])); }; }; return $arr; } 删除分类及其子分类: //删除分类 public

magento 获得子分类的链接,名称和图片

$subcategories = Mage::getModel('catalog/category')->getCategories($current_category_id); foreach($subcategories as $cat){ $cat->getName();//名称 Mage::helper('catalog/category')->getCategoryUrl($cat);//子分类的链接 $img_path = Mage::getModel('catalog/ca

Magento 自定义URL 地址重写 分类分级显示

我们打算将URL在分类页面和产品页面分别定义为: domain.com/category/分类名.html domain.com/category/子分类名.html domain.com/goods/产品名.html 其实实现很简单,无需使用任何扩展程序.操作的前提是,你已经至少建立起一个根分类,一个子分类和一个产品. 1.登陆magento后台,在目录(Catalog)下选择URL重新管理(URL Rewrite Management): 2.在你创建了分类和产品后,应该在这里可以看见sys