`
天梯梦
  • 浏览: 13742594 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

Magento: 获取类别所有子类别 (无限级别-目录树) Get All Sub Categories

 
阅读更多

生成分类目录树(Category Tree)

$rootcatId  = Mage::app()->getStore()->getRootCategoryId();
$categories = Mage::getModel('catalog/category')->getCategories($rootcatId);
 
function  get_categories($categories)
{
    $array = '<ul>';
     
    foreach ($categories as $category) {
        $cat    = Mage::getModel('catalog/category')->load($category->getId());
        $count  = $cat->getProductCount();
         
        $array .= '<li>'
                  . '<a href="' . Mage::getModel('catalog/category')->load($category->getId())->getUrl(). '">'
                  . $category->getName()
                  . "(".$count.")</a>";
                   
        if ($category->hasChildren()) {
            $children = Mage::getModel('catalog/category')
                              ->getCategories($category->getId());
            $array  .=  get_categories($children);
        }
        $array .= '</li>';
    }
     
    return  $array . '</ul>';
}
 
echo  get_categories($categories);

 

我个人的用法:

function  get_categories($categories,$level=0)
{
    $array = "\n".'<ul class="'.(!$level ? 'nav navbar-nav' :'dropdown-menu dropdown-menu-level-'.$level).'">';
     
    foreach ($categories as $category) 
    {
        // $cat    = Mage::getModel('catalog/category')->load($category->getId());
        // $count  = $cat->getProductCount();
         
        // $array .= "\n".'<li'.($category->hasChildren()?' class="dropdown-submenu"':'').'>'. '<a href="' . Mage::getUrl($category->getUrlPath()). '" class="dropdown-toggle" data-toggle="dropdown">'. $category->getName(). "(".$count.")</a>";
        
        $array .= "\n".'<li'.($category->hasChildren()?' class="dropdown-submenu dropdown-submenu-level-'.$level.'"':'').'>';
		$array .=  '	<a href="' . Mage::getModel('catalog/category')->load($category->getId())->getUrl(). '" class="dropdown-toggle" data-toggle="dropdown">';
		$array .=  $category->getName().($category->hasChildren()?'<span class="glyphicon glyphicon-play glyphicon-level-'.$category->getLevel().'" aria-hidden="true"></span>':'');
		$array .=  '	</a>';
                   
        if ($category->hasChildren()) {
            $children = Mage::getModel('catalog/category')->getCategories($category->getId()); 
            $array  .=  get_categories($children,$category->getLevel());
        }
        
        $array .= '</li>'."\n";
    }
     
    return  $array . '</ul>'."\n";
}

 

打印所有类别的方法如下:

//获取所有激活状态的分类模型集合
$categories = Mage::getModel( 'catalog/category' )->getCollection()
		->addAttributeToSelect( '*' )
     	// then the magic happens here:
	 	//->addAttributeToFilter('level', array('eq'=>2))
     	->addIsActiveFilter();
  
//循环Collection,并填充数组,可以根据需要的数据进行填充,本例以分类ID作为key,对应的值作为value
$allCategory = array ();
foreach ( $categories as $category ) {
	 $allCategory [ $category->getParentId()][$category->getId()] = $category ->getName().'('.$category->getLevel().')';
}
  
echo '==><pre>'; print_r($allCategory); echo '</pre>';

 

 

获取当前类别的子类别 get subcategories of current / parent category in magento

Method 1:
if you want to get subcategories of current category:

$_currentCategoryId = Mage::registry('current_category')->getId();
$childcategories= Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect("*")->addFieldToFilter('parent_id', $_currentCategoryId)->addAttributeToSort('name', 'ASC');
foreach($childCategories as $childCategory)
   echo $childCategory->getName();
endforeach;

 

 

Method 2:
if you want to get subcategories of specific category:

$parentCategoryId = 3;
$children = Mage::getModel('catalog/category')->getCategories($parentCategoryId);
foreach ($children as $category) {
    echo $category->getName();
}

 

 

原文/转自: Magento: 获取类别所有子类别 (无限级别-目录树) Get All Sub Categories

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Magento商城_目录结构说明

    Magento是一款强大的开源电子商务平台,其目录结构设计严谨,旨在提供高效且可扩展的网店管理。以下是对Magento目录结构的详细解释: 1. **根目录**: - `.htaccess`:用于配置Apache服务器的重写规则,处理URL...

    Magento: 后台添加预览按钮 View product in frontend from Magento admin

    Magento是一款强大的开源电子商务平台,以其高度可定制性和灵活性著称。在Magento的后台管理系统中,管理员可以进行商品的创建、编辑、管理等操作。然而,原生的Magento系统并未提供直接在后台预览商品前端展示效果...

    Magento: Beginner's Guide ([Packt]出品 Magento新手指南)

    ### Magento新手指南知识点详解 #### 一、Magento简介与特性 **Magento**是一款功能强大的开源电子商务平台,由Varien公司(后被Adobe收购)于2008年首次发布。它以其灵活性、可扩展性和丰富的功能集而闻名,是...

    magento目录结构

    Magento目录结构解析与详解 Magento是一款功能强大的电子商务平台,其目录结构复杂且层次分明,旨在支持高度可定制化的在线商店开发。以下是对Magento目录结构的深入解析,旨在帮助开发者更好地理解其架构,以便...

    magento2-store-switch-all-store-views:此模块使所有商店视图都可以在商店切换器中使用,无论它们的商店或网站如何

    IMI StoreSwitch Magento模块扩展了默认的商店切换器,并显示所有商店视图,无论它们与之相关的商店或网站如何。 默认的magento商店切换器仅显示与当前活动商店关联的商店视图。 它扩展了核心存储开关Magento\Store\...

    magento2-integration

    Magento:registered:2数据集成借助Datatric Connect扩展程序,可以轻松地将Magento:registered:2商店与Datatrics平台连接起来。安装在开始安装过程之前,我们建议您对webshop文件以及数据库进行备份。 有两种安装...

    magento:Magento CE 1.x源代码-ce source code

    Magento是知名的开源电子商务平台,专为中小型企业设计。它的社区版(Community Edition,简称CE)提供了丰富的功能,包括产品管理、订单处理、购物车、支付集成等,深受开发者喜爱。"Magento CE 1.x源代码"是这个...

    magento 常用的方法总结

    在 Magento 中,可以使用 `Mage::getDesign()-&gt;getBaseDir()` 方法来获取设计目录路径。例如,获取 frontend 的 design 目录路径可以使用以下代码: ```java Mage::getDesign()-&gt;getBaseDir(array('_area'=&gt;'...

    python-magento:使用Python API访问magento API

    Magento Python API 用于连接到Magento Web服务的Python库。 用法 import magento url = 'http://domain.com/' apiuser = 'user' apipass = 'password' # Create an instance of API client = magento . API ( url ...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    ### Magento权威指南 #### 书籍概述 《Magento权威指南》是由Adam McCombs与Robert Banh共同编著的一本深入探讨Magento电商平台的技术手册。该书由Apress出版社于2009年出版发行,旨在为读者提供一个全面、系统的...

    magento 商城目录结构说明

    Magento 商城是一个强大的开源电子商务平台,其复杂的目录结构是它能提供强大功能和高度可定制性的基础。让我们深入了解 Magento 的目录结构及其各个部分的作用。 1. **根目录**: - `.htaccess`:用于配置 Apache...

    excelente-responsive-magento-theme-documentati

    官方文档中并未明确列出兼容的Magento版本,请参考官方文档或联系技术支持获取更多信息。 - **服务器环境检查**:确保服务器满足Magento运行的基本要求,包括PHP版本、MySQL数据库等。 ##### 2.2 关闭缓存 在安装...

    Magento-SMTP-Email

    "Magento-SMTP-Pro-Email-Extension"是一个专业的SMTP扩展,提供了一系列高级功能。以下是该插件的一些核心特性: 1. **多SMTP配置**:商家可以根据不同的业务需求配置多个SMTP服务器,比如用于测试和正式环境。 2...

    magento -redis 插件安装包

    - **下载插件**:获取“magento -redis 安装包”,解压后通常包含`lib`和`app`两个目录。 - **lib目录**:包含Redis的相关库文件,这些文件可能包含PHP的Redis扩展或者与Magento集成的特定库。 - **app目录**:...

    m2_belvg_product-tabs-2.0.0.zip

    magento2在产品详情添加自定义tab,1. Enable module with php bin/magento module:enable BelVG_ProductTabs 2. Run php bin/magento setup:upgrade 3. Recompile DI php bin/magento setup:di:compile 4. Recompile...

    magento2-package-es_mx:magento的西班牙语MX语言

    支持的Magento版本 Magento v2.0.x Magento v2.1.x Magento v2.2.x Magento v2.3.x 从终端使用安装在根文件夹中 php bin/magento maintenance:enable ----------------------------------- #copy kik3gamboa cp ...

    magento搜索url---伪静态插件

    适应于 magento1.9.x ================================== 分类的网址达到短路径: http://local.router-switch.com/Price-cisco-router-cisco-router-1900-series_c11 普通搜索 ... 高级搜索 ...对路径都做到短路径,对...

    Ajax-magento2-catalog-infinite-scroll.zip

    Ajax-magento2-catalog-infinite-scroll.zip,免费的Magento 2扩展,为目录添加无限滚动功能(通过AJAX实现)编码教程,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。...

    phpstan-magento:Magento phpstan的特定扩展

    bitexpert / phpstan-magento 该软件包为PHPStan提供了一些附加功能,以使其可用于Magento 2项目。 安装 安装bitexpert/phpstan-magento的首选方法是通过Composer。 您可以将bitexpert/phpstan-magento添加为dev...

Global site tag (gtag.js) - Google Analytics