搜索
首页php教程php手册typecho插件编写教程(五):核心代码

typecho插件编写教程(五):核心代码

Jun 13, 2016 am 09:03 AM
typecho主要代码插件教程文章核心编写

typecho插件编写教程(五):核心代码

   这篇文章主要介绍了typecho插件编写教程(五):核心代码,本文讲解了完整的插件核心代码的示例,需要的朋友可以参考下

  之前啰嗦了很多,现在开始写核心代码。

  分析一下,发布文章的时候,我们需要的信息就是当前文章的URL,我们需要想办法从$contents、 $class中拿到他。

  目前我们的插件类代码如下(请注意render被我改成了send)

  代码如下:

  class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface

  {

  public static function activate(){

  //挂载发布文章和页面的接口

  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 '插件安装成功,请进入设置填写准入密钥';

  }

  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('准入秘钥'), '请登录百度站长平台获取');

  $form->addInput($element);

  }

  public static function personalConfig(Typecho_Widget_Helper_Form $form){}

  public static function send($contents, $class){

  //do something

  }

  }

  获取URL

  获取永久链接需要通过路由规则 + Typecho_Common::url 联合生成!

  复制代码 代码如下:

  class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface

  {

  public static function activate(){

  //挂载发布文章和页面的接口

  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 '插件安装成功,请进入设置填写准入密钥';

  }

  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('接口调用地址'), '请登录百度站长平台获取');

  $form->addInput($element);

  }

  public static function personalConfig(Typecho_Widget_Helper_Form $form){}

  /**

  * 准备数据

  * @param $contents 文章内容

  * @param $class 调用接口的类

  * @throws Typecho_Plugin_Exception

  */

  public static function send($contents, $class){

  //如果文章属性为隐藏或滞后发布

  if( 'publish' != $contents['visibility'] || $contents['created'] > time()){

  return;

  }

  //获取系统配置

  $options = Helper::options();

  //判断是否配置好API

  if( is_null($options->plugin('BaiduSubmitTest')->api) ){

  return;

  }

  //获取文章类型

  $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);

  }

  }

  代码中有注释,老高就不在赘述了。

  至此我们已经拿到了文章的永久链接,下一步就是给百度服务器发送数据了!

  本节完!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器