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学习 函数 课件
Jun 15 PHP
php 引用(&)详解
Nov 20 PHP
PHP的autoload自动加载机制使用说明
Dec 28 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
详解PHP数组赋值方法
Nov 07 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
微信JSSDK分享功能图文实例详解
Apr 08 PHP
PHP number_format函数原理及实例解析
Jul 14 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
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
jquery中动态效果小结
2010/12/16 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
学习Python selenium自动化网页抓取器
2018/01/20 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
音乐教学随笔感言
2014/02/19 职场文书
优秀经理获奖感言
2014/03/04 职场文书
求职教师自荐书
2014/06/19 职场文书
会员卡清退活动总结
2014/08/27 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
初三毕业感言
2015/07/31 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
MySQL transaction事务安全示例讲解
2022/06/21 MySQL
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript