最近老高正在撰写一个关于typecho的插件,由于typecho不象wordpress,有那么多的文档参考,写一个插件还是遇见了太多的坑,不过随着研究的不断深入,老高也逐渐上手了,于是小结出此篇撰写教程分享给你们!

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

  typecho源代码解读1 - 系统初始化

  typecho源代码解读2 - 插件模式

  typecho源代码解读3 - 路由分发

  typecho源代码解读4 - 业务逻辑

  从HelloWorld说起基本信息

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

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

   php`if (!defined('__TYPECHO_ROOT_DIR__')) exit;

    /**
     * Hello World
     * 
     * @package HelloWorld 
     * @author qining
     * @version 1.0.0
     * @link http://typecho.org
     */
     ...
     ...

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

  插件说明--->Hello World

  插件包名--->HelloWorld

  插件作者--->qining

  插件版本--->1.0.0

  插件链接--->

  同时这种信息就会显示在插件页中,如右图

  插件结构

  我们继续向旁边的代码看,一个最简略的插件结构如下(为了降低篇幅typecho源码支持手机,老高移除了详细步骤的实现)

  每个步骤基本都有注释,老高不再赘言。

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

   php`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(){}
    }

  插件步骤

  插件的基本步骤是那样的。

  当我们的插件写好后会出现在后台点击启用按键后,会执行对应插件类的activate方式插件与目标插件点关联,等待触发当点击停用的时侯读取deactivate方式

  本节完。

  下一节老高会更具体的说明插件类的方式。

Last modification:December 11th, 2020 at 01:07 pm
如果觉得我的文章对你有用,请随意赞赏