西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

magento使用TreeNode方式输出指定查询条件的分类

时间:2016-10-21 14:45来源:未知 作者:好模板 点击:
magento 使用Category Collection手工构造sql输出制定查询条件的分类,效率低,代码复杂,本例介绍另一种方式 Php代码 ?php //initializemagentoenvironmentfordefaultstore require_once ../../app/Mage.php ; Mage::a
magento使用Category Collection手工构造sql输出制定查询条件的分类,效率低,代码复杂,本例介绍另一种方式 
Php代码  收藏代码
  1. <?php  
  2.    // initialize magento environment for 'default' store  
  3.    require_once '../../app/Mage.php';  
  4.    Mage::app('default');  
  5.      
  6.    function getStoreCategories($sorted=false, $asCollection=false, $toLoad=true) {  
  7.       $parent = 6; // 6 是名字为'品牌'的类别id.  
  8.       $category = Mage::getModel('catalog/category');  
  9.       if (!$category->checkId($parent)) {  
  10.          if ($asCollection) {  
  11.             return new Varien_Data_Collection();  
  12.          }  
  13.          return array();  
  14.       }  
  15.   
  16.       $recursionLevel = max(0, 0);  
  17.   
  18.       $tree = $category->getTreeModel();  
  19.       $nodes = $tree->loadNode($parent)  
  20.          ->loadChildren($recursionLevel)  
  21.          ->getChildren();  
  22.   
  23.       $tree->addCollectionData(null, $sorted$parent$toLoad, true);  
  24.   
  25.       if ($asCollection) {  
  26.          return $tree->getCollection();  
  27.       } else {  
  28.          return $nodes;  
  29.       }  
  30.    }  
  31.   
  32.    function getCategory($categoryNode){  
  33.       $category = Mage::getModel('catalog/category');  
  34.       $category->setData($categoryNode->getData());  
  35.       return $category;  
  36.    }  
  37.    /* 
  38.    *   Main Funtion 
  39.    */  
  40.    header("content-Type: text/html ; charset=utf-8");  
  41. ?>  
  42. <!-- 输出两层Category -->  
  43. <?php foreach (getStoreCategories() as $_categoryNode) { ?>  
  44. <div class="catwrapper2">  
  45.    <div class="subcat2" id="subcat1">  
  46.    <?php $category =getCategory($_categoryNode); ?>  
  47.    <h2 class="maincat inline" id="cat1">  
  48.       <a href="<?php echo $category->getUrl(); ?>"><?php echo $category->getName(); ?>(<?php echo $category->getProductCount(); ?>)</a>  
  49.    </h2>  
  50.    <?php $hasChildren = $_categoryNode->hasChildren(); ?>  
  51.    <?php if($hasChildren){  
  52.          foreach ($_categoryNode->getChildren() as $subCategoryNode){  
  53.          $subCategory =getCategory($subCategoryNode);  
  54.    ?>  
  55.       <a href="<?php echo $subCategory->getUrl(); ?>"><?php echo $subCategory->getName(); ?></a>  
  56.    <?php  
  57.          }  
  58.       }  
  59.    ?>  
  60.    </div>  
  61. </div>  
  62. <?php   } ?>  


代码范例中的getCategory方法是获得Node对应的Cateogry模型实例,目的仅仅是为了调用它的getUrl方法. 

下面是我机器上的输出结果: 
 (责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容