php - 如何根据用户的角色从侧面导航栏中隐藏/删除选项? (最佳实践)

标签 php html css tinybutstrong

环境:PHP/5.5.6

我为侧边导航栏定义了 2 个 *.html 文件,一个用于 Angular 色 A,一个用于 Angular 色 B。两者之间有相似之处,我想将相似之处合并到一个文件中,并包括当用户登录时,基于 Angular 色的不同选项。

即:

  • 侧边导航栏有 5 个选项。选项 1 到选项 5。
  • Angular 色 A 可以访问选项 1 - 选项 4。
  • Angular 色 B 可以访问选项 1 - 选项 3 和选项 5。

当前用户登录,调用的文件基于用户的 Angular 色,但如果 Angular 色被扩展,则每个 Angular 色将需要另一个文件。我不喜欢这种方法,因为它会膨胀,有时一个简单的更改会导致多个文件发生更改 - 既不好玩也不好看。

  1. 我考虑过将所有选项放在一个文件中并使用 CSS display:block 或 :none 与 javascript/jquery 一起显示 用户所需的功能。我不知道这是不是最好的 方法。即使元素不可见,但这些元素的 html 如果查看源代码,选项是可见的。

  2. 我还考虑过 TinyButStrong 将元素添加到基于 用户的 Angular 色,元素将包含在它自己的文件中。我 我不确定这种方法是如何工作的,因为我正在寻找 合并(添加)侧面导航菜单上的单个元素。目前我是 使用 TBS 包含整个 div 而不是详细的单个元素 下面。

ie side nav option html 文件包含

<li><a href="/page5">Option 5</a></li>  <!-- another file would have option 4 -->

基础侧导航 *html

<ul>
    <li><a href="/page1">Option 1</a></li>
    <li><a href="/page2">Option 2</a></li>
    <li><a href="/page3">Option 3</a></li>
    <!-- insert Option 5 or Option 4 here -->
</ul>

哪种方法最好,或者我应该采用另一种方法吗?如果上述方法不好,为什么?

希望此时有人可以帮助和/或指导我。

最佳答案

将 *.html 文件的内容移动到一个 *.php 文件中,然后使用 php 概述的 Angular 色在该文件中排除/包含菜单项。

例如:

<?php
    if (roles->getUserRole(reports)) { echo "<li><a href='/page5'>Reports</a></li>"; }
?>

当然你会使用你的 HTML 菜单结构和权限类等,上面只是一个例子....

关于php - 如何根据用户的角色从侧面导航栏中隐藏/删除选项? (最佳实践),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729457/

相关文章:

php - 在 PHP 服务器上隐藏/记录错误是个好习惯吗?

javascript - 判断一个点是否在一条直线上

javascript - jquery - 使用 .height()

javascript - 如何从子弹出窗口的下拉框中抓取 MySQL 记录的多个字段,并将这些值插入到父页面的多个字段中?

Javascript/css 照片弹出功能放置问题

css - 如果我设置显示 :block on a <span>,,它现在是一个 block 级元素吗?

php - MYSQL 在另一个表中返回具有列关系数的行

php - 获取选中复选框的ID

php - 从 php 代码创建一个 cytoscape 树

css - 换页容器内的全宽 &lt;header&gt;