通用后台菜单配置

Source:phpbone.com  Author:IT柏拉图
2013-11-25

    通用后台菜单配置,涉及两个方面的信息,一方面是直接显示的管理菜单,另一方面是隐藏给权限管理的控制器头和不显示在菜单的子事件名称,XML基本格式如下:

  1. <!-- //不显示的项,用于前置app声明 --> 
  2. <menu name='APP声明' display='none'>  
  3.     <node appname='管理中心' ct='index'> 
  4.         <!-- //这里的子菜单为隐性项目 --> 
  5.         <item name='主框架页' url='' ct='index' ac='index' /> 
  6.     </node> 
  7.     <node appname='帐号管理'  ct='users'></node> 
  8.     <node appname='系统管理'  ct='system'></node> 
  9.     <node appname='调试开发'  ct='debug'></node> 
  10.     <!--appname--> 
  11. </menu> 
  12.  
  13. <!-- //正常的菜单项  --> 
  14. <menu name='常用'>  
  15.  <node name='内容管理'> 
  16.       <item name='分类模型管理' url='' ct='catalog' ac='model' /> 
  17.       <!--appitem--> 
  18.   </node> 
  19.   <node name='常用操作'> 
  20.        <item name='系统帐号管理' url='' ct='users' ac='index' /> 
  21.        <item name='系统配置管理' url='' ct='system' ac='config_list' /> 
  22.        <item name='修改密码' url='' ct='users' ac='editpwd' /> 
  23.   </node> 
  24. </menu> 
  25.  
  26. <menu name='系统'>  
  27.   <node name='帐号管理'> 
  28.     <item name='系统帐号管理' url='' ct='users' ac='index' /> 
  29.     <item name='组权限管理' url='' ct='users' ac='edit_purview_groups' /> 
  30.     <item name='我的权限' url='' ct='users' ac='mypurview' default='1' /> 
  31.     <item name='修改密码' url='' ct='users' ac='editpwd' /> 
  32.   </node> 
  33.   <node name='系统管理'> 
  34.     <item name='后台菜单配置' url='' ct='system' ac='edit_admin_menu' /> 
  35.     <item name='系统配置管理' url=''' ct='system' ac='config_list/> 
  36.     <item name='登录IP限制' url='' ct='system' ac='edit_iplimit' /> 
  37.     <item name='操作日志' url='' ct='system' ac='oplog' /> 
  38.     <item name='登录日志' url='' ct='system' ac='login_log' /> 
  39.   </node> 
  40.   <node name='开发调试'> 
  41.      <item name='CRUD向导' url='' ct='debug' ac='lurd' /> 
  42.      <item name='模板标签测试' url='' ct='debug' ac='tpltest' /> 
  43.      <item name='数据库文档' url='' ct='debug' ac='dbinfos' /> 
  44.   </node> 
  45. </menu> 

menu节点有两项目,第一个menu项纯粹是用来声明app的,并不显示在菜单里,它会出现在如下图的权限管理的位置:
 


如果后面的菜单,有声明的子事件,可以不需要在顶上的菜单重复声明。
其它的每个 menu项,都表示一个大分类节点,然后node为二级节点,最后的item才是最重的元素项,最终效果如下:
 


item子项,没指定url的情况下,默认用 ?ct=ct&ac=ac 作为url,有指定url,则以这个url为准,这种处理方式,可以针对某些使用了lurd的应用,例如说:
<item name='新增文档' url='?ct=doc&even=add' ct='doc' />
当然,但使用lurd的,菜单可以通过虚拟ac作为区别用户权限依据,需自行解决同一模块不同子事件需要不同权限的情况。
 

分享到: