public static function link_to_valid($page, $module, $action, $options) { try { $link = link_to($page, navbarfunctions::pageroute($module, $action), $options); } catch (Exception $e) { $link = link_to($page, "http://routenotfound", $options); } return $link; }
$nexttop = 0; for ($i = 0; $i < count($pages); $i++) { if ($i == $nexttop) { $havechildren = navbarfunctions::testforchildren($pages, $i); $nexttop = ($pages[$i]['tree_right'] + 1) / 2 - 1; if ($havechildren) { $open = '<li><a href="' . navbardisplayfunctions::url_for_valid(navbarfunctions::pageroute($pages[$i]['module'], $pages[$i]['action'])) . '">' . $pages[$i]['page'] . '</a><ul>'; $close = '</ul></li>'; } else { $open = '<li><a href="' . navbardisplayfunctions::url_for_valid(navbarfunctions::pageroute($pages[$i]['module'], $pages[$i]['action'])) . '">' . $pages[$i]['page'] . '</a>'; $close = '</li>'; } //no children } elseif ($pages[$i]['tree_right'] - $pages[$i]['tree_left'] == 1) { $open = '<li><a href="' . navbardisplayfunctions::url_for_valid(navbarfunctions::pageroute($pages[$i]['module'], $pages[$i]['action'])) . '">' . $pages[$i]['page'] . '</a>'; $close = '</li>'; //has children } else { $open = '<li><a href=' . navbardisplayfunctions::url_for_valid(navbarfunctions::pageroute($pages[$i]['module'], $pages[$i]['action'])) . '">' . $pages[$i]['page'] . '</a><ul>'; $close = '</ul></li>'; } $outputArray[$pages[$i]['tree_left']] = $open; $outputArray[$pages[$i]['tree_right']] = $close; } //perform output $size = count($outputArray); ksort($outputArray); foreach ($outputArray as $output) { echo $output; } echo '</ul>';