function writeNavBar() { echo "<div class=\"navbar navbar-fixed-top\">"; echo "<div class=\"navbar-inner\">"; echo '<div class="container">'; $loggedin = 0; if (isset($this->user)) { $loggedin = $this->user->isLoggedIn(); $privilege = $this->user->getPrivilege(); } else { $loggedin = 0; $privilege = 99; } $sql = "SELECT pages.id as id, name, IFNULL( pages_labels.label_text, pages.label ) as label_text, pageOrder, dataName FROM pages \n\t\t\tLEFT JOIN pages_labels ON pages.id = pages_id AND language_code = '{$this->language}'\n\t\t\tWHERE type = 'nav' AND privilege_id >= ? AND active = 1 "; if ($loggedin) { $sql .= "AND privilege_id != 100 "; // Don't include pages only available when not logged in } $sql .= "ORDER BY pageOrder"; $pA = array('i', $privilege); $result = DB::query($sql, $pA); $dropDown = array(); $nav = array(); foreach ($result->rows as $row) { // Create list item from result $showPage = $this->parseBranches($row->id); if ($showPage) { $html = "\t<li"; if ($this->page == $row->name) { $html .= " class=\"active\""; } $html .= ">\n\t\t<a href=\"index.php?page="; $html .= HTML::clean($row->name); $html .= "\">"; $html .= HTML::clean($row->label_text); $html .= "</a>\n\t</li>\n"; if (!is_null($row->dataName)) { // dataName is the label for a drop down, if so then put in dropdown array $dropDown[$row->dataName][$row->pageOrder] = $html; } else { // else in nav array $nav[$row->pageOrder] = $html; } } } // Create dropdown menu and add to nav bar foreach ($dropDown as $label => $liArr) { $html = ''; if ($label != 'user') { $html .= "\t<li class=\"dropdown\">\n"; $html .= "\t\t<a href=\"#\" class=\"dropdown-toggle nocheck\" data-toggle=\"dropdown\">\n"; $html .= $label; $html .= "\n\t\t\t<b class=\"caret\"></b>\n"; $html .= "\t\t</a>\n"; $html .= "\t\t<ul class=\"dropdown-menu\">\n"; } $order = NULL; foreach ($liArr as $o => $li) { if (!$order) { $order = $o; } $html .= $li; } if ($label != 'user') { $html .= "\t\t</ul>\n"; $nav[$order] = $html; } else { $userLi[] = $html; } } ksort($nav); // Sort to put in correct order (mainly to get dropdowns in right place) if ($loggedin == 1) { echo "<ul class=\"nav pull-right\">"; echo "<li class=\"dropdown\">"; echo "<a href=\"#\" class=\"dropdown-toggle nocheck\" data-toggle=\"dropdown\">"; echo "<i class=\"icon-user\"></i> {$this->user}"; echo "<b class=\"caret\"></b>"; echo "</a>"; if (isset($userLi)) { echo "<ul class=\"dropdown-menu\">"; foreach ($userLi as $li) { echo $li; } echo "</ul>"; } echo "</li>"; echo "</ul>"; } else { $_SESSION['csrfToken'] = $token = base64_encode(openssl_random_pseudo_bytes(32)); echo <<<_END \t\t\t\t<form class="pull-right form-inline nomargin nomand" action="login.php" method="post"> \t\t\t\t<input type="text" name="username" class="input-small" placeholder="Username"/> \t\t\t\t<input type="password" name="password" class="input-small" placeholder="Password"/> \t\t\t\t<input type="hidden" name="csrfToken" value="{$token}"/> <button type="submit" class="btn nocheck">Sign in</button> \t\t\t\t</form> _END; } echo <<<_END <a class="btn btn-navbar" style="float:left;" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> _END; echo "<a class=\"brand\" href=\"index.php\"><img class=\"noie\" src=\"favicon-32x32.png\" />{$this->getTitle()}</a>"; echo "<div class=\"nav-collapse\">"; echo "<ul class=\"nav\">\n"; foreach ($nav as $html) { echo $html; } echo '</ul>'; echo "</div>"; echo "</div>"; echo "</div>"; echo "</div>"; }