您好,欢迎访问一九零五行业门户网

基于thinksns2.5插件开发

一: 什么是插件 ? 插件位于/addons/plugins/目录下 ? 插件是在不修改任何应用-核心心代码的情况下扩展某些功能,具备可启动可关闭的特性. ? thinksns的插件机制是基于hook的,所以每个插件实现的hook必然会在制定位置执行一次.多个插件同时实现同一个钩子时也
一: 什么是插件
? 插件位于/addons/plugins/目录下
? 插件是在不修改任何应用-核心心代码的情况下扩展某些功能,具备可启动可关闭的特性.
? thinksns的插件机制是基于hook的,所以每个插件实现的hook必然会在制定位置执行一次.多个插件同时实现同一个钩子时也会有顺序执行.
二:开发流程
1: 实现插件addons抽象类的描述对象
simpleaddons:简单插件
normaladdons:复杂的插件
?
? 在插件/addons/plugins/ 下创建想做的插件文件名(下方我采用httpreq).
? httpreq目录结构如下:
-hook? 使用hooks集合类(可多个)
? ?-lib 插件类包
? -html 插件页面
-httpreqaddons.class.php
? 在httpreq目录下创建一个描述文件: httpreqaddons.class.php
? 注:此名字须是 插件名字+addons+class.php这样的标准格式.
? 代码如下:?
_rejson(array(isflag=>0,msg=>请求参数错误)); } $userdata = m('user')->field(email,uname)->where(uid=$uid)->find(); if($userdata){ $this->_rejson(array(isflag=>1,data=>$userdata)); }else{ $this->_rejson(array(isflag=>2,msg=>此用户不存在)); } } /** * 根据用户名获取用户图像 * * @author tangw 2013-03-11 * @param array(uname=>用户名,size=>图像大小) * @return json对象 */ public function get_user_face(){ $username = trim($_request['uname']);//用户名 $size = trim($_request['size']);//图像大小 s=small,m=middle,b=big $size = empty($size)?'m':$size; if(empty($username)){ $this->_rejson(array(isflag=>0,msg=>请求参数错误)); } $userdata = m('user')->field(uid)->where(uname='{$username}')->find(); if($userdata){ $uid = $userdata['uid'];//用户id $uface = getuserface($uid,$size);//图片 $wb_url = site_url./index.php?app=home&mod=space&act=index&uid=.$uid;//微博地址 $data = array(uid=>$uid,face=>$uface,wb_url=>$wb_url); $this->_rejson(array(isflag=>1,data=>$data)); }else{ $this->_rejson(array(isflag=>2,msg=>此用户不存在)); } } /** * *@desc:返回json数据 * *param $data = array('title'=>'ok','flag'=>1); * */ private function _rejson($data) { //header(content-type: text/html; charset=utf-8); $str_json = json_encode($data); exit($str_json); }}?>
插件调用方法:
addons::createaddonshow(httpreq, get_user_info, array());addons::addonshook(httpreq, get_user_info, array());addons::createaddonurl(httpreq, get_user_info, array());
其它类似信息

推荐信息