ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
为了控制有权限限制的菜单显示、隐藏问题,特意扩展了标签库,自定义标签放在 `admin/taglib/Tp.php` 文件里,如果需要继续扩展可以自己在里扩展 ## 主要标签 ### access 权限控制 使用 `tp:access` 写闭合标签,可选属性有 `action`、`controller`、`module`,不填写默认为当前方法、控制器、模块,多级控制器要使用点语言,例如 `{tp:access action='foo' controller='one.two.three.Forth'} Your Content {/tp:access}`,下面是一个完整示例: ``` {tp:access action='add'} <a class="btn btn-primary radius" href="javascript:;" onclick="layer_open('添加','{:\\think\\Url::build(\'add\')}')"><i class="Hui-iconfont">&#xe600;</i> 添加</a> {/tp:access} ``` >[danger] 需要控制权限的页面菜单必须放在该标签内,否则菜单显示但实际上没有权限,点击后会出现权限错误问题,体验不好 ### widget 小组件 使用 `tp:widget` 写半闭合标签,必填属性有 `url`,为分层控制器 `widget` 的地址,选填属性有 `param`,默认值为空数组,可传参数为数组,例如: ``` {tp:widget url="Index/menu" param="['list' => $item]" /} ``` 调用了 `app\admin\widget\Index` 下的 `menu()` 方法 ### menu 菜单 使用 `tp:menu` 写半闭合标签,可选属性有 `menu`、`url`、`title`。 `menu` 表示需要显示的菜单,多个菜单以半角逗号隔开,默认为 `add,forbid,resume,delete,recycleBin` ,可调整名称顺序从而调整菜单顺序,其他的菜单还有 `recycle`、`deleteForever`、`clear`、`sedit`、`sdelete`,`srecycle`、`sdeleteForever`,其中菜单前面有 `s` 的表示用于表格内部的小菜单,一般是需要传递参数的,其他表示表格上面的选项菜单,一般用于批量操作,不需要指定参数; `url` 参数表示对应 `menu` 的链接,多个以半角逗号隔开,分别对应相应的 `menu` 里的链接,例如 `menu='add,forbid,resume'` `url=',forbid:id=$vo.id&pid=$vo.pid'`,即需要使用默认链接的菜单直接使用半角逗号,需要自定义的链接需要使用 `方法名:param1=value1&param2=value2` 这种格式设置链接,如果不需要传递参数,可以省略参数,例如 `url='add'`,使用参数时在方法名后面使用 `:` 连接,后面使用 `参数名=参数值` 的格式传递参数,其中参数值支持字符串、变量,例如 `add:id=$vo.id` , `add:id=1` , `add:id=$vo.id ?? 1` , `add:id=$Request.param.id` ,你还可以使用函数,例如 `add:id=:time()` ,`add:id=:time()&id2=$Think.config.foo`; `title` 参数表示对应 `menu` 的标题,多个标题以半角逗号隔开,分别对应相应的 `menu` 里的标题,例如 `{tp:menu menu='add' url='add:pid=$Request.param.pid' title='添加节点' /}`, `{tp:menu menu='add,forbid,resume,add' url=',,,load:id=$Request.param.id' title=',,,批量导入节点' /}`