ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 配置 在`FastAdmin`应用插件开发过程中,如果需要使用到配置功能,插件系统提供了很好的支持,首先我们需要在插件目录`addons/mydemo`创建一个`config.php`配置文件。 ## 插件配置 `config.php`需要返回一个多维数组,例如: ~~~php <?php return [    [        //配置名称,该值在当前数组配置中确保唯一        'name'    => 'yourname',        //配置标题        'title'   => '配置标题',        //配置类型,支持string/text/number/datetime/array/select/selects/image/images/file/files/checkbox/radio/bool        'type'    => 'string', //分组选项卡,如果不需要启用配置分组,请设置为空        'group'    => '分组2',        //配置select/selects/checkbox/radio/bool时显示的列表项        'content' => [            '1' => '显示',            '0' => '不显示'        ],        //配置值        'value'   => '1',        //配置验证规则,更多规则可参考nice-validator文件        'rule'    => 'required',        'msg'     => '验证失败提示文字',        'tip'     => '字段填写帮助',        'ok'      => '验证成功提示文字',        'extend'  => '' //扩展信息,可用于对input文本框扩展额外的属性    ],    [        'name'    => 'yourname2',        'title'   => '配置标题2',        'type'    => 'radio', //分组选项卡        'group'    => '分组2', //当配置1值为1时才显示,为其它值不显示        'visible'  => 'yourname1=1',        'content' => [            '1' => '显示',            '0' => '不显示'        ],        'value'   => '1',        'rule'    => 'required',        'msg'     => '验证失败提示文字',        'tip'     => '字段填写帮助',        'ok'      => '验证成功提示文字',        'extend'  => ''    ],    [        'name'    => '__tips__',        'title'   => '温馨提示',        'type'    => 'string',        'content' => [],        'value'   => '该提示将出现的插件配置头部,通常用于提示和说明',        'rule'    => '',        'msg'     => '',        'tip'     => '',        'ok'      => '',        'extend'  => '',    ], ]; ~~~ 添加了以上信息后,我们在`后台管理`\->`插件管理`可以看到插件已经多出来一个`配置`按钮,如图: ![](https://img.kancloud.cn/48/07/48073a8ce5c2641afe3079589210bcc1_1652x62.png) 点击`配置`按钮会弹窗,其中`__tips__`的配置值用于头部的提示,如图: ![](https://img.kancloud.cn/55/db/55dbcc84a4e465cff6f3b5da14293696_815x618.png) ## 参数说明 |  名称 | 类型   | 说明 | | --- | --- | --- | | name   | string  | 配置名称,配置的唯一标识,仅支持英文、数字、下划线 | | title   | string  | 配置标题,用于显示在插件配置中的值 | | type | string | 类型,可用值:string/text/array/date/time/datetimenumber/checkbox/radio/select/selects/image/images/file/files/bool | | group | string | 分组名称,仅1.3.3+版本支持,不希望分组请设置为空 | | visible | string | 动态可见条件,仅1.3.3+版本支持 | | content | array | 内容,当`type`为`checkbox/radio/select/selects`值时的配置项 | | value | mixed | 配置值,用户输入或选择的值 | | rule | string | 前端验证规则,规则可以参考:https://validator.niceue.com/docs/core-rules.html | | msg | string | 验证失败的提示消息 | | tip | string | 验证获得焦点时的提示消息 | | extend | string | 扩展配置信息,用于对`input`文本框进行扩展额外的属性 | 插件配置会根据配置中的`type`值自动渲染相应的组件 | 类型   | 组件   | | --- | --- | | string   | 普通文本框   | | password   | 密码文本框   | |  text |  多行文本框 | |  array | fieldlist列表框   | |  date | 日期框   | |  datetime |  日期时间框 | |  time | 时间框   | |  number | 数字文本框   | |  checkbox | 多选框   | |  radio | 单选框   | |  select | 普通下拉列表框   | |  selects | 普通下拉列表框(多选)   | |  image | 单图   | |  images | 多图   | |  file | 单文件上传   | |  files | 多文件上传   | |  bool | 开关   | ## 特殊配置 在我们的插件配置中,`name`为`__tips__`的项为特殊配置项,如图: ~~~sql [ 'name'    => '__tips__', 'title'   => '温馨提示', 'type'    => 'string', 'content' => [], 'value'   => '该提示将出现的插件配置头部,通常用于提示和说明', 'rule'    => '', 'msg'     => '', 'tip'     => '', 'ok'      => '', 'extend'  => '', ] ~~~ 以上配置在页面会渲染成 ![](https://img.kancloud.cn/52/1f/521f0c14da0317eab5d752878753888c_823x625.png) 其中显示的文字内容会使用`value`配置的值,`value`支持HTML代码。 ## 使用配置 通过以上的配置,已完成插件的相关配置,如果需要读取插件配置,我们可以在服务端使用以下代码来读取 ~~~bash $config = get_addon_config('插件标识'); ~~~ 此时`$config`读取出来是一个键值数组,我们可以直接使用即可。 如果我们需要读取插件的完整配置二级数组信息,可以使用以下代码来读取 ~~~bash $fullconfig = get_addon_fullconfig('插件标识'); ~~~ ## 更新配置 在`FastAdmin`插件系统中还提供有以下两个函数用于写入插件配置 ~~~scss set_addon_config('插件标识', 配置数组, 是否写入文件); set_addon_fullconfig('插件标识', 配置数组); //此函数将强制写入配置文件 ~~~ 其中`set_addon_config`可做临时更新插件配置使用,第三个参数用于控制是否将配置写入文件,默认为`true`表示写入配置,而`set_addon_fullconfig`函数将强制将配置写入文件。 ## 自定义配置页面 我们可以在插件目录下创建一个`config.html`,这个视图模板文件将用于渲染用户点击`配置`按钮弹出的视图,默认不存在该文件则采用自带的配置视图模板。 我们可以参考`application/admin/view/addon/config.html`的视图模板来复制到`插件目录/config.html`中来个性化我们的配置展示。 如果我们需要在菜单栏跳转到这个配置页面,我们可以自行创建一个控制器来实现加载我们个性化的视图模板,然后在菜单规则中创建一条记录。