/** * Creating sorted array of nodes * * @param array $children * @param string $path * @param Varien_Object $parent */ public function addChildNodes($children, $path, $parent) { if (isset($children[$path])) { foreach ($children[$path] as $child) { $childrenNodes = $parent->getChildrenNodes(); if ($childrenNodes && isset($childrenNodes[$child->getId()])) { $childrenNodes[$child['entity_id']]->setChildrenNodes(array($child->getId() => $child)); } else { if ($childrenNodes) { $childrenNodes[$child->getId()] = $child; } else { $childrenNodes = array($child->getId() => $child); } $parent->setChildrenNodes($childrenNodes); } if ($path) { $childrenPath = explode('/', $path); } else { $childrenPath = array(); } $childrenPath[] = $child->getId(); $childrenPath = implode('/', $childrenPath); $this->addChildNodes($children, $childrenPath, $child); } } }