通过天行数据来开发Zblog插件

时间:2019-02-27 07:04:10

天行数据更新了三个诗词类API接口,唐诗大全(包含所有的几万首唐朝诗句)、唐诗三百首(唐诗300首是一部流传很广的唐诗精华选集,接口同时支持输出注解、韵译、评析等等)和优美诗句(精选的全网意境优美令人如痴如醉的诗词句)。第一时间将其制作成了Zblog插件并上线发布,在Zblog官方应用后台获取并在侧栏管理处拖动模块到侧栏后,插件会生成一个模块,每次打开或刷新页面随机显示一句优美诗句。


在Zblog后台应用中心或官方应用平台下载地址:https://app.zblogcn.com/?auth=12cdd588-a620-438c-ad7d-aa6e69602e5d


如何开发这一类型的Zblog插件?


首先在Zblog后台-应用中心-右上角点击新建插件,按页面对应的提示填写相关信息:


通过天行数据来开发Zblog插件

通过天行数据来开发Zblog插件


提交后系统会在博客的插件目录plugins生成子目录,目录名为新建的插件ID如Huceo_verse,其中包含四个文件,include.php、main.php、logo.png(插件应用Logo)、plugin.xml(系统自动生成的插件配置信息)。在include.php文件中编写插件主要的请求构造和逻辑代码,在main.php编写后台设置代码。


查看天行数据的返回结构,以优美诗句(http://api.tianapi.com/txapi/verse/)为例:


{  "code": 200,
  "msg": "success",
    "newslist": [
    { 
     "content": "世间行乐亦如此,古来万事东流水。", 
     "source": "梦游天姥吟留别",
     "author": "李白"
    }
  ]
}


以下是优美诗句这个插件的完整逻辑代码(注意结合上面的返回结构看Huceo_verse_json这个自定义函数部分):


<?php
#注册插件
RegisterPlugin("Huceo_verse","ActivePlugin_Huceo_verse");

function ActivePlugin_Huceo_verse() {
	Add_Filter_Plugin('Filter_Plugin_Index_Begin','Huceo_verse_moduleContent');
}

function Huceo_verse_moduleContent(){
	global $zbp;
	if(isset($zbp->modulesbyfilename['Huceo_verse'])){	
	$zbp->modulesbyfilename['Huceo_verse']->Content =Huceo_verse_json();
	}		
}

function Huceo_verse_buildModulediv(){
global $zbp;
	if(!isset($zbp->modulesbyfilename['Huceo_verse']))	{
		$t = new Module();
		$t->Name = "优美诗句";
		$t->FileName = "Huceo_verse";
		$t->Source = "Huceo_verse";
		$t->SidebarID = 0;
		$t->Content = "";
		$t->IsHideTitle=false;
		$t->HtmlID = "divHuceo_verse";
 		$t->Type = "div";
		$t->MaxLi=0;
		$t->Content = '';
		$t->Save();
	}
}
function Huceo_verse_json(){
	global $zbp;
	$apikey = $zbp->Config('Huceo_verse')->apikey;
	$url = 'http://api.tianapi.com/txapi/verse/?key='.$apikey.'&rand=1';  
$result= Network::Create();
	if (!$result) {
		throw new Exception('主机没有开启网络功能');
	}
$result->open('get',$url);
$result->send($url);
$versejson=json_decode($result->responseText,true);

if(!empty($versejson['newslist'])){

return 	$versejson['newslist'][0]['content'].' - '.$versejson['newslist'][0]['author'].'《'.$versejson['newslist'][0]['source'].'》';
          }else{
	return 	'<li>木有了,杯具了...请尝试检查插件设置的APIKEY</li>';		  
		  }
}
function InstallPlugin_Huceo_verse() {
	global $zbp;
	Huceo_verse_buildModulediv();
		$zbp->Config('Huceo_verse')->apikey='这里是插件默认key,请在天行数据中获得';
		$zbp->SaveConfig('Huceo_verse');
}
function UninstallPlugin_Huceo_verse() {}


优美句子插件后台设置部分的完整代码:


<?php
require '../../../zb_system/function/c_system_base.php';

require '../../../zb_system/function/c_system_admin.php';

$zbp->Load();

$action='root';
if (!$zbp->CheckRights($action)) {$zbp->ShowError(6);die();}

if (!$zbp->CheckPlugin('Huceo_verse')) {$zbp->ShowError(48);die();}

$blogtitle='优美诗句';

if(count($_POST)>0){

	$zbp->Config('Huceo_verse')->apikey=$_POST['apikey'];
	$zbp->SaveConfig('Huceo_verse');
	$zbp->SetHint('good');
	Redirect('./main.php');
}


require $blogpath . 'zb_system/admin/admin_header.php';
require $blogpath . 'zb_system/admin/admin_top.php';

?>
<div id="divMain">

  <div class="divHeader"><?php echo $blogtitle;?></div>
<div class="SubMenu"></div>
  <div id="divMain2">
	<form id="edit" name="edit" method="post" action="#">
<input id="reset" name="reset" type="hidden" value="" />
<table border="1" class="tableFull tableBorder">

<tr>
	<td class="td30"><p align='left'><b>天行数据APIKEY密匙</b></p></td>
	<td><input type="text" name="apikey" value="<?php echo htmlspecialchars($zbp->Config('Huceo_verse')->apikey);?>" style="width:30%;" /><a style="margin-left:8px;" href="https://www.tianapi.com" target="_blank">申请密匙</a>(默认KEY资源调用有限,建议填写自己申请的,个人中心-APIKEY)</td>
</tr>

</table>

	  <hr/>
	  <p>
		<input type="submit" class="button" value="<?php echo $lang['msg']['submit']?>" />

	</form>

  </div>
</div>


<?php
require $blogpath . 'zb_system/admin/admin_footer.php';

RunTime();
?>


这样一个非常简单的Zblog插件就开发完成了,天行数据提供的众多API数据接口都可以通过这种方式整合到Zblog里。


本站所有文章均为天行博客原创,转载请注明来源及出处!

作者:宇天行 (关于我

本文首发地址:http://www.huceo.com/post/486.html

或许您还会喜欢这些文章:

Tags: 作者:宇天行 | 分类:开发技术 | 评论:5 | 浏览:4162