配置

FastAdmin应用插件开发过程中,如果需要使用到配置功能,插件系统提供了很好的支持,首先我们需要在插件目录addons/mydemo创建一个config.php配置文件。

vcKQmqMdNPiaApWfuAeqdsNyBYPZHrTw5ZROSQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

插件配置

OvALeEluqRozhCmBE30o6esZKzRqSHTZ2bQMLg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

config.php需要返回一个多维数组,例如:

eWudSbiLXopYBszGRNTgpTl9cyU/4LcytU8wmA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<?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'  => '',
    ],
];
jgxYAuMTIsaUPXtQNtUmBiuJT4x2ofYJ1HkXog==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

添加了以上信息后,我们在后台管理->插件管理可以看到插件已经多出来一个配置按钮,如图:
image.png

lvQJLHnUVzpXjNTxaHfSJq2ib3oYwdKHazsODw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

点击配置按钮会弹窗,其中__tips__的配置值用于头部的提示,如图:
image.png

MzABvbCEGZlpJjofgB4HemuYhpd0QhaQrgPVGg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

参数说明

iQavNThfEzgusKxUCIqtrdL8UerIWoJtNKJ7OQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
 名称类型  说明
name  string 配置名称,配置的唯一标识,仅支持英文、数字、下划线
title  string 配置标题,用于显示在插件配置中的值
typestring类型,可用值:string/text/array/date/time/datetimenumber/checkbox/radio/select/selects/image/images/file/files/bool
groupstring分组名称,仅1.3.3+版本支持,不希望分组请设置为空
visiblestring动态可见条件,仅1.3.3+版本支持
contentarray内容,当typecheckbox/radio/select/selects值时的配置项
valuemixed配置值,用户输入或选择的值
rulestring前端验证规则,规则可以参考:https://validator.niceue.com/docs/core-rules.html
msgstring验证失败的提示消息
tipstring验证获得焦点时的提示消息
extendstring扩展配置信息,用于对input文本框进行扩展额外的属性
ECGujHdBpQONJUnM/Fa2of2gxB8UlSebi4WleQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

插件配置会根据配置中的type值自动渲染相应的组件

wNtjxCRXymLFQEfG6uKKnEOb0r1fiJkpTiH34g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
类型  组件  
string  普通文本框  
password  密码文本框  
 text 多行文本框
 arrayfieldlist列表框  
 date日期框  
 datetime 日期时间框
 time时间框  
 number数字文本框  
 checkbox多选框  
 radio单选框  
 select普通下拉列表框  
 selects普通下拉列表框(多选)  
 image单图  
 images多图  
 file单文件上传  
 files多文件上传  
 bool开关  
QdTmtbsnRhyxHODNLHciEyWBBuAD0r0+n5OHvg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

特殊配置

TnhgEJvNlXpyKLcxv5026+arnPH5uUNsz6fIWg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

在我们的插件配置中,name__tips__的项为特殊配置项,如图:

TLQiJrGeYCHjpxdgpEy1O+GsjJ8FKgqTyWF+AQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
[
    'name'    => '__tips__',
    'title'   => '温馨提示',
    'type'    => 'string',
    'content' => [],
    'value'   => '该提示将出现的插件配置头部,通常用于提示和说明',
    'rule'    => '',
    'msg'     => '',
    'tip'     => '',
    'ok'      => '',
    'extend'  => '',
]
GaXwmzogBjAiYenxG7YIZi+Ja15o4Vi+LnD66w==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

以上配置在页面会渲染成
image.png
其中显示的文字内容会使用value配置的值,value支持HTML代码。

fBhOLwEQeqlkAvyGJ/DvIoKtbU2X22LTpx/nEw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

使用配置

PCJDazKRWnbmQdHYMC+tMcMOlVfj6JHvXFIJ8g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

通过以上的配置,已完成插件的相关配置,如果需要读取插件配置,我们可以在服务端使用以下代码来读取

sGzVNcvCxhPoSJEd6uBRFpeVAtuV4OIfdOMaYQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$config = get_addon_config('插件标识');
ktJYUAezXQqWvMBdNT+OAqHx2mG0hBHugJgcMg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

此时$config读取出来是一个键值数组,我们可以直接使用即可。
如果我们需要读取插件的完整配置二级数组信息,可以使用以下代码来读取

eoUcQpAIBsgYZkTqN6UpapV4x7DPDWGeytQSzg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$fullconfig = get_addon_fullconfig('插件标识');
QCheElURAtWnJKcs0fp/diwITP0t5ayf/fczqQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

更新配置

MypBOIXjNnrFCKdGYhXxE2YmlWuVcWgBfEgZLA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

FastAdmin插件系统中还提供有以下两个函数用于写入插件配置

hVJHiuDAFNZPtqEwDNfFjUCOGxGy6MK1Mmxrhg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
set_addon_config('插件标识', 配置数组, 是否写入文件);
set_addon_fullconfig('插件标识', 配置数组); //此函数将强制写入配置文件
iNYkCPWRpzxdOVIaBlaOxji4bz0cdad/WpvUOw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

其中set_addon_config可做临时更新插件配置使用,第三个参数用于控制是否将配置写入文件,默认为true表示写入配置,而set_addon_fullconfig函数将强制将配置写入文件。

kLRMHtnifToAqwBlEO6fA9KmGmtKxA5iTNU0rg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

自定义配置页面

qbfDZjEsgiYKMBwrcxEr/7OnooDsJvuHRZdl/w==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

我们可以在插件目录下创建一个config.html,这个视图模板文件将用于渲染用户点击配置按钮弹出的视图,默认不存在该文件则采用自带的配置视图模板。
我们可以参考application/admin/view/addon/config.html的视图模板来复制到插件目录/config.html中来个性化我们的配置展示。
如果我们要调用自定义的JS,可在插件目录/config.html追加使用如下代码:

nXowMSRNIujzyChP+U+MVlFGG7gQNIC0A5Qaqw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<script>
    require.callback = function () {
        define('backend/addon', ['jquery', 'bootstrap', 'frontend', 'template'], function ($, undefined, Frontend, Template) {
            var Controller = {
                config: function () {
                    // 你的JS逻辑代码
                }
            };
            return Controller;
        });
    }
</script>
eodGMIBjERJZUcHgtSizoOclabgnmBQca+JAmg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果我们需要在菜单栏跳转到这个配置页面,我们可以自行创建一个控制器来实现加载我们个性化的视图模板,然后在菜单规则中创建一条记录。

文档最后更新时间:2024-05-29 17:30:44
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度