2013-03-29 18 views

Antwort

4

Bitte versuchen Sie dieses, seine Arbeits fein an meinem Ende

<?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

Danke Mann, du bist Held –

8

Wenn Sie current_category-ID haben, dann laden Kategorie

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

und überprüfen count($category->getChildren());

Andere Verfahren zur Anzahl Kinder sind

count($category->getChildrenNodes()); 

$category->getChildrenCount(); 

Auf diese Weise können Sie überprüfen, ob der Kategorie hat Kinder oder nicht.

getChildren() Methoden geben Sie Kinder Kategorie ID und basierend auf ID können Sie Kategorie Bild und Kategorie Name erhalten.

+0

Ich habe versucht, den Code aber es ist nicht funktioniert ..es zeigt immer 1, wenn ich die Kinder zähle, aber es haben 2 Kinder Kategorie Ich habe diesen Code $ current_catid = $ this-> getCategoryId(); $ category = Mage :: getModel ('catalog/category') -> laden ($ current_catid); Echo-Anzahl ($ category-> getChildren()); –

+0

Probieren Sie stattdessen getChildre() -> count() -Methoden oder Sie können auch count ($ category-> getChildrenNodes()); für Anzahl Kategorie Kinder – Mufaddal

+0

Ich habe versucht, wie Sie mir gesagt $ category-> getChildren() -> count(); es gibt mir fatalen Fehler –

1

Ein bisschen alt, aber ich war für die gleiche Lösung gesucht und @ Mufaddal Lösung funktionierte nicht. Dann habe ich getChildrenCategories() gefunden.

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

haben Sie eine andere Option Kategorie Kind Kategorie überprüfen vorhanden sind oder nicht ..

<?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;}?> 

wenn es helfen, voll ist lassen Sie mich wissen ...

Dank Ravi

1

Eigentlich Dies hängt davon ab, ob die Option "Flache Katalogkategorie verwenden" aktiviert ist oder nicht.

Daher ist die beste Methode Kategorie zu überprüfen Kind Kategorie haben oder nicht, ist:

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

mit $ Kategorie ich nehme an, Sie haben bereits, wie:

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