ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
||***module.php**应用于添加“回复规则列表”功能,完成了对规则的增,删,改,查功能和模块参数设置的功能,设计模块时需要勾选“是否嵌入规则”或是“模块全局配置项”。其在界面上的菜单体现见下图: ![](https://box.kancloud.cn/2016-04-05_5703241a870ec.jpg) ||***module.php**用于定义模块的全局配置信息及关键字回复规则。 具体定义如下: * we7_demo为模块标识,类名的定义遵循“模块标识Module”规则 * 此类必须继承 WeModule 类 ~~~ <?php /** * 官方示例模块定义 * * @author 微擎团队 * @url http://bbs.we7.cc/ */ defined('IN_IA') or exit('Access Denied'); class We7_demoModule extends WeModule { public function fieldsFormDisplay($rid = 0) { //要嵌入规则编辑页的自定义内容,这里 $rid 为对应的规则编号,新增时为 0 global $_W, $_GPC; /** * 此处分为两种情况,新增规则或是修改规则。 * 如果rid不为0,则需要查询出此规则对应的回复数据。 */ if (!empty($rid)) { $item = pdo_fetch("SELECT * FROM ".tablename('we7_demo_reply')." WHERE rid = :rid", array(':rid' => $rid)); } // 调用模板页面 include $this->template('rule'); } public function fieldsFormValidate($rid = 0) { //规则编辑保存时,要进行的数据验证,返回空串表示验证无误,返回其他字符串将呈现为错误提示。这里 $rid 为对应的规则编号,新增时为 0 global $_GPC; //此处服务端验证表单数据的完整性,直接返回错误信息。 if (empty($_GPC['content'])) { return '请填写回复内容'; } return ''; } public function fieldsFormSubmit($rid) { //规则验证无误保存入库时执行,这里应该进行自定义字段的保存。这里 $rid 为对应的规则编号 global $_W, $_GPC; /* * 此处各种验证通过后,需要进行入库操作。 * 入库时需要注意,此处数据可能为更新操作也可能为新增数据。 */ $data = array( 'rid' => $rid, 'content' => $_GPC['content'], ); $id = pdo_fetchcolumn("SELECT id FROM ".tablename('we7_demo_reply')." WHERE rid = :rid", array(':rid' => $rid)); if (empty($id)) { pdo_insert('we7_demo_reply', $data); } else { pdo_update('we7_demo_reply', $data, array('id' => $id)); } } public function ruleDeleted($rid) { //删除规则时调用,这里 $rid 为对应的规则编号 /* * 此处可能需要一些权限及数据方面的判断 * 除了表数据可能还需要删除一些附带的图片等资源 */ pdo_delete('we7_demo_reply', array('rid' => $rid)); } public function settingsDisplay($settings) { global $_W, $_GPC; //点击模块设置时将调用此方法呈现模块设置页面,$settings 为模块设置参数, 结构为数组。这个参数系统针对不同公众账号独立保存。 //在此呈现页面中自行处理post请求并保存设置参数(通过使用$this->saveSettings()来实现) if(checksubmit('submit')) { //字段验证, 并获得正确的数据$dat $dat['option1'] = $_GPC['option1']; $this->saveSettings($dat); message('配置参数更新成功!', referer(), 'success'); } //这里来展示设置项表单 include $this->template('settings'); } } ~~~