这节主要讲超级管理员如何在后台添加、删除、修改管理组,代码比较多。
在“admin_menu.php”配置文件中,添加这两个菜单参数
“管理组”、“管理员”增删查改的功能全部写到group控制器中。前面写权限访问方法时,
整个group控制器只有超级管理员才可以访问。所以只有超级管理员才可以增删查改管理组。
1)查看管理组代码
在group控制器定义index方法,19行_select方法,是楠神在AllCommon控制器中定义的一个公共查询多行列表的方法,后面用的多,所以我就直接打包成了一个方法。
说明:
97行paginate方法来自Query类,这是TP框架已写好的分页方法。如果不喜欢用TP框架自带的分页方法,我们可自己在扩展类中写一个分页类,然后调用。
2)添加管理组代码
上图是添加页面,URL中参数action_type=1很重要,看下面的代码:
说明:
添加功能入口方法还是index,参数action_type=1可让程序执行14行代码,从而进入_addGroup方法。
在添加页面表单中有个“is_post”参数,主要是让程序辨别当前是显示添加页面还是处理添加数据。
为什么把入口方法设为index?
后面楠神把很多的一组功能都设置了一个入口方法,其目的方便控制权限。
27行执行“AdminGroup”模型类的insert方法
有关数据的各种验证全写在了模型类中。
备注:
“AdminLogs”模型类是新添加的一个管理员操作日志表模型类,主要记录管理员的增删改操作记录。像这样的日志记录可以起到追责的作用,谁做了什么事都可以查到。
3)删除管理组代码
15行_ajaxDel是一个公共方法
4)修改管理组代码
重点强调:
89行是添加更新条件的代码,这行代码必须写到执行“_getPostData”方法的后面,这是因为在“_getPostData”方法29行代码执行了s_exist函数。
s_exist是楠神定义的一个查询相同条件的函数,在函数中有用到模型对象的where方法、value方法。
当一个模型对象value方法被执行,模型对象where方法添加的条件会被清空。“AdminGroup”模型类89行添加的条件是“更新条件”,为了不让s_exist函数中value方法清空了“更新条件”,所以要把添加“更新条件”的代码写到执行“_getPostData”方法的后面。
本节内容文字描述有限,就写这些,大家要仔细去看代码。