Мне нужно получить список родственных категорий в magento 1.7

До сих пор я думаю, что работаю над чем-то вроде этого

<!--?php 
$parentId = $_category--->getParentId();
$cats = Mage::getModel('catalog/category')->load($parentId)->getChildred();
$catIds = explode(',',$cats);
?>
<ul>
<!--?php foreach($catIds as $catId): ?-->
 <li>
 <!--?php
 $category=Mage::getModel('catalog/category')--->load($catId)
 echo $category->getName();
 ?>
</li>
<!--?php endforeach; ?-->
</ul>

Я пытаюсь иметь боковое перемещение в подкатегориях без необходимости поднимать слой.

Сообщите мне, если это имело смысл.

2 ответа

Приведенный ниже код поможет вам загрузить категорию 2-го уровня (sub). вы можете установить $_rootCatId как динамический и Mage:: app() → getStore() → getRootCategoryId();.

$_rootCatId = 2;//Root Category
$_rootCategory = Mage::getModel('catalog/category')->load($_rootCatId);
$_catName = $_rootCategory->getName();
if($_rootCategory->hasChildren()) 
{
 $_collection = Mage::getResourceModel('catalog/category_collection')
 ->addAttributeToFilter('is_active', 1)
 ->addAttributeToSort('position', 'asc')
 ->joinUrlRewrite()
 ->addIdFilter($_rootCategory->getChildren())
 ->load();
 foreach($_collection AS $_sub)
 {
 $_subCat = Mage::getModel('catalog/category')->load($_sub->getId());
 if($_subCat->hasChildren()) 
 { 
 echo '<li>';
 echo '<a id="subCatLink">';
 echo '<span>'. $this->htmlEscape($_subCat->getName()) .'</span>
 </a>
 </li>';
 echo '<ul id="subCatUl" style="padding:0px 13px;">';
 $__collection = Mage::getResourceModel('catalog/category_collection')
 ->addAttributeToFilter('is_active', 1)
 ->addAttributeToSort('position', 'asc')
 ->joinUrlRewrite()
 ->addIdFilter($_subCat->getChildren())
 ->load();
 foreach($__collection AS $__sub)
 {
 $__subCat = Mage::getModel('catalog/category')->load($__sub->getId());
 echo '<li>
 <a href="'. $this->getCategoryUrl($__subCat) .'">
 <span>'. $this->htmlEscape($__subCat->getName()) .'</span>
 </a>
 </li>';
 }
 echo '</ul>';
 }
 else
 {
 echo '<li>
 <a href="'. $this->getCategoryUrl($_subCat) .'">
 <span>'. $this->htmlEscape($_subCat->getName()) .'</span>
 </a>
 </li>';
 }
 }
}
else
 echo 'No Categories Found...';


Предполагая, что ваш $_category является допустимым экземпляром Mage_Catalog_Model_Category:

<!--?php $_siblings = $_category--->getParentCategory()->getChildrenCategories(); ?>
<ul>
 <!--?php foreach($_siblings as $_sibling): ?-->
 <li>
 <!--?php echo $_sibling--->getName(); ?>
 </li>
 <!--?php endforeach; ?-->
</ul>

licensed under cc by-sa 3.0 with attribution.