# semantic UI
在這個版本中 后臺UI全面轉向Semantic UI對semantic不了解的去[官網](http://www.semantic-ui.cn/)查看信息
# 改進
~~~
public function addFormItem($name,$type,$title,$value,$coulmn=1,$col_l=2,$col_d=10,$options=array()){
$item['name']=$name;
$item['type']=$type;
$item['title']=$title;
$item['value']=$value;
$item['options']=$options;
$item['coulmn']=$coulmn;
$item['col_l'] =$col_l;
$item['col_d'] =$col_d;
$this->form_items[] = $item;
return $this;
}
//添加一行 $conf 可以為checkbox radio select提供數據 或者css
//$conf 要靈活使用 text password 等可以設置為空 或者class
//checkbox 數據源 樣式
//radio 數據源 樣式
public function addField($name,$type,$title,$class='',$conf=''){
$field['name'] = $name;
$field['type']=$type;
$field['title'] = $title;
$field['conf']=$conf;
$field['class']=$class;
$this->fields[] = $field;
return $this;
}
//添加一行 含有多個元素
//這里注意U區別
public function addFields($name,$type,$conf=array(),$class=''){
//$name 為標識符!一行多列 這又不同
$field['name']=$name;
$field['type']='fields';
$field['title'] = '';//無用參數
$field['class']=$class;
$field['conf']='';
foreach ($conf as $key => $value) {
$inlinefield['name'] = $value[0];
$inlinefield['type'] = $value[1];
$inlinefield['title'] = $value[2];
$inlinefield['conf'] =$value[3];
$inlinefield['class'] =$value[3];
$inlinefield['id'] = $field['name'];//設置標記
$inlinefields[] = $inlinefield;
}
$field['conf']=$inlinefields;
// $this->$inlinefields[]=$inlinefields;
// $this->inlinefields = $inlinefields;
$this->fields[] = $field;
return $this;
}
~~~
主要改變的是把addFormItem 修改成addField 和 addFields
addField 功能與addFormItem功能相同 做了簡化
radio checkbox select 等數據源 存放在$conf中
addFields 是個巨大的突破 但是還是比較復雜 用來在一個表單中生成一行多列
## 案例
~~~
public function test(){
$conf1 = array(
array('email','inline-text','郵箱',''),
array('phone','inline-text','手機',''),
// array('qq','inline-text','QQ',''),
);
$conf2 = array(
array('email','inline-text','郵箱',''),
array('phone','inline-text','手機',''),
// array('qq','inline-text','QQ',''),
// array('icon','inline-text','ICON',''),
);
$labelconf = array(
array('name'=>'','type'=>'label','title'=>'1',array('label'=>'red empty circular')),
array('name'=>'','type'=>'label','title'=>'2',array('label'=>'gray empty circular')),
);
$radioconf = array(
array('name'=>'like','type'=>'','title'=>'運動'),
array('name'=>'like','type'=>'','title'=>'電視'),
);
$jankzmaker = new \JankzMaker\Controller\admin\makerForm();
$jankzmaker->setMetaTitle('測試')
->addField('email','text','郵箱','')
->addField('passwoed','text','密碼','')
->addFields('one','fields',$conf1,'inline equal width')
->addFields('two','fields',$conf2,'inline equal width')
->addField('is_agree','checkbox','同意條款','inline required')
->addField('','divider','','')
->addField('','icon-divider','And',array('divider'=>'horizontal','icon'=>'teal home'))
->addField('','labels','','',$labelconf)
->addField('','label','12')
->addField('context','textarea','說點什么吧')
->addField('like','radio','你的愛好','',$radioconf)
->display();
~~~
實現起來 并不簡單 因此除非特殊需要 不建議使用多列
$conf 與addField 不同 哦 要注意!
- 序言
- 基礎
- 簡介
- 獲得Jzopen
- 安裝
- 配置
- 系統默認配置參考
- 新增配置項
- 數據庫
- 預覽
- Auth認證
- Session
- User
- Menu
- Manager
- Group
- Role
- 系統結構
- jankzMaker
- V1.0
- MakerTable
- MakerForm
- v1.1
- FormMaker
- 重裝系統
- jankzForm
- jankzform-v1.0
- jankzform.html
- jankzform-v1.1
- jankzTable
- jankztable-v1.0
- jankztable.html
- jankzPage
- jankzpage-v1.0
- jankzpage.html
- elementary
- form
- text
- password
- select
- radio
- checkbox
- btn
- btns
- textarea
- hidden
- image
- editor
- toggle
- label
- labels
- rating
- slider
- sliders
- divider
- icon-divider
- pages
- table
- 二次開發
- jzopen后臺
- 精簡系統
- 插件開發
- 官方插件
- 第三方插件
- 獨有專享插件
- 戶主開發插件
- 云商店
- 云商店下載插件
- 插件上傳
- 在線升級
- 檢查升級
- 升級常見問題
- 部署
- 推薦配置
- 阿里云ECS部署
- 新浪Sae部署