菜单管理有两个作用:
~~~
管理后台的菜单
生成用于权限控制的节点
~~~
![2015-08-04/55c023429ba0a](https://box.kancloud.cn/2015-08-04_55c023429ba0a.png)
### **新增/编辑**
![2015-08-04/55c0234ef3966](https://box.kancloud.cn/2015-08-04_55c0234ef3966.png)
菜单如果设置为**顶级菜单**,那么该菜单将出现在后台导航条.
菜单如果设置为其他菜单的子菜单,那么该菜单出现在其父菜单页面的**左侧菜单栏.**
其他页面,例如新增页,编辑页,也需要设置菜单。这样在进入这些页面后才会显示左侧菜单。
例如,导航管理的菜单设置分三层设置:"系统"->"导航管理"->"新增|编辑|排序"
设置分组名后,左侧的菜单可以分组显示,同一分组的菜单将显示在同一个组名下.
如果只是为了生成用于**权限控制****的节点**,而不需要出现在菜单中,那么选择**隐藏**
如果菜单设置了**仅开发者模式可见**,那么当关闭开发者模式后,该菜单不会显示.
### **动态扩展**
有的时候,我们希望在当前页面的做出显示一些动态的菜单(程序里控制显示隐藏和接收一些动态的参数)。
这个时候,就可以给控制器的_initialize方法里 添加_extra_menu模板变量。这部分的菜单是没法权限管理的,后台菜单和权限管理均不显示这部分菜单。
比如 扩展下面插件后台列表就是这么扩展出来的。
~~~
$this->assign('_extra_menu',array(
'已装插件后台'=> D('Addons')->getAdminList(),
));
'已装插件后台'=>array(0=>array('title'=>'菜单名','url'=>'url'))
~~~
这种 扩展至一个分组里。
- 准备
- 概览
- 获取
- 安装
- 后台管理
- 首页
- 内容
- 系统
- 网站设置
- 配置管理
- 菜单管理
- 分类管理
- 模型管理
- 导航管理
- 数据备份
- 扩展
- 用户
- 用户信息
- 用户行为
- 行为日志
- 权限管理
- 应用
- 架构设置
- 应用架构及目录结构
- 独立模型
- 插件设计
- 用户行为设计
- 权限设计
- 文档模型设计
- 分类设计
- 二次开发
- 命名规范与编码规范
- 数据字典
- 公共函数和库函数使用规范
- 模板开发指南
- 权限管理指南
- 插件开发指南
- 什么是插件?
- 什么是钩子?
- 插件的开发流程
- 插件后台的开发
- 插件开发注意事项
- 模型扩展开发指南
- 独立模型扩展
- 文档模型扩展
- 附录
- 配置参考
- 函数库参考
- Common函数库
- admin函数库
- Home函数库
- 类库参考