<h2 style="font-weight:bold">文章</h2>
1. **文章是用來管理所有文檔的地方**
包含一些基本的操作:新增、編輯、待審、發布、移到回收站、篩選、查找等。
文章所屬一定的分類,分類目錄可以編輯和新增。

寫文章時選擇一定的分類,在所有文章列表中通過篩選分類將同一分類下的文章篩選出,便于查找和編輯。
在文章列表中有一個按鈕為“應用”,此按鈕可以進行批量操作,更改文章狀態。
2.**分類目錄**
* 別名 唯一且必填,必須為英文字母可以用于獲取分類,可供生成用戶友好的url路由鏈接。
* 列表頁模板 可為分類配置列表頁模板,默認狀態下模板文件為lists.html。
* 詳情頁模板 可為分類配置詳情頁模板,默認狀態下模板文件為detail.html。
* 綁定表單
這里我們定義了一個文章表單,并提供了基本的表單字段,如文章標題、內容、封面圖。當一個文章還需要其他字段時,我們提供了一個動態擴展的方法,那就是智能表單。
* 智能表單
創建分類時可為該類綁定表單類型,根據表單的類型,發布該類下的文章時即可調用相應表單模版。
在admin/controller/FormBuilder.php中我們定義了文章表單,包括title和description兩個字段,
// 文章表單
'article' => [
'title' => '文章表單',
'fields' => [
'description' => ['title' => '描述','name' => 'description','data' => '','placeholder' => '描述','type' => 'text','option' => ''],
]
],
這里的fields就是你想要擴展的表單。title即為表單的標題,name即為擴展字段的名稱,data為數據值,type即為擴展字段的類型。這里文章表單的類型為text,text的樣式我們在common/library/form.php表單控制器里控制,
public function text($title,$option='',$data,$name,$placeholder,$class = 'form-control')
{
$this->assign('title',$title);
$this->assign('data',$data);
$this->assign('name',$name);
$this->assign('placeholder',$placeholder);
$this->assign('class',$class);
$this->form = $this->form.$this->fetch('common@form/text');
return $this;
}
至此我們完成了一個文章表單的創建。下面我將舉例說明
在創建分類時,例如我們創建“新聞中心”這個分類,綁定表單為文章表單。

編輯文章選擇“新聞中心”這個分類時,那么定義的文章表單相應的字段就會加載出來。

智能表單使文檔的類型擴展更加靈活,只需在FormBuilder.php中加入你想創建的表單類型,并定義好表單需要擴展的字段,那么你就能夠創建相應的表單,相應的字段以鍵值對的形式存放于KeyValue表中。這種方法提高了開發者的編程效率,無需在后臺模板文件創建表單樣式,無需在控制器里接收表單數據,無需在數據庫里創建相應字段,就可以擴展你想要的任何表單類型。