typecho插件编写教程1 - 从HelloWorld说起
2023-06-13 09:16:16 时间
最近老高正在编写一个关于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(){}
}
插件流程
插件的基本流程是这样的。
- 当我们的插件写好后会出现在后台
- 点击启用按钮后,会执行对应插件类的activate方法
- 插件与目标插件点关联,等待触发
- 当点击停用的时候调用deactivate方法
本节完。
下一节老高会更详细的说明插件类的方法。
相关文章
- Python爬虫常用:谷歌浏览器驱动——Chromedriver 插件安装教程
- Typecho教程 - ArticlePoster使用问题综合帖
- 油猴Tampermonkey最强浏览器插件安装与使用教程
- drupal安装教程mysql_drupal简单安装和插件安装
- 『原创』『教程』Typecho后台撰写文章时插入标签(非插件)
- Project 2016 软件下载安装详细教程
- Office 2010软件下载和安装教程
- SPSS(二)SPSS实现多因素方差分析模型(图文教程+数据集)
- Adobe Premiere Pro(PR) 2023 v23.0.0激活版下载安装教程
- eclipse离线安装svn插件使用教程_eclipse不显示svn插件
- Minecraft基岩版BDS插件服开服教程
- typecho插件编写教程5 - 核心代码
- typecho插件编写教程7 - Helper类
- WordPress安全插件Wordfence安装激活及使用教程
- Portraiture4全新版本人像磨皮滤镜插件使用下载教程
- 傻妞插件-可爱猫对接傻妞微信机器人框架详细教程
- 傻妞插件-千寻对接傻妞微信机器人框架详细教程
- 免费的GPT-4 IDE工具Cursor保姆级使用教程
- BBK扫码登录的安装和对接傻妞扫码登陆插件详细教程
- Ps软件:Photoshop软件下载电脑版安装激活教程
- 2022 ios APP最新开发测试教程
- Spring MVC & Boot & Cloud 技术教程汇总(长期更新)详解编程语言
- Linux下修改MAC地址的教程(linux修改mac地址)
- MongoDB中文文档:简明教程(mongodb中文文档)
- 学习mysql主从,实现高可用数据同步(mysql主从教程)
- Linux下C语言开发环境搭建简易教程(linuxcide)
- Jquery上传文件代码案例教程
- 20个非常棒的jQuery幻灯片插件和教程分享
- 30个精美的jQuery幻灯片效果插件和教程
- 整理8个很棒的jQuery倒计时插件和教程
- 40个新鲜出炉的jQuery插件和免费教程[上]
- jquery插件制作教程txtHover
- MySQLHandlerSocket插件安装配置教程
- jQuery插件开发详细教程
- nodejs教程之制作一个简单的文章发布系统
- JavaScript插件化开发教程(四)
- JavaScript插件化开发教程(五)
- JavaScript插件化开发教程(六)