BaiduLinkSubmit for typecho 百度链接主动提交工具
写了个百度链接主动提交工具,要的拿走吧,不谢 下载地址:BaiduLinkSubmit.v1.0.0.zip 附:使用主动推送功能会达到怎样效果 1<?php 2/** 3 * 百度站长工具 链接提交 4 * 发布、更新文章后,自动提交百度链接更新 5 * 详情请查看 http://dwz.cn/265Rcs 6 * 7 * @package BaiduLinkSubmit 8 * @author mrasong 9 * @version 1.0.0 10 * @link http://mrasong.com/a/baidu-link-submit-for-typecho 11 */ 12class BaiduLinkSubmit implements Typecho_Plugin_Interface { 13 /* 激活插件方法 */ 14 public static function activate(){ 15 Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array(__CLASS__, 'render'); 16 Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array(__CLASS__, 'render'); 17 return _t('请设置 <b>站点域名</b> 和 <b>密钥</b>'); 18 } 19 20 /* 禁用插件方法 */ 21 public static function deactivate(){} 22 23 /* 插件配置方法 */ 24 public static function config(Typecho_Widget_Helper_Form $form){ 25 preg_match("/^(http(s)?:\/\/)?([^\/]+)/i", Helper::options()->siteUrl, $matches); 26 $domain = $matches[2] ? $matches[2] : ''; 27 $site = new Typecho_Widget_Helper_Form_Element_Text('site', NULL, $domain, _t('站点域名'), _t('站长工具中添加的域名')); 28 $form->addInput($site->addRule('required', _t('请填写站点域名'))); 29 30 $token = new Typecho_Widget_Helper_Form_Element_Text('token', NULL, '', _t('准入密钥'), _t('更新密钥后,请同步修改此处密钥,否则身份校验不通过将导致数据发送失败。')); 31 $form->addInput($token->addRule('required', _t('请填写准入密钥'))); 32 } 33 34 /* 个人用户的配置方法 */ 35 public static function personalConfig(Typecho_Widget_Helper_Form $form){} 36 37 /* 插件实现方法 */ 38 public static function render($contents, $widget){ 39 $options = Helper::options(); 40 $site = $options->plugin(__CLASS__)->site; 41 $token = $options->plugin(__CLASS__)->token; 42 43 $urls = array( $widget->permalink ); 44 $api = sprintf('http://data.zz.baidu.com/urls?site=%s&token=%s', $site, $token); 45 46 $client = Typecho_Http_Client::get(); 47 if ($client) { 48 $client->setData( implode(PHP_EOL, $urls ) ) 49 ->setHeader('Content-Type', 'text/plain') 50 ->setTimeout(30) 51 ->send($api); 52 53 $status = $client->getResponseStatus(); 54 $rs = $client->getResponseBody(); 55 return true; 56 } 57 return false; 58 } 59}