Как получить категории magento по массиву идентификаторов категорий?


У меня есть ситуация, когда у меня есть массив идентификаторов категорий (содержащий как родительские, так и дочерние категории). теперь я хочу получить все категории по идентификаторам в массиве в родительском дочернем отношении, т. Е. если категория верхнего уровня (родительская), то распечатайте ее, если категория дочерняя, сначала получите и распечатайте ее родительскую категорию, а затем распечатайте дочерние категории. До сих пор я мог получить все категории из списка, но условие, которое я применил, чтобы проверить, есть ли у категории родитель категория всегда остается верной, так как все основные категории являются дочерними по отношению к корневой (по умолчанию) категории

<?php if ($_categories->getParentId()>0) {
    $_categories= $_categories->getParentCategory();
} ?>
Author: Haris, 2014-08-06

2 answers

На основе комментариев....
Вместо $_categories->getParentId()>0 попробуйте проверить

$_categories->getParentId() != 1 && $_categories->getParentId() != Mage::app()->getStore()->getRootCategoryId(). 

Это должно исключить корень всех корней (идентификатор 1) и корневую категорию хранилища по умолчанию.

 1
Author: Marius, 2014-08-06 12:44:37
    $cats = Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('level', array('gteq' => 2));
    $final = array();
    foreach($cats as $cat)
    {
        if($cat->getLevel() > 2 && !$cat->hasChildren())
        {
            $final[$cat->getEntityId()] = implode(',', c_getAllCategories($cat));
        }
    }
    var_dump($final);  


    function c_getAllCategories($category,$cats = null)
    {
        if(!$cats)
            $cats = array($category->getEntityId());
        $category = $category->getParentCategory();
        $cats[]=$category->getEntityId();
        if($category && $category->getLevel()>=2)
        {
            $cats= c_getAllCategories($category,$cats);
        }
        return $cats;
    }

Он распечатает все категории и их дочерние элементы

 2
Author: Julien Lachal, 2014-08-06 08:10:56