这是本文档旧的修订版!
插件接口及功能列表
Widget内置的接口
在Typecho中只要这个类是继承自Typecho_Widget基类,它就默认具备了这个插件接口。接口开发者可以使用这个接口无缝地向当前的Class中注入方法
比如我要给Widget_Archive类增加一个方法获取当前文章的字数(charactersNum),只需要在你的插件`activate`方法中声明
Typecho_Plugin::factory('Widget_Archive')->___charactersNum = array('MyPlugin', 'charactersNum');
注意,我们在方法名前面加三个下划线表示这是一个内部方法。而实现这个方法也很简单,因为系统会将当前的对象作为参数传递给你
public static function charactersNum($archive) { return mb_strlen($archive->text, 'UTF-8'); }
那么这个方法就已经植入到Widget_Archive中去了,你在模版中可以直接调用如下代码输出它
<?php $this->charactersNum(); ?>
Class中的接口
Widget_Archive
indexHandle
参数:
- 当前的Widget_Archive对象
- 当前的Typecho_Db_Query对象
返回值:
- 无
主要用于截获对最近文章的请求
error404Handle
参数:
- 当前的Widget_Archive对象
- 当前的Typecho_Db_Query对象
返回值:
- 无
主要用于截获404页面的请求
singleHandle
参数:
- 当前的Widget_Archive对象
- 当前的Typecho_Db_Query对象
返回值:
- 无
主要用于截获内容页面的请求
categoryHandle
参数:
- 当前的Widget_Archive对象
- 当前的Typecho_Db_Query对象
返回值:
- 无
主要用于截获分类页面的请求