之前啰嗦了很多,現(xiàn)在開(kāi)始寫(xiě)核心代碼。
分析一下,發(fā)布文章的時(shí)候,我們需要的信息就是當(dāng)前文章的URL,我們需要想辦法從$contents、 $class中拿到他。
目前我們的插件類(lèi)代碼如下(請(qǐng)注意render被我改成了send)
class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{
public static function activate(){
//掛載發(fā)布文章和頁(yè)面的接口
Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
return '插件安裝成功,請(qǐng)進(jìn)入設(shè)置填寫(xiě)準(zhǔn)入密鑰';
}
public static function deactivate(){
// do something
return '插件卸載成功';
}
public static function config(Typecho_Widget_Helper_Form $form){
$element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('準(zhǔn)入秘鑰'), '請(qǐng)登錄百度站長(zhǎng)平臺(tái)獲取');
$form->addInput($element);
}
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
public static function send($contents, $class){
//do something
}
}
獲取URL
獲取永久鏈接需要通過(guò)路由規(guī)則 + Typecho_Common::url 聯(lián)合生成!
class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface
{
public static function activate(){
//掛載發(fā)布文章和頁(yè)面的接口
Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
return '插件安裝成功,請(qǐng)進(jìn)入設(shè)置填寫(xiě)準(zhǔn)入密鑰';
}
public static function deactivate(){
// do something
return '插件卸載成功';
}
public static function config(Typecho_Widget_Helper_Form $form){
//保存接口調(diào)用地址
$element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('接口調(diào)用地址'), '請(qǐng)登錄百度站長(zhǎng)平臺(tái)獲取');
$form->addInput($element);
}
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 準(zhǔn)備數(shù)據(jù)
* @param $contents 文章內(nèi)容
* @param $class 調(diào)用接口的類(lèi)
* @throws Typecho_Plugin_Exception
*/
public static function send($contents, $class){
//如果文章屬性為隱藏或滯后發(fā)布
if( 'publish' != $contents['visibility'] || $contents['created'] > time()){
return;
}
//獲取系統(tǒng)配置
$options = Helper::options();
//判斷是否配置好API
if( is_null($options->plugin('BaiduSubmitTest')->api) ){
return;
}
//獲取文章類(lèi)型
$type = $contents['type'];
//獲取路由信息
$routeExists = (NULL != Typecho_Router::get($type));
//生成永久連接
$path_info = $routeExists ? Typecho_Router::url($type, $contents) : '#';
$permalink = Typecho_Common::url($path_info, $options->index);
}
}
代碼中有注釋?zhuān)细呔筒辉谫樖隽恕?/p>
至此我們已經(jīng)拿到了文章的永久鏈接,下一步就是給百度服務(wù)器發(fā)送數(shù)據(jù)了!
本節(jié)完!