Typecho 插件开发 之 插件接口及功能列表

默认接口

在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(); ?>

Widget接口

Widget_Archive

 

接口 参数 描述
indexHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问最近文章首页以及分页时被触发
error404Handle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问404页面时被触发
singleHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问单独页面时被触发(文章,页面,附件)
categoryHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问按分类归档页面时被触发
tagHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问按标签归档页面时被触发
authorHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问按作者归档页面时被触发
dateHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问按日期归档页面时被触发
search
  • $keywords 搜索关键词

  • $archive Widget_Archive对象

这是一个独占接口,当访问搜索页面时被触发
当这个接口被实现后,系统自己的搜索动作将不会继续,你需要在这个接口内自己push搜索的数据到Widget_Archive对象
此接口多用于自己实现站内搜索来替换默认的
searchHandle
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

当访问搜索页面时被触发
query
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

Widget_Archive所有的数据库查询动作最终将由一个query方法来执行
此接口在query方法内,多用于hack某些查询语句
select
  • $archive Widget_Archive对象

 
handleInit
  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

 
handle
  • type

  • $archive Widget_Archive对象

  • $select Typecho_Db_Query对象

 
pageNav
  • currentPage

  • $total

  • pageSize

  • $prev

  • $next

  • $splitPage

  • $splitWord

 
headerOptions
  • $allows

  • $archive Widget_Archive对象

 
header
  • $header

  • $archive Widget_Archive对象

 
footer
  • $archive Widget_Archive对象

 
beforeRender
  • $archive Widget_Archive对象

 
afterRender
  • $archive Widget_Archive对象

 
commentFeedItem
  • feedType

  • $comments

 
feedItem
  • feedType

  • $archive Widget_Archive对象

 

 

Widget_Feedback

 

接口 参数 描述
comment
  • $comment

  • content

 
finishComment
  • $feedback Widget_Feedback对象

 
trackback
  • $trackback

  • content

 
finishTrackback
  • $feedback Widget_Feedback对象

 

 

Widget_Login

 

接口 参数 描述
loginFail
  • user

  • name

  • password

  • remember

 
loginSucceed
  • user

  • name

  • password

  • remember

 

 

Widget_Logout

 

接口 参数 描述
logout  

 

Widget_Register

 

接口 参数 描述
register
  • $dataStruct

 
finishRegister
  • $register Widget_Register对象

 

 

Widget_Upload

 

接口 参数 描述
beforeUpload
  • $result

 
upload
  • $upload Widget_Upload对象

 
beforeModify
  • $result

 
modify
  • $upload Widget_Upload对象

 

 

Widget_User

 

接口 参数 描述
login
  • $name

  • $password

  • $temporarily

  • $expire

 
hashValidate
  • $password

  • $user['password']

 
loginSucceed
  • $user Widget_User对象

  • $name