typecho插件编写教程(一):Hello World


Posted in PHP onMay 28, 2015

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

I. 从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

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

typecho插件编写教程(一):Hello World

插件结构

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

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

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

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方法

本节完。

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

PHP 相关文章推荐
简单的用PHP编写的导航条程序
Oct 09 PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
php学习 字符串课件
Jun 15 PHP
PHP 加密与解密的斗争
Apr 17 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
解析php做推送服务端实现ios消息推送
Jul 01 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 PHP
php实现的mongodb操作类
May 28 #PHP
PHP编译安装时常见错误解决办法
May 28 #PHP
PHP安装memcached扩展笔记
May 28 #PHP
PHP实现的增强性mhash函数
May 27 #PHP
PHP验证信用卡卡号是否正确函数
May 27 #PHP
PHP的伪随机数与真随机数详解
May 27 #PHP
php实现window平台的checkdnsrr函数
May 27 #PHP
You might like
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
PHP反射基础知识回顾
2020/09/10 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
2011/12/20 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
javascript关于继承解析
2016/05/10 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
浅谈Python基础—判断和循环
2019/03/22 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python plotly画柱状图代码实例
2019/12/13 Python
Python是如何进行类型转换的
2013/06/09 面试题
咨询公司各岗位职责
2013/12/02 职场文书
大学生表扬信范文
2014/01/09 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS