[英]How Do I make it where only an Admin or a Manager User type can see a Navigation Link
[英]How can I edit navigation bar to take out a link when admin user signs in?
登录或注册之前的导航具有以下链接:主页,博客,撰写博客,登录,注册,
普通用户登录时,导航链接将更改为:您好(用户名),主页,博客,撰写博客,注销,
当管理员登录导航时,显示以下内容:您好(用户名),主页,博客,写博客,管理员,注销,
我的问题是,当管理员登录时,我想删除“写博客”链接。关于如何修改我的代码以实现此目的的任何建议都很好。 以下是header.php中的HTML&Php代码:
<header>
<div class="wrap-header zerogrid">
<div id="logo"><a href="/"><img src="/assets/images/logo_blog.png"/></a></div>
<nav>
<div class="wrap-nav">
<div class="menu">
<ul class="list-unstyled">
<? if ($_SESSION['user']['first_name']): ?>
<li><a href="#"><i class="icon fa fa-user"></i> Hello <?= $_SESSION['user']['first_name'] ?></a></li>
<? endif ?>
<li><a href="/"><i class="icon fa fa-home"></i> Home</a></li>
<li><a href="/blog"><i class="icon fa fa-book"></i> Blog</a></li>
<li><a href="/payment"><i class="icon fa fa-pencil"></i> Write a Blog</a></li>
<? if ($_SESSION['user']['level'] >= 2): ?>
<li><a href="/admin"><i class="icon fa fa-pencil"></i> Admin</a></li>
<? endif ?>
<? if ($_SESSION['user']['first_name']): ?>
<li><a href="?action=logout"><i class="icon fa fa-sign-in"></i> Logout</a></li>
<? else: ?>
<li><a href="/sign_in"><i class="icon fa fa-sign-in"></i> Login</a></li>
<li><a href="/register"><i class="icon fa fa-pencil"></i> Register</a></li>
<? endif ?>
</ul>
</div>
</div>
</nav>
</div>
</header>
这可能很简单,我确实会使事情变得过于复杂! 先感谢您。
这是一种在处理标记内容之前设置和验证变量的方法。 可以提供清晰,干净的代码。
<?php
// 1. get session user object
$user = (isset($_SESSION['user'])) ? $_SESSION['user'] : null;
// 2. set vars
if($user) {
if(isset($user['first_name'])) {
$first_name = $user['first_name'];
}
if(isset($user['level'])) {
$level = $user['level'];
}
}
// 3. set flag (optional) or access $level directly
if(isset($level)) {
$isAdmin = ($level === "Admin") ? true: false;
}
// normal user: Hello (name of user), Home, Blog, Write a blog, Logout,
// admin logs : Hello (name of user), Home, Blog, Write a blog, Admin, Logout,
?>
和标记...
<header>
<div class="wrap-header zerogrid">
<div id="logo"><a href="/"><img src="/assets/images/logo_blog.png"/></a></div>
<nav>
<div class="wrap-nav">
<div class="menu">
<ul class="list-unstyled">
<!-- code omited -->
<?php
if(isset($isAdmin) and $isAdmin) {
// display markup for Admin <li>
}
?>
</ul>
</div>
</div>
</nav>
</div>
</header>
希望这可以帮助。
谢谢您的回复。 使用if语句确实可以解决简单的问题:
<nav>
<div class="wrap-nav">
<div class="menu">
<ul class="list-unstyled">
<? if ($_SESSION['user']['first_name']): ?>
<li><a href="#"><i class="icon fa fa-user"></i> Hello <?= $_SESSION['user']['first_name'] ?></a></li>
<? endif ?>
<li><a href="/"><i class="icon fa fa-home"></i> Home</a></li>
<li><a href="/blog"><i class="icon fa fa-book"></i> Blog</a></li>
<? if ($_SESSION['user']['level'] < 2): ?>
<li><a href="/payment"><i class="icon fa fa-pencil"></i> Write a Blog</a></li>
<? else: ?>
<li><a href="/admin"><i class="icon fa fa-pencil"></i> Admin</a></li>
<? endif ?>
<? if ($_SESSION['user']['first_name']): ?>
<li><a href="?action=logout"><i class="icon fa fa-sign-in"></i> Logout</a></li>
<? else: ?>
<li><a href="/sign_in"><i class="icon fa fa-sign-in"></i> Login</a></li>
<li><a href="/register"><i class="icon fa fa-pencil"></i> Register</a></li>
<? endif ?>
</ul>
</div>
</div>
</nav>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.