PHPCMS不显示无权限栏目对应的左侧菜单
2012-06-05 00:00
381 查看
PHPCMS可以给某些角色设定权限,比如某些栏目对于某些角色是无法访问的。但是左侧菜单还是会显示该栏目名称,这对编辑来说是不需要的。都访问不了,还显示栏目名称干啥呢。看了一下PHPCMS的代码,简单地实现了隐藏菜单的小功能。
从后台页面可以很简单地分析出,左侧菜单的生成是用Ajax:
请求的地址是 http://www.nowamagic.net/admin.php?mod=phpcms&file=menu&action=get_menu_list&menuid=4
在URL参数中,file是指请求的控制器文件,这里menu就是指 admin/menu.inc.php这个文件,action 则是方法。我们找到 menu.inc.php 下的 get_menu_list 方法:
将其改为:
代码存在投机性,但大概思路就是这样。
从后台页面可以很简单地分析出,左侧菜单的生成是用Ajax:
$.ajax( { type:'get', url:'?mod=phpcms&file=menu&action=get_menu_list&menuid='+id, cache:cache_refresh, dataType:'json', success:function(json) { …… } }
请求的地址是 http://www.nowamagic.net/admin.php?mod=phpcms&file=menu&action=get_menu_list&menuid=4
在URL参数中,file是指请求的控制器文件,这里menu就是指 admin/menu.inc.php这个文件,action 则是方法。我们找到 menu.inc.php 下的 get_menu_list 方法:
case 'get_menu_list': $data = $m->get_child($menuid); $data = str_charset(CHARSET, 'utf-8', $data); $max = array_slice($data, -1); $data['max'] = $max[0]['menuid']; $data = json_encode($data); if(PHP_OS < 5.0) header('Content-type: text/html; charset=utf-8'); echo $data; break;
将其改为:
case 'get_menu_list': $data = $m->get_child($menuid); foreach($data as $k=>$val) { if( !empty($data[$k]['keyid']) && substr( $data[$k]['keyid'], 0, 5 ) == 'catid' ) { if( $data[$k]['keyid'] == 'catid_0' ) { continue; } $catid = str_replace("catid_", "", $data[$k]['keyid']); // 管理权限 $allow_manage = $priv_role->check('catid', $catid, 'manage'); if(!$allow_manage) { unset($data[$k]); } } } $data = str_charset(CHARSET, 'utf-8', $data); $max = array_slice($data, -1); $data['max'] = $max[0]['menuid']; $data = json_encode($data); if(PHP_OS < 5.0) header('Content-type: text/html; charset=utf-8'); echo $data; break;
代码存在投机性,但大概思路就是这样。
相关文章推荐
- phpcms后台菜单(无对应菜单)无权限问题解决方案
- PHPCMS V9 导航显示二级菜单,显示相邻栏目,内容页显示二级栏目
- 左侧导航菜单 子菜单的显示隐藏效果
- 省市二级菜单联动,下部显示对应相关内容(类宝岛眼镜)
- 打开首页,是SlidingMenu,想默认直接显示左侧的菜单(listview)而不是内容页(content
- 同一界面挂多个菜单,利用权限控制菜单的显示
- php左侧分类列表显示菜单
- OA权限模块根据用户权限显示不同的菜单
- Phpcms 详情页显示所属栏目的同级栏目
- 052医疗项目-模块五:权限设置-实现根据用户显示不同的菜单
- 后台左侧菜单点击上下滑动显示jquery
- CSS简洁的左侧菜单(侧拉菜单,向右显示)
- PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)
- Extjs实现菜单下拉和鼠标右键菜单(加入系统菜单权限判断,有权限则显示,无反之)
- 根据用户权限,动态显示用户菜单
- Thinkphp—发布文章时显示所有的栏目及其对应子栏目-示例如下
- 【phpcms-v9】如何在频道页面动态显示当前频道各个子栏目的部分信息
- 通过配置Sitemap实现对左侧菜单的权限控制
- [转载内容]动态创建菜单,menustrip,根据权限显示菜单,控制菜单可用,反射,给窗体传值,反射对象传值,public static Object CreateInstance ( Type type, params Object[] args )
- CSS简洁的左侧菜单(侧拉菜单,向右显示)