/** * Loads a singe level of nodes, internal recursion helper * * @param string $strParentNode * * @return array */ private function loadSingleLevel($strParentNode) { $arrReturn = array(); $arrCurLevel = class_module_navigation_point::getDynamicNaviLayer($strParentNode); if (isset($arrCurLevel["node"]) && isset($arrCurLevel["subnodes"])) { //switch between added nodes and "real" nodes $arrTemp = array(); $arrTemp["node"] = $arrCurLevel["node"]; $arrTemp["subnodes"] = $arrCurLevel["subnodes"]; $arrReturn[] = $arrCurLevel; } /** @var class_module_navigation_point $objOneNode */ foreach ($arrCurLevel as $strKey => $objOneNode) { if ($strKey !== "node" && $strKey !== "subnodes") { if ($objOneNode->getIntRecordStatus() == 1 && $objOneNode->rightView()) { $arrTemp = array(); $arrTemp["node"] = $objOneNode; $arrTemp["subnodes"] = $this->loadSingleLevel($objOneNode->getSystemid()); $arrReturn[] = $arrTemp; } } } return $arrReturn; }