Example #1
0
 /**
  * Retrieve category childs data objects
  *
  * @param Varien_Object $category
  * @return Varien_Object
  */
 public function loadCategoryChilds(Varien_Object $category)
 {
     if ($category->getId() === null || $category->getStoreId() === null) {
         return $category;
     }
     $categories = $this->_getCategories(null, $category->getStoreId(), $category->getPath() . '/');
     $category->setChilds(array());
     foreach ($categories as $child) {
         if (!is_array($child->getChilds())) {
             $child->setChilds(array());
         }
         if ($child->getParentId() == $category->getId()) {
             $category->setChilds($category->getChilds() + array($child->getId() => $child));
         } else {
             if (isset($categories[$child->getParentId()])) {
                 if (!is_array($categories[$child->getParentId()]->getChilds())) {
                     $categories[$child->getParentId()]->setChilds(array());
                 }
                 $categories[$child->getParentId()]->setChilds($categories[$child->getParentId()]->getChilds() + array($child->getId() => $child));
             }
         }
     }
     $category->setAllChilds($categories);
     return $category;
 }