<h2 style="font-weight:bold">文章</h2>
1. **文章是用来管理所有文档的地方**
包含一些基本的操作:新增、编辑、待审、发布、移到回收站、筛选、查找等。
文章所属一定的分类,分类目录可以编辑和新增。
![](https://box.kancloud.cn/2016-08-03_57a19e35dbe98.png)
写文章时选择一定的分类,在所有文章列表中通过筛选分类将同一分类下的文章筛选出,便于查找和编辑。
在文章列表中有一个按钮为“应用”,此按钮可以进行批量操作,更改文章状态。
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;
}
至此我们完成了一个文章表单的创建。下面我将举例说明
在创建分类时,例如我们创建“新闻中心”这个分类,绑定表单为文章表单。
![](https://box.kancloud.cn/2016-08-03_57a19e35f13c5.jpg)
编辑文章选择“新闻中心”这个分类时,那么定义的文章表单相应的字段就会加载出来。
![](https://box.kancloud.cn/2016-08-03_57a19e361700d.jpg)
智能表单使文档的类型扩展更加灵活,只需在FormBuilder.php中加入你想创建的表单类型,并定义好表单需要扩展的字段,那么你就能够创建相应的表单,相应的字段以键值对的形式存放于KeyValue表中。这种方法提高了开发者的编程效率,无需在后台模板文件创建表单样式,无需在控制器里接收表单数据,无需在数据库里创建相应字段,就可以扩展你想要的任何表单类型。