我有類別ID。我從這個代碼檢查類別有子類別或沒有在Magento
<?php echo $current_catid=$this->getCategoryId(); ?>
現在我要檢查這個類別有子類或不拿到ID。
如果它有孩子比它會顯示子類別的圖像和名稱和網址。
我有類別ID。我從這個代碼檢查類別有子類別或沒有在Magento
<?php echo $current_catid=$this->getCategoryId(); ?>
現在我要檢查這個類別有子類或不拿到ID。
如果它有孩子比它會顯示子類別的圖像和名稱和網址。
請嘗試這一個,它的做工精細,在我結束
<?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 />';
}
?>
如果您有current_category ID,然後在載荷種類
$category = Mage::getModel('catalog/category')->load(id);
,並檢查count($category->getChildren());
其他方法是計數兒童
count($category->getChildrenNodes());
$category->getChildrenCount();
這樣,您就可以檢查是否類別有孩子或沒有。
getChildren()
方法給你的孩子類別ID和基於ID你可以得到類別圖像和類別名稱。
我想你的代碼,但它不是工作..我總是顯示1,當我計數的孩子,但其有2個孩子類別 我把這個代碼 $ current_catid = $ this-> getCategoryId(); $ category = Mage :: getModel('catalog/category') - > load($ current_catid); echo count($ category-> getChildren()); –
嘗試使用getChildre() - > count()方法,或者也可以使用count($ category-> getChildrenNodes());爲計數類別兒童 – Mufaddal
我試過這個,因爲你告訴我 $ category-> getChildren() - > count(); 其給我的致命錯誤 –
有點老了,但是我正在尋找相同的解決方案,並@ Mufaddal的解決方案沒有奏效。然後我發現getChildrenCategories()
。
$_category = Mage::registry('current_category');
count($_category->getChildrenCategories());
你有另一種選擇檢查類別子類別中存在或不..
<?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;}?>
,如果它是幫助全讓我知道...
感謝 拉維
其實這取決於是否啓用「使用平面目錄類別」選項。
因此,檢查類別有子類或不就是最好的方法:
if (Mage::helper('catalog/category_flat')->isEnabled()) {
$childrenCount = $category->getResource()->getChildrenAmount($category);
} else {
$childrenCount = $category->getResource()->getChildrenCount();
}
與$類,我想你已經,如:
$category = Mage::getModel('catalog/category')->load(id);
謝謝你,你是英雄 –