ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 移动端控制器 如果在创建插件的时候勾选了*是否需要功能入口*,则在插件创建成功后会默认生成一个MobileController控制器,用于处理移动端各项功能。 首先我们需要在插件信息文件info.php配置插件移动端页面的入口: ~~~ 'config' => array( 'entry' => 1, 'entry_list' => array( 'index' => '留言板首页' ), ), ~~~ 然后在插件管理后台封面入口设置页面为功能入口设置触发关键词。当用户在微信端输入的消息触发了此处设置的关键词,微信会回复一条单图文消息,点击单图文消息即可进入对应的移动端页面。 接下来我们就可以编辑移动端控制器来实现各项移动端的功能,我们在MobileController.class.php中可以这样编码: ~~~ <?php namespace Addons\IdouGuestbook\Controller; use Mp\Controller\MobileBaseController; /** * 留言板移动端控制器 * @author 艾逗笔<765532665@qq.com> */ class MobileController extends MobileBaseController { /** * 留言板首页 * @author 艾逗笔<765532665@qq.com> */ public function index() { $settings = get_addon_settings('IdouGuestbook'); $settings['share_title'] || $settings['share_title'] = '留言板'; $settings['share_desc'] || $settings['share_desc'] = '点击进来给我留言吧'; $settings['share_cover'] || $settings['share_cover'] = 'http://'.C('HTTP_HOST') . '/Public/Admin/img/nopic.jpg'; $this->assign('settings', $settings); $map['status'] = 1; $map['mpid'] = get_mpid(); $page = max(1, intval(I('p'))); $count = M('idou_guestbook_list')->where($map)->count(); $per = $settings['per'] ? $settings['per'] : 10; $page_count = ceil($count/$per); $show['page_count'] = $page_count; $show['page'] = $page; if ($page < $page_count) { $show['next_page_url'] = create_addon_url('index', array('p'=>($page+1))); } if ($page > 1) { $show['prev_page_url'] = create_addon_url('index', array('p'=>($page-1))); } $message_list = M('idou_guestbook_list')->where($map)->order('create_time desc')->page($page, $per)->select(); foreach ($message_list as $k => &$v) { $v['fans_info'] = get_fans_info($v['openid']); } $this->assign('fans_info', get_fans_info()); $this->assign('message_list', $message_list); $this->assign('show', $show); $this->display(); } /** * 处理留言 * @author 艾逗笔<765532665@qq.com> */ public function deal_message() { $GuestbookList = D('Addons://IdouGuestbook/IdouGuestbookList'); C('TOKEN_ON', false); if (!$GuestbookList->create()) { $return['errcode'] = 0; $return['errmsg'] = $GuestbookList->getError(); } else { if (I('id')) { $GuestbookList->save(); } else { $GuestbookList->add(); } $return['errcode'] = 1; $return['errmsg'] = '留言成功'; } $return['data'] = I('post.'); $this->ajaxReturn($return); } } ?> ~~~ 其中index方法用于展示留言板首页,并通过get_addon_settings函数调用插件的配置参数,通过M方法查询数据表把留言数据输出到视图页展示。 deal_message方法用于处理用户发布的留言。调用了模型进行数据处理。处理成功后,通过ajax返回结果到前端。