ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ###什么是设计模块 当需要扩展微擎系统功能时,微擎提供一套扩展机制称之为“微擎模块”,每一个模块就是一个独立的功能,通过微擎系统创建、安装、更新及卸载。 以下讲解怎么在微擎系统中设计创建一个模块。 ### 微擎模块设计助手 可以通过 **系统** - **模块** - **设计新模块** 或是通过 **http:%%//%%你的微擎链接/web/index.php?c=extension&a=module&do=designer&** 直接进入 ##### 设计新模块配置说明 #### 1. 模块基本信息 * “模块名称”用于在系统中给用户显示出模块的名字 * “模块标识”只能为英文,数字,下划线,为了减少模块标识的重复和冲突,系统规定模块必须有前缀,例如:we7_demo * “版本号”用于标识模块版本,主要是用作于模块升级更新使用 #### 2. 模块全局配置项 当勾选此项时,模块安装后系统会生成一个“模块配置”的菜单,用于保存一些模块内部使用的配置项。 开发者必须要完善 **module.php** 类文件中的 **public function settingsDisplay($settings){}** 成员方法 #### 3 订阅的消息类型 当勾选此项下的事件类型后,系统会在接收到相关类型的事件后,转发消息到模块中。模块接到消息后可以处理数据,但无法返回结果(系统不接收)。 开发者必须要完善 **receiver.php** 类文件中的 **public function receive(){}** 成员方法 #### 4 处理的消息类型 当勾选此项下的事件类型后,模块有权限可以直接接管选中的事件。比如,用户向公众号发送了一图片,触发了图片事件,系统接到此事件后,会直接转到至模块中处理,并返回结果。 开发者必须要完善 **processor.php** 类文件中的 **public function respond(){}** 方法 #### 5 是否要嵌入规 当勾选此项后,模块安装后系统会自动添加“回复规则列表”菜单,用户可以设置关键字触发到模块中。 开发者必须要完善 **processor.php** 类文件中的 **public function respond(){}** 方法 #### 6 是否支持使用优惠券 当勾选此项后,用户在创建(代金券和折扣券)时,模块将出现在适用模块列表中。 当添加后,模块需要完成导粉丝领取该优惠券。领取后,粉丝在该模块需要支付金钱时,可选择使用该优惠券来减免金额 #### 7 微站功能封面 设置此项后,安装模块后系统会按照设置的项的标题生成出若干个设置入口菜单,管理员进入设置关键字后,粉丝可以直接通过关键字触发到该链接中。 例如:操作名称为首页,标识为index,设置关键字为“进入首页”,触发后系统回复图文信息,粉丝点击进入 **site.php** 类文件中的 **public function doMobileIndex(){}** 方法中 #### 8 规则列表 当模块开启嵌入规则后,开发者可以扩展“回复规则列表”中的功能菜单。 开发者需要完善 **site.php** 类文件中的 **public function doWeb{入口标识}(){}** 相关方法,其显示位置如下: ![](https://box.kancloud.cn/2016-04-05_570320b7ec674.png) #### 9 管理中心导航菜单 模块安装后系统会在管理中心生成一个导航入口。 开发者需要完善 **site.php** 类文件中的 **public function doWeb{入口标识}(){}** 相关方法 #### 10 权限标识 微擎支持模块内部的权限判断,此处添加权限标识后,管理人员才可以在后台分派相应的权限给操作人员。 权限标识由:标识名称和标识组成。例如,添加门店:we7_demo_store_add"。标识格式:模块名称_标识。例如,名称名称为:we7_demo,标识为:store_add,则对应标识为:we7_demo_store_add 模块内部可以通过 ** uni_user_module_permission_check('we7_demo_store_add');** 来判断用户是否有使用权限。 #### 11 微站首页导航图标、微站个人中心导航、微站快捷功能导航 设置此项后,管理员在添加相应的导航时,可以从此设置项中选取模块中的链接 #### 12 模块安装脚本、模块卸载脚本、模块升级脚本 此项中填写运行的php文件名,例如install.php,当模块在执行相应的操作时,系统会调用相应注册的php文件。 【无需登录即可展示】: * Web 端: 不显示左边菜单导航, 将页面完全显示. * App 端: 访问入口系统不检测用户是否登录(//checklogin()//)。 **注意: 填写的【入口标识】使用纯字母, 不要带 "_" 等.** 【模块菜单位置图解】 ![](https://box.kancloud.cn/2016-04-05_570320b80ffd3.jpg)