2013-03-29 69 views

回答

4

請嘗試這一個,它的做工精細,在我結束

<?php 
$parentCategoryId = 10; 
$categories = Mage::getModel('catalog/category')->load($parentCategoryId)->getChildren(); 
$catArray = explode(',', $categories); 
foreach($catArray as $child) 
{ 
$_child = Mage::getModel('catalog/category')->load($child); 
echo $_child->getName() . '<br />'; 
echo $_child->getUrl() . '<br />'; 
echo $_child->getDescription() . '<br />'; 
} 
?> 
+0

謝謝你,你是英雄 –

8

如果您有current_category ID,然後在載荷種類

$category = Mage::getModel('catalog/category')->load(id);

,並檢查count($category->getChildren());

其他方法是計數兒童

count($category->getChildrenNodes()); 

$category->getChildrenCount(); 

這樣,您就可以檢查是否類別有孩子或沒有。

getChildren()方法給你的孩子類別ID和基於ID你可以得到類別圖像和類別名稱。

+0

我想你的代碼,但它不是工作..我總是顯示1,當我計數的孩子,但其有2個孩子類別 我把這個代碼 $ current_catid = $ this-> getCategoryId(); $ category = Mage :: getModel('catalog/category') - > load($ current_catid); echo count($ category-> getChildren()); –

+0

嘗試使用getChildre() - > count()方法,或者也可以使用count($ category-> getChildrenNodes());爲計數類別兒童 – Mufaddal

+0

我試過這個,因爲你告訴我 $ category-> getChildren() - > count(); 其給我的致命錯誤 –

1

有點老了,但是我正在尋找相同的解決方案,並@ Mufaddal的解決方案沒有奏效。然後我發現getChildrenCategories()

$_category = Mage::registry('current_category'); 
count($_category->getChildrenCategories()); 
0

你有另一種選擇檢查類別子類別中存在或不..

<?php 
    $currentCategoryId = Mage::registry('current_category')->getId(); 
    $collection = Mage::getModel('catalog/category')->getCollection() 
     ->addAttributeToFilter('is_active', 1) //only active categories 
     ->addAttributeToFilter('parent_id', $currentCategoryId); 
    $currentCat = Mage::registry('current_category'); 
    $subCategories = Mage::getModel('catalog/category')->load($currentCat->getParentId())->getChildrenCategories(); 

    if($collection->getSize() >= 1){//there some thing....}else{ 

//Get Subcategory.... 


foreach ($subCategories as $subCategoryId): 

        if($subCategoryId->getIsActive()) 
        { $products = Mage::getModel('catalog/category')->load($subCategoryId->getId()) 
        ->getProductCollection() 
        ->addAttributeToSelect('entity_id') 
        ->addAttributeToFilter('status', 1) 
        ->addAttributeToFilter('visibility', 4); 


         <li <?php if($subCategoryId->getId()==$currentCategoryId){?>class="active"<?php } ?>> 
          <a href="<?php echo $subCategoryId->getURL(); ?>"> 
           <?php //echo $subCategoryId->getName()." (".$products->count().")"; ?> 
           <?php echo $subCategoryId->getName(); ?> 
          </a> 
         </li> 
         } endforeach;}?> 

,如果它是幫助全讓我知道...

感謝 拉維

1

其實這取決於是否啓用「使用平面目錄類別」選項。

因此,檢查類別有子類或不就是最好的方法:

if (Mage::helper('catalog/category_flat')->isEnabled()) { 
    $childrenCount = $category->getResource()->getChildrenAmount($category); 
} else { 
    $childrenCount = $category->getResource()->getChildrenCount(); 
} 

與$類,我想你已經,如:

$category = Mage::getModel('catalog/category')->load(id); 
相關問題