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

magento前台显示Category定制属性两例

时间:2016-10-24 15:57来源:未知 作者:好模板 点击:
因magento业务需要,Category增加了一个属性叫promo_name,进入Category列表页时希望将其显示出来,这里的情况具体分两种: I. load方法访问自定义属性 Php代码 收藏代码 $c = Mage::getModel(catalog/c
因magento业务需要,Category增加了一个属性叫promo_name,进入Category列表页时希望将其显示出来,这里的情况具体分两种: 
 
I. load方法访问自定义属性 
Php代码  收藏代码
$c = Mage::getModel('catalog/category');  
echo $c->getPromoName();  
 
这个是最自然的用法,麻烦的是下面的情况: 
 
II. 首先得到了树状的Category(不是平面的), 看下面代码示例 
Php代码  收藏代码
public function getCategoryNodes($parentId = null,  $sorted=false, $asCollection=false, $toLoad=true) {  
   $config = Mage::getModel('catalogue/joyconfig');  
   if(emptyempty($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)包含该定制属性, 在代码 
Php代码  收藏代码
$tree->addCollectionData(null, $sorted, $parentId, $toLoad, true);  
 
前增加如下的行: 
Php代码  收藏代码
$tree->getCollection($sorted)->addAttributeToSelect('promot_name');  
 
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容