国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 網站 > 建站經驗 > 正文

Magento中顯示指定分類產品 子分類及分類產品數量

2024-08-30 19:06:38
字體:
來源:轉載
供稿:網友

本文章來給大家介紹在Magento中顯示指定分類產品 子分類及分類產品數量的實現程序,方法也很簡單的,各位朋友可參考.

二次開發中經常遇到一種情況,就是判斷一個分類是否屬于某一個大的分類,而大的分類包括很多子分類成樹狀結構,基本的方法都是先獲取大分類下的所有子分類的信息,然后再挨個比較看是否有ID和待定ID相等,一種用遞歸方法獲取大分類所有的ID,第二種用隊列等非遞歸的方法獲取所有子分類ID,第二種明顯性能要好一些.

本文在magento的模板文件里測試成功一個函數:輸入一個分類的ID,將返回該分類下所有子分類(遞歸獲取)的ID,組成一個數組返回,所用的方法為用隊列實現的非遞歸方法,代碼如下:

  1. /** 
  2. * 輸入:某一個分類的ID數字 
  3. * 返回: 該分類下所有子分類的ID組成的數組 
  4. * 可用于: 模板文件中可以直接使用,也可以用于action等文件類內部 
  5. * 實現思路:使用隊列的方法實現非遞歸,對樹從上往下遍歷 
  6. **/ 
  7. function getAllChildrenOfCategory($cateid){ 
  8.  $resArr = array();//結果數組 
  9.  $queueArr = array();//隊列數組 
  10.  array_push($queueArr,$cateid); 
  11.  
  12.  while($currentcid = array_pop($queueArr)){ 
  13.   array_push($resArr,$currentcid);            
  14.   //處理當前節點的孩子節點 
  15.   $_category = Mage::getModel('catalog/category')->load($currentcid); 
  16.   $subcats = $_category->getChildren(); 
  17.    
  18.   $idarrs = explode(',',$subcats); 
  19.   foreach($idarrs as $subCatid){ 
  20.    if(!$subCatidcontinue
  21.    $_subcategory = Mage::getModel('catalog/category')->load($subCatid); 
  22.    if($_subcategory->getIsActive()) { 
  23.     array_push($queueArr,$subCatid); 
  24.    }  //開源軟件:Vevb.com 
  25.   } 
  26.   reset($queueArr); 
  27.  } 
  28.  return $resArr
  29. //測試一下 
  30. $allProducerIds = getAllChildrenOfCategory(19); 
  31. $allDesignedIds = getAllChildrenOfCategory(18); 

PHP沒有棧和隊列的數據結構,可以用數組來模擬實現,數組的array_push和array_pop剛好就是這么兩個方法,其中因為array_pop每次會改變數組的指針,所以可以在循環的末尾reset一下重置數組.

最后的測試,輸入的是兩個分類的ID,函數執行結束以后,返回的數組里面就是所有子分類的ID,如果我們要調用指定分類下的產品和獲取子分類及產品數量 上面辦法實現不完美.

Magento首頁及分類頁面側邊欄經常需要調用某一個分類下的產品,例如首頁的Featured Product等,這些分類一般保持不激活狀態,我們可以添加店鋪中比較暢銷的產品到該分類中,并從前臺調用,下面一段代碼主要用處就是在Magento中獲取指定分類下的產品,代碼如下:

  1. $products = Mage::getModel('catalog/category')->load($category_id
  2.   ->getProductCollection() 
  3.   ->addAttributeToSelect('*'
  4.   ->addAttributeToFilter('status', 1) 
  5.   ->addAttributeToFilter('visibility', 4); 

將上面的$category_id修改為需要顯示產品的分類id,該id可以在分類頁面中看到,上述代碼中還捎帶了一些過濾,產品狀態為激活,并處于可見狀態.

很多Magento的項目中,客戶需求將每個當前分類下的每個子分類以及該分類下的產品數量全部顯示出來,類似于Category (108)的形式.

想實現這種效果,就必須要知道如何獲取當前分類的子分類,并了解Product Collection類中的count()方法,該方法用于獲取任意形式下對于Product Collection進行篩選后的產品數量,代碼如下:

  1. // 獲取當前分類模型 
  2. $currCat = Mage::registry('current_category'); 
  3.  
  4. //獲取當前分類的所有子分類的模型集合 
  5. $collection = Mage::getModel('catalog/category')->getCategories($currCat->getEntityId()); 
  6.  
  7. //循環子分類的模型集合 
  8. foreach($collection as $cat) { 
  9.     if($cat->getIsActive()) { 
  10.         $category = Mage::getModel('catalog/category')->load($cat->getEntityId()); 
  11.  
  12.         //獲取子分類的產品Collection,并通過count()方法,獲取該子分類的產品數量 
  13.         $prodCollection = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($category); 
  14.         Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($prodCollection); 
  15.         Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($prodCollection); 
  16.  
  17.         $html .= '<a href="<?php echo $category->getUrl() ?>"><?php echo $category->getName() ?></a> (<?php echo $prodCollection->count() ?>)<br/>'
  18.     } 
  19. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
成人超碰在线| 色综合久久五月天| 小说区乱图片区| 99在线播放| av中文天堂在线| 久久久久久久久免费视频| 九九热视频免费在线观看| 国产中文字幕在线| 国产视频二区三区| 精品视频一二三| 男人天堂99| 国产激情视频一区二区三区| 国产区卡一卡二卡三乱码免费| 国产成人无吗| 国产资源在线看| 亚洲精品国自产拍在线观看| 开心快乐六月丁香婷婷| 国精一区二区三区| 国产精品久久麻豆| 久草福利资源在线视频| 国产国产人免费人成免费视频| 性欧美精品xxxx| 国产黄色免费网| www.色婷婷| 国产区视频在线| 国产麻豆高清视频在线第一页| 69久久精品| 国产午夜视频在线观看| 日本福利在线| 伊人中文在线| 91美女主播在线视频| 黄色av免费在线| 亚洲精品影院在线| 国产福利小视频在线观看| 国产尤物视频在线| 免费a在线观看| 久久er视频| 九九精品九九| 超碰在线免费播放| 免费日本黄色| 可以免费看污视频的网站| 永久免费在线观看| 精品卡一卡卡2卡3网站| 国产精品不卡一区二区三区在线观看| 国产字幕在线看| 中文字幕视频在线观看| 国产嫩草在线视频| 九九热在线观看视频| 好看的中文字幕在线播放 | 国产精品被窝福利一区| 国产美女自拍视频| 国产乱码在线| 国产卡二和卡三的视频| 午夜视频在线观看网站午夜视频在线 | 国产麻豆视频免费观看| 国产在线超碰| 中文字幕在线视频免费观看| 欧洲亚洲精品视频| 国产九色视频| 国产三级香港三韩国三级| 国产娇喘精品一区二区三区图片| 国产天堂在线播放视频| 国产福利在线看| 四虎精品视频| 国产精品一二三区视频| 国产精选在线观看| 国产馆av播放| 九九热在线视频观看| 中文字幕人成高视频| 国产超碰精品在线观看| 亚洲成a人v欧美综合天堂麻豆| 蜜桃视频中文字幕| 国产探花在线观看| a中文在线播放| 国产网站在线免费观看| 亚洲精品aaaa| 91国内精品久久久久| 在线观看中文| 国产视频xxx| 牛牛热在线视频| 在线午夜影院| 国产区视频在线播放| jizz一区二区三区| 国产黄色片在线观看| 免费三级毛片| 91xx在线观看| 中文字幕不卡| 四虎成人精品在永久在线观看| 国内自拍视频在线看免费观看| 精品一区二区三区高清免费不卡 | 麻豆网站在线| 在线观看的网站你懂的| 国产三级自拍| 国产一区二区三区福利| 日本在线天堂| jizz性欧美| 亚洲人av在线| 在线观看中文| 在线视频三区| 中文字幕av中文字幕| 丁香视频免费观看| 久久香蕉av| 丁香婷婷激情| www操操操| 久久综合精品视频| 成年人在线观看| 久久久久国产精品嫩草影院| 久久国产热视频| 国产91大片| 最近高清中文在线字幕在线观看| 毛片网站在线观看| 久久国产情侣| 国产亚洲精品拍拍拍拍拍| 国产麻豆综合视频在线观看| 久热中文字幕精品视频在线| 成年黄网站在线观看免费| 国产中文字幕在线| 国产深夜视频在线观看| 精品无人乱码| 欧美精品久久久久久久小说| 免费看ww视频网站入口| 91超碰国产在线| 国产对白国语对白| 亚洲va国产日韩欧美精品色婷婷| 就爱干草视频| 国产成人亚洲欧美电影| sese一区| 国产三级视频| jizz在线免费观看| 天天av天天爽| 99reav| 国产小视频免费在线网址| 精品剧情v国产在线观看| jizz国产| 99中文字幕一区| 中文字幕在线免费看| 日本欧美在线视频免费观看| 最近中文字幕在线中文视频| 在线免费观看黄色片| 99热在线免费播放| 亚洲电影视频在线| 国产精品不卡一区二区三区在线观看| 亚洲成人av高清| 国产白浆在线| 黄色网址在线免费播放| 国产精品你懂的在线观看| 日本天堂影院在线视频| 国产色a在线| 国产乱码在线| 久久亚洲国产成人亚| 亚洲一本大道| 91免费日韩| 国产videos| 国产日韩欧美精品一区二区三区| www在线视频| 麻豆精品传媒视频观看| 香蕉视频在线观看网站| 在线视频二区| 中文字幕av高清在线观看| 中文字幕在线视频观看| 成人精品一区二区三区免费| 欧洲亚洲精品视频| 欧美xxxxx性| 激情综合网五月激情| jlzzjlzz欧美| 欧美精品久久久久久久小说| wwwww亚洲| а√最新版在线天堂| 免费av不卡在线观看| 久草电影在线| 中文字幕一区免费| 国产精品一区二区婷婷| 国产一级片在线播放| 中文字幕不卡| 国产精品一卡二卡三卡| 中文字幕在线视频不卡| 国产高清在线看| 99re在线视频播放| 免费观看久久久久| 国产小视频在线高清播放| 97视频网站| 超碰在线国产| 91高清国产| 欧美日韩视频精品一区二区| 国产美女极品在线| 国产精品久久久精品a级小说| 国产精品久久精品牛牛影视| 99高清免费国产自产拍| 麻豆网站在线免费观看| 国产美女在线一区二区三区| 国产黄色一级电影| 久久99国产视频| 国产youjizz在线| 免费影视观看网站入口| 国产三区四区在线观看| 爱福利在线视频| 精品欧美色视频网站在线观看| 日韩黄色成人| 国产超级va在线视频| 成年网站免费入口在线观看|