# 七、后臺構建器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
普通表單與配置表單只需增加一條代碼即可輕松轉換
就是這么簡單。