为了在后台添加一些新的功能,因此有必要在左侧栏的菜单添加新的菜单项
在用chrome点击查看源代码时,发现地址栏写着localhost/shop8/admin/index.php?act=menu。
估计左侧菜单就是在admin/index.php里的act=menu部分的代码生成的
追踪到这部分的代码,发觉先是进入到了amin/include/inc_menu.php里面
在这里面定义了一个数组modules
这个数组是2维数组,其中每个二维数组定义了相关的链接地址
接下来是进入admin/include/inc_priv.php
在这个文件里也是定义了一个数组,purview
这个数组建立了跟权限有关的映射
接下来在foreach循环里
$menus[$key]['label'] = $_LANG[$key];定义了菜单的显示文字
在循环里,同时用admin_priv函数判断是否拥有指定的权限,如果有,则将$module的相关参数复制给$menu,否则跳过
在admin/includes/lib_main.php中可以找到admin_priv函数
追踪到里面,发现admin_priv函数并没有通过数据库来判断,而是通过session来判断是否拥有相关权限
$_SESSION['action_list']即相关的session
在lib_main.php中搜索$_SESSION['action_list']发现
$_SESSION['action_list']在函数set_admin_session中设置
使用文件搜索的方式,得出set_admin_session在文件admin/privilege.php中被调用
在privilege.php的$_REQUEST['act'] == 'signin'部分调用了该函数
从这部分代码中,可以得到权限是在表admin_user中的字段action_list中被定义的
追踪到这里,可以得知,只要修改
admin/includes/inc_menu.php
admin/includes/inc_priv.php
languages/zh_cn/admin/common.php
languages/en_us/admin/common.php
languages/zh_tw/admin/common.php
即可给左边菜单栏添加一项。