ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 菜单管理 > 菜单管理有两个作用 > > 1. 管理后台的菜单 > 2. 生成用于权限控制的节点 ![选区_011](http://document.onethink.cn/Uploads/Editor/2013-12-16/52aec4df3ae52.png) # 新增/编辑 ![选区_013](http://document.onethink.cn/Uploads/Editor/2013-12-16/52aec5dba24b2.png) * 菜单如果设置为**顶级菜单**,那么该菜单将出现在后台导航条. * 菜单如果设置为其他菜单的子菜单,那么该菜单出现在其父菜单页面的**左侧菜单栏**. * 其他页面,例如新增页,编辑页,也需要设置菜单。这样在进入这些页面后才会显示左侧菜单。 例如,导航管理的菜单设置分三层设置:`"系统"->"导航管理"->"新增|编辑|排序"` * 设置分组名后,左侧的菜单可以分组显示,同一分组的菜单将显示在同一个组名下. * 如果只是为了**生成用于权限控制的节点**,而不需要出现在菜单中,那么选择**隐藏** * 如果菜单设置了**仅开发者模式可见**,那么当关闭开发者模式后,该菜单不会显示. # 动态扩展 有的时候,我们希望在当前页面的做出显示一些动态的菜单(程序里控制显示隐藏和接收一些动态的参数)。 这个时候,就可以给控制器的`_initialize`方法里 添加`_extra_menu`模板变量。这部分的菜单是没法权限管理的,后台菜单和权限管理均不显示这部分菜单。 比如 扩展下面插件后台列表就是这么扩展出来的。 ~~~ $this->assign('_extra_menu',array( '已装插件后台'=> D('Addons')->getAdminList(), )); '已装插件后台'=>array(0=>array('title'=>'菜单名','url'=>'url')) ~~~ 这种 扩展至一个分组里。