typecho插件编写教程(五):核心代码
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-27 13:46:27 浏览: 评论:0
这篇文章主要介绍了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);
- }
- }
代码中有注释,老高就不在赘述了。
至此我们已经拿到了文章的永久链接,下一步就是给百度服务器发送数据了!
本节完!
Tags: typecho插件编写 typecho核心代码
相关文章
- ·typecho插件编写教程(一):Hello World(2021-05-27)
- ·typecho插件编写教程(二):写一个新插件(2021-05-27)
- ·typecho插件编写教程(三):保存配置(2021-05-27)
- ·typecho插件编写教程(四):插件挂载(2021-05-27)
- ·typecho插件编写教程(六):调用接口(2021-05-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)