首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

前台展示Category定制属性两例

2012-12-19 
前台显示Category定制属性两例因业务需要,Category增加了一个属性叫promo_name,进入Category列表页时希望

前台显示Category定制属性两例
因业务需要,Category增加了一个属性叫promo_name,进入Category列表页时希望将其显示出来,这里的情况具体分两种:

I. load方法访问自定义属性

$c = Mage::getModel('catalog/category');echo $c->getPromoName();

这个是最自然的用法,麻烦的是下面的情况:

II. 首先得到了树状的Category(不是平面的), 看下面代码示例
   public function getCategoryNodes($parentId = null,  $sorted=false, $asCollection=false, $toLoad=true) {      $config = Mage::getModel('catalogue/joyconfig');      if(empty($parentId)) {         $parentId = $config->getRootBrandId();      }      $category = Mage::getModel('catalog/category');      /* @var $category Mage_Catalog_Model_Category */      if (!$category->checkId($parentId)) {         if ($asCollection) {            return new Varien_Data_Collection();         }         return array();      }      $recursionLevel = max(0, 0);      $tree = $category->getTreeModel();      $nodes = $tree->loadNode($parentId)         ->loadChildren($recursionLevel)         ->getChildren();      $tree->addCollectionData(null, $sorted, $parentId, $toLoad, true);      if ($asCollection) {         return $tree->getCollection();      } else {         return $nodes;      }   }

其功能是:给定一个category_id,返回该id下所有子分类以树状结构返回,为了让返回的每个节点(Category Node)包含该定制属性, 在代码
$tree->addCollectionData(null, $sorted, $parentId, $toLoad, true);

前增加如下的行:
$tree->getCollection($sorted)->addAttributeToSelect('promot_name');

就可以了。

热点排行