天行数据更新了三个诗词类API接口,唐诗大全(包含所有的几万首唐朝诗句)、唐诗三百首(唐诗300首是一部流传很广的唐诗精华选集,接口同时支持输出注解、韵译、评析等等)和优美诗句(精选的全网意境优美令人如痴如醉的诗词句)。第一时间将其制作成了Zblog插件并上线发布,在Zblog官方应用后台获取并在侧栏管理处拖动模块到侧栏后,插件会生成一个模块,每次打开或刷新页面随机显示一句优美诗句。
在Zblog后台应用中心或官方应用平台下载地址:https://app.zblogcn.com/?auth=12cdd588-a620-438c-ad7d-aa6e69602e5d
如何开发这一类型的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里。