Intereting Posts
Установите тайм-аут для конкретной функции / блока кода (не весь скрипт)? WP: AesManaged encryption vs. mcrypt_encrypt Возможно ли создать фальшь вне тестового примера в PhpUnit? Страница регистрации: сохранение пароля с использованием PHPASS Строгие стандарты: только переменные должны назначаться по ссылке PHP 5.4 Как разделять слова, используя php? Редактирование XML с помощью PHP. Почему работает только первый раз? 500 Ошибка сервера: преждевременный конец заголовков сценариев: загрузка изображения в форму с помощью codeigniter / ajax Как мы можем изменить непрозрачность и затенение шрифта в функции imagettftext? Вставить значение динамического значения выбора в базу данных Mysql и показать отправленное сообщение Как анализировать фактический HTML со страницы с помощью CURL? Музыкальное распознавание и обработка сигналов Сортировка ассоциативного массива в PHP Каков наилучший способ сериализации SVG из DOM клиента?

Изменение navbar в bootstrap, если вход в систему

У меня есть стандартное меню, включая опцию «logging» in и «create user». Я хочу, чтобы при создании пользователя или при вводе всего меню навигации, чтобы изменить его, скажем, «Моя страница пользователя» и «выход из системы», как я могу это сделать?

<div id="menu"> <nav class="navbar"> <div class="container"> <ul class="nav navbar-nav"> <li class="active"><a href="#"><span class="glyphicon glyphicon-home"> </span> Home</a></li> <li><a href="#">Descuentos</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Categories<span class="caret"/></a> <ul class="dropdown-menu"> <li><a href="#">Cat A</a></li> <li><a href="#" >Cat B</a></li> <li><a href="#">Cat C</a></li> </ul> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="createaccount.php"><span class="glyphicon glyphicon-user"></span>Create account</a></li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a> <ul class="dropdown-menu" role="menu"> <li> <form class="form-horizontal" role="form" action="tienda.php" method="POST"> <div class="form-group"> <label class="control-label col-md-4" for="nombre">User:</label> <div class="col-md-8"> <input type="text" class="form-control" name="loginUser" required> </div> <label class="control-label col-md-4" for="nombre">Pass:</label> <div class="col-md-8"> <input type="password" class="form-control" name="loginPass" required> <br> </div> <div class="col-md-5"></div> <button type="submit" class="btn btn-default col-md-5">Log In</button> </div> </form> </li> </ul> </li> </ul> </div> </nav> </div> 

В принципе, изменение

 <ul class="nav navbar-nav navbar-right"> <li><a href="createaccount.php"><span class="glyphicon glyphicon-user"></span>Create account</a></li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a> <ul class="dropdown-menu" role="menu"> <li> <form class="form-horizontal" role="form" action="tienda.php" method="POST"> <div class="form-group"> <label class="control-label col-md-4" for="nombre">User:</label> <div class="col-md-8"> <input type="text" class="form-control" name="loginUser" required> </div> <label class="control-label col-md-4" for="nombre">Pass:</label> <div class="col-md-8"> <input type="password" class="form-control" name="loginPass" required> <br> </div> <div class="col-md-5"></div> <button type="submit" class="btn btn-default col-md-5">Log In</button> </div> </form> </li> </ul> </li> </ul> 

к этому:

 <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" href="#"><span class="glyphicon glyphicon-user"></span>Nombre USUARIO</a> <ul class="dropdown-menu" role="menu"> <li><a href="#">Mi página</a></li> <li><a href="#"><span class="glyphicon glyphicon-shopping-cart"></span> Carrito</a></li> </ul> </li> <li><a href="#"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li> </ul> 

Каков наилучший способ сделать это?

Solutions Collecting From Web of "Изменение navbar в bootstrap, если вход в систему"

Так я обычно это делаю:

 <?php if($logged_id){ include 'menu_authenticated.php'; } else{ include 'menu_unauthenticated.php'; } ?> 

И, конечно, эти файлы будут иметь свои меню соответственно //menu_unauthenticated.php

 <ul class="nav navbar-nav navbar-right"> <li><a href="createaccount.php"><span class="glyphicon glyphicon-user"></span>Create account</a></li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a> <ul class="dropdown-menu" role="menu"> <li> <form class="form-horizontal" role="form" action="tienda.php" method="POST"> <div class="form-group"> <label class="control-label col-md-4" for="nombre">User:</label> <div class="col-md-8"> <input type="text" class="form-control" name="loginUser" required> </div> <label class="control-label col-md-4" for="nombre">Pass:</label> <div class="col-md-8"> <input type="password" class="form-control" name="loginPass" required> <br> </div> <div class="col-md-5"></div> <button type="submit" class="btn btn-default col-md-5">Log In</button> </div> </form> </li> </ul> </li> </ul> 

//menu_authenticated.php

 <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" href="#"><span class="glyphicon glyphicon-user"></span>Nombre USUARIO</a> <ul class="dropdown-menu" role="menu"> <li><a href="#">Mi página</a></li> <li><a href="#"><span class="glyphicon glyphicon-shopping-cart"></span> Carrito</a></li> </ul> </li> <li><a href="#"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li> </ul> 

Не сказать, что это «способ» сделать это. Но это один из вариантов. Этот вариант включает в себя создание некоторых функций PHP. Один, который выводит «вышли из системы», а также выводит «в журнал».

А потом просто вместо того, чтобы иметь mesy, у вас будет этот код:

 <?php if($loggedIn) renderLoggedInMeny(); else renderLoggedOutMeny(); ?> 

Эти функции могут выглядеть примерно так:

 function renderLoggedInMeny() { echo <<<EOT <ul class="nav navbar-nav navbar-right"> <li... [and so on] EOT; } 

В приведенном ниже коде я буду притворяться, что у вас есть isLogged() которая возвращает true, если пользователь вошел в систему и false, если нет. Это то, что вы могли бы сделать в своем навигационном коде:

 <?php if(isLogged()): ?> <li><a href="profile.php">Profile</a></li> <li><a href="logout.php">Logout</a></li> <?php else: ?> <li><a href="login.php">Login</a></li> <li><a href="register.php">Register</a></li> <?php endif; ?> 

Конечно, код между условиями PHP может измениться, вы можете поместить свои элементы ul напрямую, а не только li как я, – это только для демонстрации.