Hkcms 配置文件

插件配置文件用于给到用户自定义一些选项,用户安装后,可根据需要灵活配置你的插件。

目前支持text、textarea、radio、checkbox、select、image、images、date、datetime、array组件。
组件可前往这里了解:字段类型与组件

配置后的效果

文件路径

addons
├─demo
│  ├─Demo.php      
│  ├─config.php      配置文件  
│  ├─info.ini

无标签页示例

<?phpreturn [
    // 名称,保持唯一,获取时:$tmp['value1'] 即可获取value值。
    'value1' => [
        'title' => '标题', // 标题
        'type' => 'text',  // 组件类型
        'tips' => '提示',  // 提示信息
        'rules' => 'required;length(3~16)',  // 验证规则,可参考字段类型与组件下的验证规则,多个规则;隔开
        'error_tips'=>'值必须',  // 错误的提示信息
        'value' => '' // 默认值
    ],
    'value2' => [
        'title' => '描述',
        'type' => 'textarea',
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'value' => ''
    ],
    'radio' => [
        'title' => '是否显示',
        'type' => 'radio',
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'options' => [  // 选项
            '1' => '显示',
            '0' => '不显示'
        ],
        'value' => '1'
    ],
    'checkbox' => [
        'title' => '多项选择',
        'type' => 'checkbox',
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'options' => [
            // key=>标题
            '1' => '显示1',
            '2' => '显示3',
            '0' => '不显示'
        ],
        'value' => '1,2'  // 多选时英文逗号分隔,对应选项key值
    ],
    'select' => [
        'title' => '下拉选择',
        'type' => 'select',
        'tips' => '我是提示',
        'rules' => '',
        'error_tips'=>'',
        'options' => [
            '1' => '测试1',
            '2' => '测试2',
            '3' => '测试3'
        ],
        'value' => '2'
    ],
    'array1' => [
        'title' => '测试array组件',
        'type' => 'array',
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'data_list'=>[// 键值名称
            'key'=>'标题',
            'value'=>'值'
        ],
        'value' => [
            '标题1'=>'2'// 默认值
        ]
    ],
    'value1' => [
        'title' => '动态下拉url类型',
        'type' => 'selectpage', // 动态下拉
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'data_list'=>[
            'type'=>'url',//链接地址类型
            'url'=>'/cms.flags/index',//链接地址类型
            'show-field'=>'title', // 显示字段
            'key-field'=>'id',// 存储字段
            'search-field'=>'title',// 搜索字段
            'and-or'=>'',// 值为and、或者or,search-field为多个时,值为and时表示同时成立反之其中一个成立即可
            'order-by'=>'',// 排序:id desc,view asc
            'param'=>[
                'status'=>'normal' // 指定额外的条件
            ],
            'multiple'=>0,// 多选,1=开启,0=关闭
            'pagination'=>0,// 分页,1=开启,0=关闭
            'select-only'=>1,// 只读,1开启,0关闭
            'enable-lang'=>1,// 启用多语言区分,1开启,0关闭
        ],
        'value' => ''
    ],
    'value2' => [
        'title' => '动态下拉table类型',
        'type' => 'selectpage',
        'tips' => '',
        'rules' => '',
        'error_tips'=>'',
        'data_list'=>[
            'type'=>'table',// 数据源来自数据库表
            'table'=>'flags',// flags表,不用写表前缀
            'show-field'=>'title',
            'key-field'=>'id',
            'search-field'=>'title,name',
            'and-or'=>'or',
            'order-by'=>'id desc',
            'param'=>[
                'status'=>'normal'
            ],
            'multiple'=>1,// 多选,1=开启,0=关闭
            'pagination'=>0,// 分页,1=开启,0=关闭
            'select-only'=>0,// 只读,1开启,0关闭
            'enable-lang'=>1,// 启用多语言区分,1开启,0关闭
        ],
        'value' => ''
    ],];

效果图

如果配置项过多,可以使用下面方式,生成标签页

标签页分组示例

使用标签页布局时,获取的配置结构是不一样的。

return [
    // 自定义名称,获取:$tmp['base']['value1'] 
    'base'=>[
        // 标签页标题
        'title' => '基础配置',
        'item' => [ // 标签页包含的配置项
            'value1' => [
                'title' => '标题',
                'type' => 'text',
                'tips' => '提示',
                'rules' => 'required;length(3~16)',
                'error_tips'=>'值必须',
                'value' => ''
            ],
            'value2' => [
                'title' => '描述',
                'type' => 'textarea',
                'tips' => '',
                'rules' => '',
                'error_tips'=>'',
                'value' => ''
            ],
            'radio' => [
                'title' => '是否显示',
                'type' => 'radio',
                'tips' => '',
                'rules' => '',
                'error_tips'=>'',
                'options' => [
                    '1' => '显示',
                    '0' => '不显示'
                ],
                'value' => '1'
            ],
            'checkbox' => [
                'title' => '多项选择',
                'type' => 'checkbox',
                'tips' => '',
                'rules' => '',
                'error_tips'=>'',
                'options' => [
                    '1' => '显示1',
                    '2' => '显示3',
                    '0' => '不显示'
                ],
                'value' => '1,2'
            ],
            'select' => [
                'title' => '下拉选择',
                'type' => 'select',
                'tips' => '我是提示',
                'rules' => '',
                'error_tips'=>'',
                'options' => [
                    '1' => '测试1',
                    '2' => '测试2',
                    '3' => '测试3'
                ],
                'value' => '2'
            ],
            'selects' => [
                'title' => '下拉多项选择',
                'type' => 'selects',
                'tips' => '我是提示',
                'rules' => '',
                'error_tips'=>'',
                'options' => [
                    '1' => '测试1',
                    '2' => '测试2',
                    '3' => '测试3'
                ],
                'value' => '2,3'
            ]
        ]
    ],
    'more'=>[
        'title'=>'更多选项',
        'item'=>[
            'image' => [
                'title' => '图片',
                'type' => 'image',
                'tips' => '请上传图片',
                'rules' => 'required',
                'error_tips'=>'请上传图片',
                'value' => ''
            ],
            'images' => [
                'title' => '图片',
                'type' => 'images',
                'tips' => '请上传图片',
                'rules' => 'required',
                'error_tips'=>'请上传图片',
                'max_number'=>5,
                'value' => ''
            ],
            'date' => [
                'title' => '日期',
                'type' => 'date',
                'tips' => '',
                'rules' => 'required',
                'error_tips'=>'日期选择',
                'value' => ''
            ],
            'datetime' => [
                'title' => '日期时间',
                'type' => 'datetime',
                'tips' => '日期时间',
                'rules' => '',
                'error_tips'=>'日期时间',
                'value' => ''
            ]
        ]
    ]];

效果

获取插件配置

/**
 * $type = 'template' 表示模板应用,$type='addon' 表示插件应用
 * $name 插件标识名称
 * $module 模板应用会用到,用于确定获取后台模板配置、或前台模板、或其他模块的模板。
 * $complete true-表示获取所有结构数组,false-表示获取配置值
 */get_addons_config($type, $name, $module, $complete)// 例如获取demo插件配置get_addons_config('addon','demo');

自定义配置页

如果系统自带的配置页,满足不了你的需求时,您可以自定义配置页,只需在自己的插件目录新建config.html即可。

在html页面获取的变量有:$sdata 里面的值结构就是你写的配置文件结构,你可参考默认的表单生成文件template/admin/adminlte/appcenter/field.html

打印输出:

<?php dump($sdata);?>

提示:若对自定义配置页仍有疑问,欢迎前往Q群咨询。



本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com