千家信息网

基于Yar的WordPress微博墙插件有什么用

发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,这篇文章主要介绍了基于Yar的WordPress微博墙插件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于Yar的WordP
千家信息网最后更新 2024年10月09日基于Yar的WordPress微博墙插件有什么用

这篇文章主要介绍了基于Yar的WordPress微博墙插件有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在现在移动互联网时代,微博已经成为了每个人生活中必不可少的一个社交工具。而WordPress是全世界最为流行的博客系统,把你的博客接入新浪微博,借助微博的强大用户群,不仅能给你的网站提供巨大的流量,而且还能带来不可估量价值。

WordPress微博墙就是这样的一个工具,这不是一款普通的插件,这是一款搭建在SAE基于Yar的插件。它非常的轻量,它不像其他的插件那样,提供了非常多华丽却不实用的功能,不仅臃肿而且拖慢速度。这是一款基于Yar的插件,底层C语言开发,性能卓越。而且拓展性很好,可以给你提供一下功能:

1.个人微博墙
2.发布文章同步到新浪微博
3.文章评论同步到新浪微博
接下来介绍一下基本结构:

1 核心数据操作类

这个类在Dao.class.php文件中,它是插件的核心,负责去服务端获取数据

/****       用户数据获取类*       @author 夏天*       @date 2015年6月28日*       @site http://www.xtwind.com**/class Dao{        /**        *       微博RPC操作对象        */        private $client;        /**        *       用户标识        */        private $mark;        /**        *       构造函数设置用户标识        */        function __construct($state);        /**        *       返回用户标识        */        public function getMark();         /**        *       启用插件        *       @return 成功返回true,失败返回认证地址         */        public function run();        /**        *       获取授权情况        *  @return string 返回过期时间,未登录或者过期返回false        */        public function getAuthOver();        /**        *       删除授权        *       @return boolean        */        public function delAuth();        /**        *       获取认证跳转url        *       @return string        */        public function getAuthUrl();        /**        *       获取用户微博列表        *  @return array        */        public function getWeibo();        /**        *       获取用户基本信息        *  @return array        */        public function getUser();        /**        *       发布微博        *       @return Array 返回微博数据数组        */        public function weiboPub($content,$imgUrl=null);        /**        *       删除微博        *       @param  int  微博ID        *       @return Array 返回被删除微博数据数组        */        public function weiboDel($weiboID);        /**        *       发布一条评论过        *       @param  int  微博ID        *       @param     string  评论内容        *       @return array 评论相关数组        */        public function sendComment($id,$comment);        /**        *       关注一个用户        *       @param 用户ID或者名字        *       @return 返回关注者信息        */        public function followUser($user);        /**        *       转发微博        *       @param int 微博id        *       @param string 添加的内容        */        public function forwardWeibo($id,$text=null);}

2 插件实体类

该类是插件的实体,在Plugins.class.php中定义,负责调用Dao类来实现各种功能,包括输入输出,用户配置,授权管理

/***       插件实体类*       @Author:Summer*       @data:  2015-06-28*       @site:  http://www.xtwind.com*/class Plugins{        /**        *       数据获取类对象        */        private $dao;        /**        *       插件显示别名        */        private $slug = 'weibo-wall';        /**        *       插件页url        */        private $plugUrl ;        /*        *       插件构造        *  @param 用户数据操作类        */        public function __construct(Dao $obj);        /**        *       启用插件,注册钩子,调用用户函数,删除授权,发表微博        *  @param array 插件设置选项关联数组,key必须为对应的操作方法,该数组中的键会被注册为wordpress相应钩子        *  @param array 需要过滤的动作,该数组中键不会被注册为钩子,但是会作为方法被调用,值为方法的参数        */        public function run($arr1=null,$arr2=null);        /**        *       插件主页显示        */        public function display_function();        /**        *       新文章同步发布微博        *  @param     int 文章ID        */        public function publish_post($postID);        /**        *       删除文章同步删除微博        *  @param int 文章ID         */        public function before_delete_post($postID);        /**        *       收到评论同步到微博评论        *       @param id 评论id        */        public function comment_post($commentID);        /**        *       关注作者        */        public function follow_author($userid);        /**        *       用户微博数据获取        */        public function weiboOuput( $atts=null, $content = null );        /**        *       数据页面输出        */        public function showWeibo();        /**        *       图片URL处理        *  @param string        */        private function getOriginalUrl($url);        /**        *       时间转换        *  @param string        */        private function Sec2Time($time);        /**        *       插件设置key获取        *  @param string         需要设置的key        */        private function setting_key($key,$func=false);        /**        *       插件设置value获取        *  @param string         需要获取的value        */        private function get_setting($key,$func=false);        /**        *       插件设置删除        */              private function del_setting();        /**        *       提示信息        *       @param string        */        private function noticeMsg($msg);}

3 服务端认证操作

该接口定义所有用户认证需要的操作,包括获取授权,删除授权,检查授权等,在AuthDao.php定义

/***       认证操作类接口*       @author 夏天*       @date 2015年6月18日*       @site http://www.xtwind.com*/interface AuthDao{        /**        *       设置用户AccessToken        *       @return boolean        */        public function setAccessToken();        /**        *       获取用户AccessToken        *       @return String         */        public function getAccessToken();        /**        *       删除用户AccessToken        *       @return boolean        */        public function delAccessToken();        /**        *       判断用户AccessToken是否存在        *       @return boolean        */        public function isLogin();        /**        *       获取认证跳转url        *       @return string        */        public function getAuthUrl();        /**        *       授权过期时间        *       @return string        */        public function getAuthOver();}

4 服务端微博操作

该接口定义所有与用户微博操作相关的方法,包括发表微博,读取微博,读取信息,删除微博等等,在WeiboDao.php定义

/***       微博操作类接口*       @author 夏天*       @date 2015年6月18日*       @site http://www.xtwind.com*/interface WeiboDao {        /**        *       获取用户微博信息列表        *       @param  int      获取数量        *       @param  int      类型过滤  0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。        *       @return String        */        public function getWeibo();        /**        *       获取用户基本信息        *       @return Array        */        public function getUser();        /**        *       发布微博        *       @return Array 返回微博数据数组        */        public function weiboPub($content,$imgUrl);        /**        *       删除微博        *       @return Array 返回被删除微博数据数组        */        public function weiboDel($weiboID);        /**        *       发布一条评论        *       @param integer 微博ID        *       @param string  评论内容        */        public function sendComment($id,$comment);        /**        *       关注一个用户        *       @param 用户ID或者名字        *       @return 返回关注者信息        */        public function followUser($user);        /**        *       转发微博        *       @param int 微博id        *       @param string 添加的信息        */        public function forwardWeibo($id,$text=null);}

5 服务端数据提供接口

该接口负责提供数据给客户端,以及一些客户端需要的操作,继承于微博操作接口,在APIDao.php中定义

/***       对外提供服务类接口,继承于微博操作接口*       @author 夏天*       @date 2015年6月18日*       @site http://www.xtwind.com*/interface DaoAPI extends WeiboDao{        /**        *       删除用户AccessToken        *       @return boolean        */        public function delAccessToken();        /**        *       判断用户AccessToken是否存在        *       @return boolean        */        public function isLogin();        /**        *       获取认证跳转url        *       @return string        */        public function getAuthUrl();        /**        *       授权过期时间        *       @return string        */        public function getAuthOver();}

6 服务端回调操作

该类封装与微博开放平台通信获取用户AccessToken后的回调操作

class Callback {        /**        *       微博认证类对象        */        private $authObj;        /**        *       构造函数        *       @param AuthDaoImpl 微博认证对象        */        public function __construct(AuthDaoImpl $obj);        /**        *       认证回调操作,保存AccessToken        *  @return boolean        */        public function callback();}

7 服务端应用入口

该入口主要是分发回调请求,以及创建RPC实例

if($_GET['code']){        $keys = array(                        'code' => $_GET['code'],                        'redirect_uri' => APP_CALLBACK                );        $back = new Callback(new AuthDaoImpl($_GET['state'],$keys));        if($back->callback()){                header('Location: '.$_GET['state'].'/wp-admin/options-general.php?page=weibo-wall');        }        exit;}if($_GET['user']){        $server = new Yar_Server(new API($_GET['user']));        try{                $server->handle();        }catch(Exception $e){                echo "感谢您使用微博墙!";        }}

7 客户端应用入口

该入口实例化插件实体类,并且启用插件

$plu = new Plugins(new Dao(get_bloginfo( 'url' )));$plu -> run(get_option('weibo_wall'),get_option('weibo_func'));

感谢你能够认真阅读完这篇文章,希望小编分享的"基于Yar的WordPress微博墙插件有什么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0