# 七、后台构建器AdminBuilder系列
后台管理页面
为了方便开发者开发自己的模块,我们设计了一套自动构建后台模板的机制,其中包括了配置页面(AdminConfigBuilder),列表页面(AdminListBuilder),以及排序页面(AdminSortBuilder),以后还会继续增加新的辅助页面,并完善各页面的功能。
通过AdminBuilder系列的类库,可以轻松构建后台界面,解放Phper,Phper的双手天生就是来写php的,不要和我提html!权限约定
凡是涉及到表单的提交,尽可能提交到本页面,通过IS_POST判断是否为表单提交。这样可以节省一次提交。
如不这么做,必须在菜单配置里加入该url的菜单,并设为隐藏,否则权限无法赋予。
AdminConfigBuilder的设计亮点
1.采用了类库的方式,大大增加了ConfigBuilder的适用面,有朋友甚至移植到前台页面实现表单的自动生成。
2.类的定义方式,可以被IDE感知,可以自动提示参数的填写。
这套完整的后台界面生成机制,让后台无需大前端参与,仅仅是phper就可完成。举例说明:
比如打算实现以下一个管理页面,但不想写任何Html代码,就是这么任性。
下面是实现代码,纯PHP
当然,AdminBuilder不仅仅于此,还可以轻松实现多种UI界面。
AdminConfigBuilder
1.配置页面 AdminConfigBuilder
作用: 生成配置页或者生产表单。
通用方法
标题
public function title($title)
标题修改是修改当前页面的主内容的标题部分的文字,同时也会修改浏览器标题栏中的文字
字段填充
隐藏表单文本
1 public function keyHidden($name, $title 【标题】, $subtitle = null 【子标题】)
只读文本
1 public function keyReadOnly($name, $title 【标题】, $subtitle = null 【子标题】)
单行文本输入框
1 public function keyText($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
多行文本输入框
1 public function keyTextArea($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
整数输入框
1 public function keyInteger($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
用户UID输入框
1 public function keyUid($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
状态选择框
1 public function keyStatus($name = 'status' 【键名,默认为status】, $title = '状态' 【标题】 , $subtitle = null 【副标题】)
下拉列表框
1 public function keySelect($name 【键名】, $title 【标题】, $subtitle = null 【副标题】, $options 【选项】)
【选项】为键值对的形式如:
1 array(1=>'中国',2=>'美国');
单选框
1 public function keyRadio($name 【键名】, $title 【标题】, $subtitle = null 【副标题】, $options【选项】)
【选项】为键值对的形式如:
1 array(1=>'中国',2=>'美国');
多选框
1 public function keyCheckBox($name 【键名】, $title 【标题】, $subtitle = null 【副标题】, $options【选项】)
【选项】为键值对的形式如:
1 array(1=>'中国',2=>'美国');
富文本输入框
1 public function keyEditor($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
时间输入框
1 public function keyTime($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
创建时间输入框
1 public function keyCreateTime($name = 'create_time' 【键名】, $title = '创建时间' 【标题】, $subtitle = null 【副标题】)
逻辑是否输入框
1 public function keyBool($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
更新时间框
1 public function keyUpdateTime($name = 'update_time' 【键名】, $title = '修改时间' 【标题】, $subtitle = null 【副标题】)
看板组件
1 public function keyKanban($name 【键名】, $title 【标题】, $subtitle=null 【副标题】)
看板组件效果如图
解析看板数组
1 public function parseKanbanArray($data 【配置的信息】,$item=array()【传入的选项】,$default=array()【默认值】)
其中数组的标准数据格式为array('data-id'=>【】,'title'=>【】); 同时可直接传进键值对。
多选框组件
1 public function keyChosen($name 【键名】, $title 【标题】, $subtitle = null 【副标题】, $options 【选项】)
多选框组件效果如图
同时支持模糊搜索
输入组组件
1 public function keyMultiInput($name 【键名】,$title【标题】,$subtitle【副标题】,$config【配置信息】,$style【样式:默认为"width:400px;"】)
输入组使用示例:
$config = array(
array('type'=>'text','style'=>'width:295px;margin-right:5px'),
array('type'=>'select','opt'=>$this->getTimeUnit(),'style'=>'width:100px')
);
$builder->keyMultiInput('time_number,time_unit','时间单位','时间单位',$config);
效果如图:
标题输入框
1 public function keyTitle($name = 'title' 【键名】, $title = '标题' 【标题】, $subtitle = null 【副标题】)
ID输入框
1 public function keyId($name = 'id' 【键名】, $title = '编号' 【标题】, $subtitle = null 【副标题】)
单用户选择框
1 public function keySingleUserGroup($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
多用户选择框
1 public function keyMultiUserGroup($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
单图上传
1 public function keySingleImage($name 【键名】, $title 【标题】, $subtitle = null 【副标题】)
多图上传
1 public function keyMultiImage($name 【键名】, $title 【标题】, $subtitle = null 【副标题】,$limit='' 【限制】)
城市选择框
1 public function keyCity($title 【标题】,$subtitle 【副标题】)
配置项分组
配置项分组的效果如下
对配置项进行分组,产生一个分组
1 public function group($name 【组名】,$list = array() 【字段列表】)
对配置项进行分组,批量设置全部的分组
1 public function groups($list = array() 【配置项分组列表】)
填充数据
填入数据
1 public function data($list 【数据对象】)
【数据对象】是数组形式的,一般为数据库中某个记录
添加按钮
添加确认按钮
1 public function buttonSubmit($url = '' 【提交】, $title = '确定')
返回按钮
1 public function buttonBack($title = '返回' 【标题】)
树形分类界面AdminTreeListBuilder
带搜索的数据表格AdminListBuilder
系统自行处理的配置页面AdminConfigBuilder
普通表单与配置表单只需增加一条代码即可轻松转换
就是这么简单。