## 移动端控制器
如果在创建插件的时候勾选了*是否需要功能入口*,则在插件创建成功后会默认生成一个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返回结果到前端。
- 更新日志
- 入门
- 关于豆信
- 系统安装
- 功能介绍
- 公众号对接
- 小程序对接
- 系统架构
- 数据字典
- 框架目录结构
- 插件目录结构
- 运行流程
- 插件开发
- 新建插件
- info.php
- 设计数据表
- 插件控制器
- 后台管理控制器
- 移动端控制器
- 交互响应控制器
- 接口管理控制器
- 插件模型
- 插件视图
- 发布插件
- 自定义模型
- 通用增删改查
- common_lists
- common_add
- common_edit
- common_delete
- setMetaTitle
- setSubmitType
- setModel
- setListMap
- setListSearch
- setListOrder
- setListPer
- setEditMap
- setDeleteMap
- setFindMap
- addCrumb
- addNav
- addButton
- setTip
- 函数手册
- get_addon
- get_addon_settings
- tomedia
- get_fans_info
- 小程序开发专题
- 小程序对接插件.js
- 获取插件配置
- 获取用户信息
- 更新用户资料
- 公众号开发专题
- 获取粉丝信息
- 自定义分享
- 消息上下文
- 微信支付
- 企业付款
- 发送现金红包
- 发送模板消息
- 发送客服消息
- 引入前端资源
- 限制页面仅在微信浏览器访问
- 在插件页面中引入样式文件
- 在插件中创建跳转链接
- 数据预处理
- 插件开发实例
- 聊天机器人
- 留言板
- 常见问题解答