2017-09-29 3 views
0

제품이 속하는 카테고리의 목록, 상위 카테고리 및 하위 카테고리를 표시하려고합니다.현재 제품 (magento)에 속한 하위 카테고리 만로드하는 방법

올바른 topcategories를로드하는 방법을 알아 냈습니다.하지만 하위 범주 (하위 범주)를 반복 할 때 제품이 속하는 범주가 아닌 해당 상위 범주의 모든 하위 집합을로드합니다.

예 :

enter image description here

당신이 하위 범주의 톤을로드 볼 수 있지만 빨간 줄무늬 만 사람이 제품에서 떨어지면 하위 범주처럼.

어떻게 상위 분류에 해당하는 것을 표시 할 수 있습니까?

내 코드 : 카테고리 제품이 아닌지 루프 검사에서

$currentCatIds = $_product->getCategoryIds(); 
    $categoryCollection = Mage::getResourceModel('catalog/category_collection') 
->addAttributeToSelect('name') 
// ->addFieldToFilter('level',2) 
->addAttributeToSelect('url') 
->addAttributeToFilter('entity_id', $currentCatIds) 
->addIsActiveFilter(); 

    $out = "<ul>"; 
    foreach($categoryCollection as $cat){ 
     $out .= "<li>"; 
     $out .= "<b><a href='".$cat->getUrl()."'>".$cat->getName()."</a></b>"; 
     $out .="<ul class='sub'>"; 
     $children = Mage::getModel('catalog/category') 
     // ->addAttributeToFilter('entity_id', $cat->getCategoryIds()) 
     ->load($cat->getId()) 
     ->getChildrenCategories(); 
      foreach($children as $child){ 
       $out .="<li><a href='".$child->getUrl()."'>".$child->getName()."</a></li>"; 
      } 
      $out .="</ul>"; 
     $out .= "</li>"; 
    } 
    $out .= "</ul>"; 
    echo $out; 

답변

0

. if($cat->getProductCount()){..}과 같은 일이 $child

$currentCatIds = $_product->getCategoryIds(); 
$categoryCollection = Mage::getResourceModel('catalog/category_collection') 
->addAttributeToSelect('name') 
// ->addFieldToFilter('level',2) 
->addAttributeToSelect('url') 
->addAttributeToFilter('entity_id', $currentCatIds) 
->addIsActiveFilter(); 

$out = "<ul>"; 
foreach($categoryCollection as $cat){ 
    if($cat->getProductCount()){ 
     $out .= "<li>"; 
     $out .= "<b><a href='".$cat->getUrl()."'>".$cat->getName()."</a></b>"; 
     $out .="<ul class='sub'>"; 
     $children = Mage::getModel('catalog/category') 
     // ->addAttributeToFilter('entity_id', $cat->getCategoryIds()) 
     ->load($cat->getId()) 
     ->getChildrenCategories(); 
      foreach($children as $child){ 
      if($child->getProductCount()){ 
       $out .="<li><a href='".$child->getUrl()."'>".$child->getName()."</a></li>"; 
      } 
      } 
      $out .="</ul>"; 
     $out .= "</li>"; 
} 
} 
$out .= "</ul>"; 
echo $out; 
0

내 코드를 시도하십시오, 그것은 작동합니다.

<?php 
    $currentCatIds = $_product->getCategoryIds(); 
    foreach ($currentCatIds as $categoryid) { 
      $sub_categories = Mage::getModel('catalog/category')->load($categoryid)->getChildrenCategories(); 
      foreach ($sub_categories as $category) { 
       $cat_details = Mage::getModel('catalog/category')->load($category->getId()); 
        ?> 
        <div class="col-sm-15 col-xs-4"> 
         <div class="catImage"> 
          <a href="<?php echo $cat_details->getUrl(); ?>" title="<?php echo $cat_details->getName(); ?>"> 
           <img src="<?php echo Mage::getBaseUrl('media', array('_secure' => true)) . 'catalog/category/' . $cat_details->getThumbnail(); ?>" alt="<?php echo $cat_details->getName(); ?>"/> 
          </a> 
         </div> 
         <div class="title"> 
          <a href="<?php echo $cat_details->getUrl(); ?>" title="<?php echo $cat_details->getName(); ?>"><?php echo $cat_details->getName(); ?></a> 
         </div> 
        </div> 
        <?php 
      } 
    } 
?>