private function initNodes($catId, $parentNode = null) { $catDto = $this->categoryManager->getCategoryById($catId); assert(isset($catDto)); $retNode = new ItemCategoryNode($catId, $catDto->getDisplayName(), $catDto->getLastClickable(), null, $parentNode); $categoryChildrenIdsArray = $this->categoryHierarchyManager->getCategoryChildrenIdsArray($catId); $childrenNodes = array(); if ($catDto->getLastClickable() == 0 && !empty($categoryChildrenIdsArray)) { foreach ($categoryChildrenIdsArray as $childId) { $childrenNodes[] = $this->initNodes($childId, $parentNode); } } $retNode->setChildrenNodes($childrenNodes); return $retNode; }