基於weiphp框架的留言板插件教程:
1、功能分析
傳統的留言板應該具有發布留言、查看留言、回復留言、管理留言等功能,本教程開發的是最基本的留言板,僅包含發布留言和查看留言兩個功能,根據功能用bootstrap制作的前台頁面樣式如下:
2、新建weiphp插件
在第一步我們根據留言板的功能需求設計了前台效果頁面,那么接下來的步驟就是根據效果來逐步開發weiphp插件了
第一步,在weiphp后台管理頁面創建一個插件,記得把是否需要配置項和是否需要管理列表兩個選項都選為“是”
第二步,安裝創建好的插件,點擊插件右側的安裝鏈接即可
回到weiphp前台管理頁面,點擊左側的留言板就能看到已經安裝好的留言板插件了
3、查看代碼結構
插件創建成功后,weiphp框架會自動在Addons目錄下生成一個插件文件夾,本教程生成一個liuyanban文件夾,liuyanban目錄下包 括Controller、Model、View三個文件夾和config.php、LiuyanbanAddon.class.php兩個文件。 Controller里面一般寫邏輯處理代碼,包括數據插入、數據查詢等功能代碼,Model里面主要寫一些與微信交互的代碼,View里面放前台模板。 config.php是配置文件,LiuyanbanAddon.class.php是插件信息文件,一般不需要修改。
4、測試插件是否可用
打開Model/WexinAddonModel.class.php
添加測試代碼。最簡單的測試代碼為$this->replyTest('hello world');
下圖第13、第14行代碼為自己寫上的測試代碼,當用戶在微信中回復“留言板”時,返回系統時間加提示信息
在微信中測試插件是否可用
bingo,插件正常可用,我們接着往下走
5、創建配置文件
打開config.php,寫上下圖所示配置代碼
重新打開留言板管理界面,即可看到配置項設置成功
打開Model/WexinAddonModel.class.php,重新編輯微信響應代碼(第15-25行),返回圖文消息
重新在微信中測試留言板插件
返回單圖文消息,bingo,繼續往下走
6、導入前台模板
第一步,下載前台模板。最開始看到的那個前台頁面我已經上傳到了我的百度網盤,可以從這里下載:http://yun.baidu.com/s/1sjJgwEx
第二步,將下載的前台模板上傳到View/default/Liuyanban文件夾下面
在Controller/LiuyanbanController.class.php中寫上輸出前台的代碼
點擊微信中回復的圖文消息,就可以進入到前台首頁了
現在看到的首頁只是一個靜態的html頁面,點擊“發布>>”沒有任何跳轉,我們需要對“發布>>”添加一個跳轉鏈接
打開index.html頁面,在第22行把“發布>>”的href鏈接改成下圖所示,即跳轉到當前控制器下的liuyan()方法,並傳遞token和uid兩個參數。BTW:{:U('','')}為thinphp生成url的模板方法,不懂的請自行百度
前面在寫LiuyanController的時候我們寫了一個liuyan()方法,該方法沒有進行任何的邏輯處理,只是顯示出留言頁面,即跳轉到 liuyan.html。改好href的鏈接地址后在index.html中點擊右上角的“發布>>”即可跳轉到下圖所示留言發布頁面
同樣,發布留言右上角的“查看>>”鏈接也不可跳轉,我們在第19行把href改成下圖所示
7、數據模型分析與創建
數據庫設計毫無疑問是IT技術中的重中之重,關於數據庫的知識請自行百度mysql教程學習。weiphp提供了一個方便的web端管理數據表模型,針對最開始我們看到的前台頁面,我們來看一下發布留言頁面有哪些input字段
分析可知本留言板插件只需要留言者姓名(name)、留言內容(content)兩個可見的字段,同時要有留言時間(cTime)、留言所在的公眾號Token(token)、留言者的用戶UID(uid)。知道了這些,我們便開始設計數據庫模型。
打開weiphp后台管理頁面,新建liuyanban數據模型,下面的截圖顯示的模型標識為liuyan_info,建議大家改為liuyanban, 因為只有數據模型名為liuyanban(跟插件名一致)的時候,默認的weiphp前台留言板管理列表中才能顯示數據,關於怎么更改默認的數據顯示頁面 與新建多個不同的數據模型不在本教程講述的范圍內,所以大家還是把下圖的數據模型標識寫為liuyanban吧。
創建好了數據模型之后我們便開始新建留言板插件所需的字段,點擊數據模型操作界面右邊的字段管理->新建字段即可。新建前面提到的token、uid、cTime、name、content五個字段,注意在字段新建頁面的“高級”選項中添加字段自動完成規則,token添加get_token(),uid添加get_mid(),cTime添加time()
這就是我們創建好的留言板插件所需的全部字段了
回到模型管理頁面,在liuyanban模型的右邊點擊編輯,將liuyanban模型的列表定義改為下圖所示,這樣是為了方便留言板前台管理頁面能夠顯示數據
回到留言板前台管理頁面,就可以看到顯示數據的字段與操作了(留言者、留言內容、留言時間、操作)
到此為止整個數據庫設計過程完成,接下來就是建立邏輯處理代碼操作數據了
8、查詢用戶信息
打開Controller/LiuyanbanController.class.php,在liuyan()方法內寫上下圖所示16、17、18三行代 碼,及根據用戶的uid查詢用戶的信息,並把信息輸出到留言發布頁面的留言者姓名填寫框中。這樣做的目的是為了方便用戶操作,只要綁定過一次個人信息,留 言的時候就不需要重復填寫姓名了
在liuyan.html頁面中將留言者姓名(name)的input框的value值改為用戶的姓名,{$user.nickname}為輸出用戶的昵稱
在進入發布留言頁面的時候只要我們以前綁定過個人信息,在留言者姓名輸入框中就能自動顯示綁定的昵稱了
9、插入留言數據
在liuyan()方法中寫上數據處理代碼(第21-34行),當用戶提交留言數據之后就把留言數據插入到liuyanban數據表中
在留言頁面插入幾條測試數據之后回到留言板插件管理頁面,就能看到用戶提交的留言數據了。
10、顯示留言信息
在index()方法中新建數據查詢代碼,把liuyanban數據表中的數據提取出來並顯示到index.html前台模板
在index.html中用thinkphp模板標簽<volist>把留言數據循環輸出,BTW:weiphp是基於thinkphp開發 的,所有的thinkphp標簽在weiphp中都是可用的,因此要學會weiphp插件開發的關鍵是要懂基本的thinkphp知識
打開index.html,就可以看到所有的留言數據了
至此,整個的weiphp留言板插件開發就完成了,查看此插件效果請在“艾豆樂園”微信公眾平台中回復“留言板”,至於后面的如何將插件打包下載,上傳到新的weiphp框架或者是導出數據模型,請各位自行查看weiphp官方文檔。
轉自:http://my.oschina.net/ecnu/blog/303753