weiphp在线开发手册

经过上面第4步的插件创建后,在Addons目录下自动创建一个名叫Suggestions的插件目录,这时插件已经具备了基础微信插件的功能。

如数据管理列表功能


还有功能配置管理


插件功能开发之控制器部分

打开 Addons\Suggestions\Controller\SuggestionsController.class.php 
在该文件里可以看到它继承了Home\Controller\AddonsController,而AddonsController里已经预先把列表管理、增加、删除、配置等通用功能写好,乐观的情况下你可以不写一行代码即可完成数据的管理操作。

但因为建议意见涉及到用户数据,需要从suggestions和member两个数据表里取数据进行处理,因此它需要重写父级的lists方法进行取数据,而它的删除直接用父级的del方法就行

先在SuggestionsController.class.php 增加一个lists方法,内容如下:

因为公共的模型信息里带有前台列表显示需要的list_grids参数,因此直接前面两部分(获取模型信息和获取模型列表数据)直接调用即可。从变量list_data里可以得到:
list_grids:列表要显示的字段信息
list_data :列表要显示的数据
_page     :列表的分页HTML代码

获取相关的用户部分则是把得到的list_data数据里补充上用户姓名,联系方式。
最后调用模板输出。

扩展知识:原则上来说,lists方法里的处理程序完全可以用自己的风格编写,它的作用是取从数据库取数据,组装成网页需要的格式就行。上面的列表使用的网页模板是公共的通用模板,因此它需要传递list_grids这个变量。其实在这里开发者也可以使用自己的模板。如后面的在手机里显示表单的处理方法就是使用了自己开发模板,详情可见后部分

至此列表的功能开发完毕,到现在为此,列表页面上的增加、删除、编辑的功能直接使用父级的通用功能实现就行,因此在SuggestionsController.class.php文件不再需要再增加一行就可以实现这三个功能。不信可以在网页上试试-_-

上面部分已经实现了PC端的全部操作,因此接下来就要实现手机端的功能

当用户在微信公众号里输入“建议意见”时,需要返回一个图文信息引导用户进入填写内容的3G页面,因此首先要配置返回的图文信息:
打开 Addons\Suggestions\Model\WeixinAddonModel.class.php 文件,在repay方法里增加以下代码

  $param ['token'] = get_token ();
  $param ['openid'] = get_openid ();
  $url = addons_url ( 'Suggestions://Suggestions/suggest', $param );
  $articles [0] = array (
    'Title' => '建议意见',
    'Description' => '请点击进入填写反馈内容',
    'PicUrl' => 'http://weiphp.cn/Public/Home/images/about/logo.jpg',
    'Url' => $url
  );
 
  $res = $this->replyNews ( $articles );

具体效果如图

上面就是返回图文信息的全部代码,里面的标题、描述、图片都是固定的。当然你也可以做成配置的方法实现,具体的配置实现方法可以参考“欢迎语”的微信插件里的代码。

当用户在微信里得到图文信息时,点击进入一个填写反馈内容的3G页面。所以接下来还要回到 Addons\Suggestions\Controller\SuggestionsController.class.php 文件里
接着在这文件里增加以下方法 

因为我们这个插件有配置用户在反馈内容时是否填入姓名,是否输入手机号,因此首先先获取配置,每个插件都可以通过 getAddonConfig('插件标识名') 这样的方式获取自己的配置参数(当然前提是有配置参数)
接下来用IS_POST判断是用户已经在提交数据还只是刚进入页面,如果是提交数据,则是组装并保存到数据库里,因为比较简单,在这里没有用到模型的方式保存数据了,如果要做到程序的健全性,当然还需要加一些安全过滤和不为空的判断,或者直接使用模型提供的方式进行数据增加,因为在模型里自动对数据进行过滤,验证和补充的。

如果是刚进入页面,直接使用display 渲染模板。在这里要注意的是,像上面的增加、编辑甚至列表的页面,模板都是使用公共的模板。但因为suggest不在公共方法里,还有业务的需求用公共的模板实现也不大好看。因此我们使用自定义的模板。

打开 Addons\Suggestions\View\default\Suggestions 目录,在这里增加一个名为 suggest.html 的模板文件。
并在 Addons\Suggestions\View\default 目录再创建一个名为 Public 的目录用来存放 模板中需要的css,js和图片文件模板
模板代码见下图

这是一个普通的表单模板,它先加载一个3G页面的公共头部文件,这个文件位于 Application\Home\View\default\Public 目录下面,有兴趣的开发者可以打开看下,它加载了常用的jquery、css文件
该页面需要的自定义的css和图片就放到上面创建的 Addons\Suggestions\View\default\Public 目录下,调用的路径使用 ADDON_PUBLIC_PATH 即可指向Public目录下

具体的css和图片文件可以从后面下载案例文件里看到

至此全部功能就完成了90%了,剩下就是处理插件的打包安装功能

©2014 WeiPHP文档中心 weiphp.cn