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

使用Category Collection手工构造sql输出制定查询条件的分类,效率低,代码复杂,本例介绍另一种方式
<?php
   // initialize magento environment for 'default' store
   require_once '../../app/Mage.php';
   Mage::app('default');
   
   function getStoreCategories($sorted=false, $asCollection=false, $toLoad=true) {
      $parent = 6; // 6 是名字为'品牌'的类别id.
      $category = Mage::getModel('catalog/category');
      if (!$category->checkId($parent)) {
         if ($asCollection) {
            return new Varien_Data_Collection();
         }
         return array();
      }

      $recursionLevel = max(0, 0);

      $tree = $category->getTreeModel();
      $nodes = $tree->loadNode($parent)
         ->loadChildren($recursionLevel)
         ->getChildren();

      $tree->addCollectionData(null, $sorted, $parent, $toLoad, true);

      if ($asCollection) {
         return $tree->getCollection();
      } else {
         return $nodes;
      }
   }

   function getCategory($categoryNode){
      $category = Mage::getModel('catalog/category');
      $category->setData($categoryNode->getData());
      return $category;
   }
   /*
   *   Main Funtion
   */
   header("content-Type: text/html ; charset=utf-8");
?>
<!-- 输出两层Category -->
<?php foreach (getStoreCategories() as $_categoryNode) { ?>
<div class="catwrapper2">
   <div class="subcat2" id="subcat1">
   <?php $category =getCategory($_categoryNode); ?>
   <h2 class="maincat inline" id="cat1">
      <a href="<?php echo $category->getUrl(); ?>"><?php echo $category->getName(); ?>(<?php echo $category->getProductCount(); ?>)</a>
   </h2>
   <?php $hasChildren = $_categoryNode->hasChildren(); ?>
   <?php if($hasChildren){
         foreach ($_categoryNode->getChildren() as $subCategoryNode){
         $subCategory =getCategory($subCategoryNode);
   ?>
      <a href="<?php echo $subCategory->getUrl(); ?>"><?php echo $subCategory->getName(); ?></a>
   <?php
         }
      }
   ?>
   </div>
</div>
<?php   } ?>


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

下面是我机器上的输出结果:
使用TreeNode方式输出指定查询条件的分类

你可能感兴趣的:(html,sql,PHP,ITeye)