💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 七、后台构建器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 普通表单与配置表单只需增加一条代码即可轻松转换 就是这么简单。