溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-07-08 10:13:19 來源:億速云 閱讀:217 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹了基于Yar的WordPress微博墻插件有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在現(xiàn)在移動(dòng)互聯(lián)網(wǎng)時(shí)代,微博已經(jīng)成為了每個(gè)人生活中必不可少的一個(gè)社交工具。而WordPress是全世界最為流行的博客系統(tǒng),把你的博客接入新浪微博,借助微博的強(qiáng)大用戶群,不僅能給你的網(wǎng)站提供巨大的流量,而且還能帶來不可估量價(jià)值。

WordPress微博墻就是這樣的一個(gè)工具,這不是一款普通的插件,這是一款搭建在SAE基于Yar的插件。它非常的輕量,它不像其他的插件那樣,提供了非常多華麗卻不實(shí)用的功能,不僅臃腫而且拖慢速度。這是一款基于Yar的插件,底層C語言開發(fā),性能卓越。而且拓展性很好,可以給你提供一下功能:

1.個(gè)人微博墻
2.發(fā)布文章同步到新浪微博
3.文章評論同步到新浪微博
接下來介紹一下基本結(jié)構(gòu):

1 核心數(shù)據(jù)操作類

這個(gè)類在Dao.class.php文件中,它是插件的核心,負(fù)責(zé)去服務(wù)端獲取數(shù)據(jù)

/**
*
*	用戶數(shù)據(jù)獲取類
*	@author 夏天
*	@date 2015年6月28日
*	@site http://www.xtwind.com
*
*/
class Dao{
	/**
	*	微博RPC操作對象
	*/
	private $client;

	/**
	*	用戶標(biāo)識(shí)
	*/
	private $mark;

	/**
	*	構(gòu)造函數(shù)設(shè)置用戶標(biāo)識(shí)
	*/
	function __construct($state);

	/**
	*	返回用戶標(biāo)識(shí)
	*/
	public function getMark();
 
	/**
	*	啟用插件
	*	@return 成功返回true,失敗返回認(rèn)證地址 
	*/
	public function run();

	/**
	*	獲取授權(quán)情況
	* 	@return string 返回過期時(shí)間,未登錄或者過期返回false
	*/
	public function getAuthOver();

	/**
	*	刪除授權(quán)
	*	@return boolean
	*/
	public function delAuth();

	/**
	*	獲取認(rèn)證跳轉(zhuǎn)url
	*	@return string
	*/
	public function getAuthUrl();

	/**
	*	獲取用戶微博列表
	* 	@return array
	*/
	public function getWeibo();

	/**
	*	獲取用戶基本信息
	* 	@return array
	*/
	public function getUser();

	/**
	*	發(fā)布微博
	*	@return Array 返回微博數(shù)據(jù)數(shù)組
	*/
	public function weiboPub($content,$imgUrl=null);

	/**
	*	刪除微博
	*	@param  int  微博ID
	*	@return Array 返回被刪除微博數(shù)據(jù)數(shù)組
	*/
	public function weiboDel($weiboID);

	/**
	*	發(fā)布一條評論過
	*	@param  int  微博ID
	*	@param 	string  評論內(nèi)容
	*	@return array 評論相關(guān)數(shù)組
	*/
	public function sendComment($id,$comment);

	/**
	*	關(guān)注一個(gè)用戶
	*	@param 用戶ID或者名字
	*	@return 返回關(guān)注者信息
	*/
	public function followUser($user);

	/**
	*	轉(zhuǎn)發(fā)微博
	*	@param int 微博id
	*	@param string 添加的內(nèi)容
	*/
	public function forwardWeibo($id,$text=null);
}

2 插件實(shí)體類

該類是插件的實(shí)體,在Plugins.class.php中定義,負(fù)責(zé)調(diào)用Dao類來實(shí)現(xiàn)各種功能,包括輸入輸出,用戶配置,授權(quán)管理

/**
*	插件實(shí)體類
*	@Author:Summer
*	@data:  2015-06-28
*	@site:  http://www.xtwind.com
*/
class Plugins{
	/**
	*	數(shù)據(jù)獲取類對象
	*/
	private $dao;

	/**
	*	插件顯示別名
	*/
	private $slug = 'weibo-wall';

	/**
	*	插件頁url
	*/
	private $plugUrl ;

	/*
	*	插件構(gòu)造
	* 	@param 用戶數(shù)據(jù)操作類
	*/
	public function __construct(Dao $obj);

	/**
	*	啟用插件,注冊鉤子,調(diào)用用戶函數(shù),刪除授權(quán),發(fā)表微博
	* 	@param array 插件設(shè)置選項(xiàng)關(guān)聯(lián)數(shù)組,key必須為對應(yīng)的操作方法,該數(shù)組中的鍵會(huì)被注冊為wordpress相應(yīng)鉤子
	* 	@param array 需要過濾的動(dòng)作,該數(shù)組中鍵不會(huì)被注冊為鉤子,但是會(huì)作為方法被調(diào)用,值為方法的參數(shù)
	*/
	public function run($arr1=null,$arr2=null);

	/**
	*	插件主頁顯示
	*/
	public function display_function();

	/**
	*	新文章同步發(fā)布微博
	* 	@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);

	/**
	*	關(guān)注作者
	*/
	public function follow_author($userid);

	/**
	*	用戶微博數(shù)據(jù)獲取
	*/
	public function weiboOuput( $atts=null, $content = null );
	/**
	*	數(shù)據(jù)頁面輸出
	*/
	public function showWeibo();

	/**
	*	圖片URL處理
	* 	@param string
	*/
	private function getOriginalUrl($url);

	/**
	*	時(shí)間轉(zhuǎn)換
	* 	@param string
	*/
	private function Sec2Time($time);

	/**
	*	插件設(shè)置key獲取
	* 	@param string 	需要設(shè)置的key
	*/
	private function setting_key($key,$func=false);

	/**
	*	插件設(shè)置value獲取
	* 	@param string 	需要獲取的value
	*/
	private function get_setting($key,$func=false);

	/**
	*	插件設(shè)置刪除
	*/	
	private function del_setting();

	/**
	*	提示信息
	*	@param string
	*/
	private function noticeMsg($msg);
}

3 服務(wù)端認(rèn)證操作

該接口定義所有用戶認(rèn)證需要的操作,包括獲取授權(quán),刪除授權(quán),檢查授權(quán)等,在AuthDao.php定義

/**
*	認(rèn)證操作類接口
*	@author 夏天
*	@date 2015年6月18日
*	@site http://www.xtwind.com
*/
interface AuthDao{
	/**
	*	設(shè)置用戶AccessToken
	*	@return boolean
	*/
	public function setAccessToken();

	/**
	*	獲取用戶AccessToken
	*	@return String 
	*/
	public function getAccessToken();

	/**
	*	刪除用戶AccessToken
	*	@return boolean
	*/
	public function delAccessToken();

	/**
	*	判斷用戶AccessToken是否存在
	*	@return boolean
	*/
	public function isLogin();

	/**
	*	獲取認(rèn)證跳轉(zhuǎn)url
	*	@return string
	*/
	public function getAuthUrl();

	/**
	*	授權(quán)過期時(shí)間
	*	@return string
	*/
	public function getAuthOver();
}

4 服務(wù)端微博操作

該接口定義所有與用戶微博操作相關(guān)的方法,包括發(fā)表微博,讀取微博,讀取信息,刪除微博等等,在WeiboDao.php定義

/**
*	微博操作類接口
*	@author 夏天
*	@date 2015年6月18日
*	@site http://www.xtwind.com
*/

interface WeiboDao {

	/**
	*	獲取用戶微博信息列表
	*	@param  int 	獲取數(shù)量
	*	@param  int 	類型過濾  0:全部、1:原創(chuàng)、2:圖片、3:視頻、4:音樂,默認(rèn)為0。
	*	@return String
	*/
	public function getWeibo();

	/**
	*	獲取用戶基本信息
	*	@return Array
	*/
	public function getUser();

	/**
	*	發(fā)布微博
	*	@return Array 返回微博數(shù)據(jù)數(shù)組
	*/
	public function weiboPub($content,$imgUrl);

	/**
	*	刪除微博
	*	@return Array 返回被刪除微博數(shù)據(jù)數(shù)組
	*/
	public function weiboDel($weiboID);

	/**
	*	發(fā)布一條評論
	*	@param integer 微博ID
	*	@param string  評論內(nèi)容
	*/
	public function sendComment($id,$comment);

	/**
	*	關(guān)注一個(gè)用戶
	*	@param 用戶ID或者名字
	*	@return 返回關(guān)注者信息
	*/
	public function followUser($user);

	/**
	*	轉(zhuǎn)發(fā)微博
	*	@param int 微博id
	*	@param string 添加的信息
	*/
	public function forwardWeibo($id,$text=null);
}

5 服務(wù)端數(shù)據(jù)提供接口

該接口負(fù)責(zé)提供數(shù)據(jù)給客戶端,以及一些客戶端需要的操作,繼承于微博操作接口,在APIDao.php中定義

/**
*	對外提供服務(wù)類接口,繼承于微博操作接口
*	@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();

	/**
	*	獲取認(rèn)證跳轉(zhuǎn)url
	*	@return string
	*/
	public function getAuthUrl();

	/**
	*	授權(quán)過期時(shí)間
	*	@return string
	*/
	public function getAuthOver();
}

6 服務(wù)端回調(diào)操作

該類封裝與微博開放平臺(tái)通信獲取用戶AccessToken后的回調(diào)操作

class Callback {
	/**
	*	微博認(rèn)證類對象
	*/
	private $authObj;

	/**
	*	構(gòu)造函數(shù)
	*	@param AuthDaoImpl 微博認(rèn)證對象
	*/
	public function __construct(AuthDaoImpl $obj);

	/**
	*	認(rèn)證回調(diào)操作,保存AccessToken
	* 	@return boolean
	*/
	public function callback();
}

7 服務(wù)端應(yīng)用入口

該入口主要是分發(fā)回調(diào)請求,以及創(chuàng)建RPC實(shí)例

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 客戶端應(yīng)用入口

該入口實(shí)例化插件實(shí)體類,并且啟用插件

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“基于Yar的WordPress微博墻插件有什么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI