插件配置文件用于给到用户自定义一些选项,用户安装后,可根据需要灵活配置你的插件。
目前支持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群咨询。