コード例 #1
0
ファイル: ecrflib.php プロジェクト: uhtoff/eCRF
    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>";
    }