#插件配置信息 在插件目录下,建立config.php文件,可以定义插件的配置信息,比如对于短信插件,appid等配置信息就可以放在这里。

config.php文件直接返回一个数组,内容格式和Widget添加表单项addItem的格式一样。

比如:

return [
    ['radio', 'status', '单选', '', ['1' => '开启', '0' => '关闭'], 1],
    ['text', 'username', '用户名', '提示', 'x'],
    ['textarea', 'summary', '多行文本', '提示'],
    ['group',
        [
            '分组1' => [
                ['radio', 'status1', '单选', '', ['1' => '开启', '0' => '关闭'], 1],
                ['text', 'text1', '单行文本', '提示', 'x'],
                ['textarea', 'textarea1', '多行文本', '提示'],
                ['checkbox', 'checkbox1', '多选', '提示', ['1' => '是', '0' => '否'], 0],
            ],
            '分组2' => [
                ['textarea', 'textarea2', '多行文本', '提示'],
                ['checkbox', 'checkbox2', '多选', '提示', ['1' => '是', '0' => '否'], 0],
            ]
        ]
    ]
];

注意:此处的配置信息是插件安装时的默认配置

后台修改插件配置

1、添加后台配置网址

    /**
     * @var array 插件管理方法,格式:['控制器/操作方法',[参数数组]])
     */
    public $admin_actions = [
        'index'  => [],//管理首页
        'config' => ['Admin/config'],//设置页
        'edit'   => [],//编辑页
        'add'    => [],//增加页
    ];

2、添加后台配置控制器和方法

示例路径 addons/hello_world/controller/Admin.php

示例代码

namespace addons\hello_world\controller;

use app\common\controller\Base;
use app\common\model\Addon as AddonModel;
use app\common\widget\Widget;

class Admin extends Base
{
    protected function initialize()
    {
        //调用admin/Base控制器的初始化
        action('admin/Base/initialize');
    }

    /*
     * 设置
     * @return mixed
     */
    public function config()
    {
        $model = new AddonModel;
        if (request()->isAjax()) {
            $display = input('display', 0, 'intval');
            $rst     = $model->setConfig('info.display', $display);
            if ($rst) {
                $this->success('更新设置成功', 'admin/Addons/addonsIndex', ['is_frame' => 1]);
            } else {
                $this->error('更新设置失败', 'admin/Addons/addonsIndex', ['is_frame' => 1]);
            }
        } else {
            $config = $this->getConfig('info');
            $widget = new Widget();
            return $widget
                ->addItems([['radio', 'display', '是否显示', ['1' => '显示', '0' => '不显示'], isset($config['display']) ? $config['display'] : 1]])
                ->setUrl(addon_url('info://Admin/config'))
                ->setAjax('ajaxForm-noJump')
                ->fetch();
        }
    }
}