zoukankan      html  css  js  c++  java
  • typecho插件编写教程1

    •  0 推荐
    •  2 收藏,189 浏览

    最近老高正在编写一个关于typecho的插件,由于typecho不像wordpress,有那么多的文档参考,写一个插件还是遇到了很多的坑,不过随着研究的不断深入,老高也慢慢上手了,于是总结出此篇编写教程分享给大家!

    如果你对typecho的源码有兴趣,可以参考老高的系列文章

    typecho源代码解析1 - 系统初始化
    typecho源代码解析2 - 插件机制
    typecho源代码解析3 - 路由分发
    typecho源代码解析4 - 业务逻辑

    从HelloWorld说起

    基本信息

    想必想要开发typecho的你一定阅读过官方示例插件HelloWorld的源码吧?

    我们先看看usr/plugins/HelloWorld/Plugin.php文件前几行

    if (!defined('__TYPECHO_ROOT_DIR__')) exit;
    /**
     * Hello World
     * 
     * @package HelloWorld 
     * @author qining
     * @version 1.0.0
     * @link http://typecho.org
     */
     ...
     ...
    

    这几行代码是一个插件的基本信息,我们由代码可以得出以下与插件相关的基本信息

    插件说明 ---> Hello World
    插件包名 ---> HelloWorld
    插件作者 ---> qining
    插件版本 ---> 1.0.0
    插件链接 ---> http://typecho.org

    同时这些信息都会显示在插件页中,如下图

    插件基本信息

    插件结构

    我们继续向后面的代码看,一个最简单的插件结构如下(为了缩短篇幅,老高移除了具体方法的实现)

    每个方法基本都有注释,老高不再赘述。

    看起来很简单吧?其实里面还是有不少坑的。

    class HelloWorld_Plugin implements Typecho_Plugin_Interface
    {
        /**
         * 激活插件方法,如果激活失败,直接抛出异常
         * 
         * @access public
         * @return void
         * @throws Typecho_Plugin_Exception
         */
        public static function activate(){}
    
        /**
         * 禁用插件方法,如果禁用失败,直接抛出异常
         * 
         * @static
         * @access public
         * @return void
         * @throws Typecho_Plugin_Exception
         */
        public static function deactivate(){}
    
        /**
         * 获取插件配置面板
         * 
         * @access public
         * @param Typecho_Widget_Helper_Form $form 配置面板
         * @return void
         */
        public static function config(Typecho_Widget_Helper_Form $form){}
    
        /**
         * 个人用户的配置面板
         * 
         * @access public
         * @param Typecho_Widget_Helper_Form $form
         * @return void
         */
        public static function personalConfig(Typecho_Widget_Helper_Form $form){}
    
        /**
         * 插件实现方法
         * 
         * @access public
         * @return void
         */
        public static function render(){}
    }
    

    插件流程

    插件的基本流程是这样的。

    1. 当我们的插件写好后会出现在后台
    2. 点击启用按钮后,会执行对应插件类的activate方法
    3. 插件与目标插件点关联,等待触发
    4. 当点击停用的时候调用deactivate方法

    本节完。

    下一节老高会更详细的说明插件类的方法。

  • 相关阅读:
    SecureCRT
    NFS服务器搭建
    卸载oracle步骤
    redhat 5.5 x86_x64搭建samba服务器
    ORA-01940: cannot drop a user that is currently connected
    迁移表空间
    日常SQL使用总结
    DataGuard常规操作命令
    使用PowerDesginer画ER图
    数据库卸载
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4583925.html
Copyright © 2011-2022 走看看