一个完整强大的模块,肯定会有许许多多可以自定义的配置,下面我们来详细讲解模块配置信息的各项参数。
我们知道,模块配置信息文件`info.php`是返回一个数组,里面包含了关于模块的各项信息。
| 参数 | 含义 | 类型 | 必填 |
| --- | --- | --- | --- |
| name | 模块名 | string | 是 |
| title | 模块标题 | string | 是 |
| identifier | 模块唯一标识 | string | 是 |
| icon | 字体图标 | string | 否 |
| description | 模块描述 | string | 是 |
| author | 开发者 | string | 是 |
| author\_url | 开发者网址 | string | 否 |
| version | 模块版本 | string | 是 |
| need\_module | 模块依赖 | array | 否 |
| need\_plugin | 插件依赖 | array | 否 |
| tables | 数据表 | array | 否 |
| database\_prefix | 表前缀 | string | 否 |
| config | 模块参数配置 | array | 否 |
| access | 数据授权配置 | array | 否 |
| action | 行为参数配置 | array | 否 |
下面来逐一讲解各个参数。
## name - 模块名
由字母和下划线组成,建议全部使用小写字母,如:user、shop等等,因为系统会对应模块名和数据表名。
## title - 模块标题
该标题会在顶部导航显示,也会在模块管理中显示。如:门户、用户、商城等。
## identifier - 模块唯一标识
这是区分不同开发者不同模块的重要信息,格式:模块名.开发者标识.module,如:`cms.ming.module`。
## icon - 字体图标
系统内置了字体图标:`FONT AWESOME`、`GLYPHICONS`,如填写:"fa fa-user"。
## description - 模块描述
对模块进行简略的描述,以便使用者能快速的了解该模块的功能或者其他信息。
## author - 开发者
模块的开发者名称
## author\_url - 开发者网站地址
开发者网站地址,请填写完整的url地址
## version - 模块版本号
格式采用三段式:主版本号.次版本号.修订版本号,如:1.0.1。以后的模块升级,模块版本比较都按这种格式,请务必填写正确。
## need\_module - 模块依赖
> 格式\[\[模块名, 模块唯一标识, 依赖版本, 对比方式\]\]
有些模块需要依赖于某个或几个模块,那么就必须填写所依赖的模块信息,如:
~~~
'need_module' => [
['user', 'user.lwwan.module', '1.0.0']
]
~~~
表示模块依赖于`user`模块,并且该模块的唯一标识符是`user.lwwan.module`,因为不同开发者都可能开发名为`user`的模块,这样,模块唯一标识的作用就体现出来了。
> 其中,模块名、模块唯一标识、依赖版本这三个是必填的,如果不填写对比方式,则默认为“=”,即等于某个版本。
版本比较使用了php的`version_compare`函数,该函数支持的比较操作符有:、 gt、>=、 ge、==、 =、eq、 !=、<> 和 ne。
| 比较操作符 | 含义 |
| --- | --- |
| <、 lt | 小于 |
| <=、 le | 小于等于 |
| \>、 gt | 大于 |
| \>=、 ge | 大于等于 |
| \==、 =、eq | 等于 |
| !=、<>、 ne | 不等于 |
> 注意:此参数区分大小写,所以它的值应该是小写的,不能填写“LG”、“GT”等。
所依赖的模块需要大于某个版本
~~~
'need_module' => [
['user', 'user.lwwan.module', '1.0.0', '>']
]
// 或者
'need_module' => [
['user', 'user.lwwan.module', '1.0.0', 'gt']
]
~~~
依赖多个模块
~~~
'need_module' => [
['user', 'user.lwwan.module', '1.0.0', '>'],
['admin', 'admin.lwwan.module', '1.0.1']
]
~~~
## need\_plugin - 插件依赖
> 格式\[\[插件名, 插件唯一标识, 依赖版本, 对比方式\]\]
如果您的模块依赖有些插件,则需填写插件依赖,如:
~~~
'need_plugin' => [
['DySms', 'dy_sms.xiaowu.addons', '1.0.0']
]
~~~
其他用法和模块依赖类似,这里就不赘述了。
## tables - 数据表
如果您的模块包含了数据表,则需填写数据表名。比如,cms模块有两张表,`cms_article`、`cms_category`,则这么填写:
~~~
'tables' => [
'goods',
'goods_activity',
]
~~~
> 表名无需填写表前缀,系统检测的时候会自动带上系统设置的表前缀。
## database\_prefix - 表前缀
模块的数据表名建议格式为:表前缀+模块名+控制器,比如:`lw_admin_config`,那么`database_prefix`参数则填写:`lw_`。填写了表前缀后,系统在安装模块时,会将此表前缀替换成目标系统所设置的表前缀,方便不同用户安装您的模块。
## config - 模块参数配置
如果模块需要自定义一些配置信息,则需配置`config`参数。
它的用法和[创建表单](https://www.kancloud.cn/m22543/lwwanphp/1073099)的方法一致,可设置系统内置的10多种表单类型,比如:单选,复选、下拉、单行文本,编辑器等等。
我们在开发微信模块的时候,需要给用户设置appid等信息,那么可以这样设置:
~~~
'config' => [
['type'=>'text', 'name'=>'appid', 'title'=>''AppId', 'tips'=>'应用ID,登录 微信公众平台 查看'],
['type'=>'text', 'name'=>''secret', 'title'=>'AppSecret', 'tips'=>'应用密钥,登录 微信公众平台 查看'],
['type'=>'text', 'name'=>''token', 'title'=>'Token', 'tips'=>'令牌,用于接口验证,登录 微信公众平台,在【基本配置】中设置'],
['type'=>'text', 'name'=>''aeskey', 'title'=>'EncodingAESKey','tips'=> '消息加解密密钥,登录 微信公众平台,在【基本配置】中设置'],
]
~~~
> 如何获取模块的配置,请参考[方法参考](https://www.kancloud.cn/m22543/lwwanphp/1077529)
## action - 行为配置
用于定义行为规则,具体参数如下
* `module`所属模块(必须)
* `name`行为标识(同个模块内,不得重复)(必须)
* `title`行为名称(必须)
* `remark`行为描述(必须)
* `rule`行为规则
* `log`日志规则
* `status`状态(0-禁用,1-启用)默认为禁用
~~~
'action' => [
[
'module' => 'cms',
'title' => '添加文章',
'remark' => '添加文章',
'name' => 'article_add',
'log' => '用户:[user|get_nickname] 在[time|format_time]添加了文章'
],
[
'module' => 'cms',
'name' => 'article_delete',
'title' => '删除文章',
'remark' => '删除文章',
'log' => '用户:[user|get_nickname] 在[time|format_time]删除了文章',
'status' => 1
],
],
~~~
- 序言
- 基础
- 开发规范
- 目录结构
- 下载安装
- 快速开发
- 创建一个表格
- 设置页面标题
- 设置页面提示
- 创建右侧按钮
- 创建顶部按钮
- 隐藏和替换按钮
- 隐藏第一列多选框
- 一次添加多行列表
- 添加一列
- 字段类型
- status
- text
- text.edit
- picture
- callback
- img_url
- pictures
- link
- files
- switch(2.0+)
- 设置表格主键
- 创建一个顶部搜索
- 调用js
- 创建快捷搜索
- 添加数量索引
- 添加表头排序(2.0.0)
- 添加一个右侧弹窗按钮
- 创建一个表单
- 表单字段说明
- 文本框
- 密码框
- 单选框
- 复选框
- 单图上传
- 多图上传
- 下拉框
- 多行文本
- 隐藏域
- 单文件上传
- 多文件上传
- 富文本编辑器
- 静态文本
- 排序
- 数字输入框
- 选择图标
- 关联联动
- 多级联动
- selectAjax(2.0+)
- 使用自定义JS文件
- 使用自定义CSS文件
- 公用函数
- 框架common
- is_signin
- data_auth_sign
- parse_attr
- parse_sql
- get_client_ip
- get_file_url
- get_files_url
- get_thumb
- hook
- p
- get_location
- format_linkage
- format_bytes
- action_log
- parse_action
- execute_action
- role_auth
- module_config
- addons_menage
- addons_config
- get_addons_class
- addons_action_exists
- addons_model_exists
- addons_validate_exists
- get_addons_model
- get_model_name
- get_model_title
- get_model_type
- get_model_table
- is_default_field
- table_exist
- implode_attr
- parse_array
- parse_name
- parse_config
- addons_parse_config
- addons_action
- get_adminname
- get_nickname
- set_config_value
- get_file_name
- format_time
- get_order_sn
- get_msectime
- timeToHIS
- getMobileType
- curl_post
- friend_date
- str2sub
- createLinkagesToken
- get_level_data
- get_level_pid
- get_level_key_data
- clear_js
- get_sex
- get_age
- user_is_signin
- user_role_auth
- filter
- filter_data
- time_tran
- search_time
- time2string
- check_password
- check_mobile
- push
- common模块
- 模块开发
- 创建模块信息
- 安装模块
- 模块配置
- 控制器
- 创建菜单
- 第一个控制器
- 方法参考
- 导出模块
- 插件开发
- 插件结构
- 插件信息
- 管理界面的字段信息
- 新增或编辑字段
- 插件钩子
- 数据库表前缀
- 插件配置
- 插件开发
- 控制器
- 模型
- 验证器
- 方法参考
- 自定义表
- 接口开发
- 新增接口
- 请求参数/返回参数
- 业务流程
- 应用管理
- MOCK接口
- 其他说明
- Redis使用说明
- 图片上传说明
- CMS模块说明
- 函数参考
- 商城模块说明
- 购物流程
- 直接购买提交购物订单
- 购物车流程
- 商品添加到购物车
- 购物车中商品数量变化
- 购物车提交订单
- 单客服使用说明
- 服务部署
- 客户端调用
- 后台客服端使用
- 更新说明(2.0+)