typecho插件编写教程(四):插件挂载
终于,在能够保存配置信息后,我们可以开始编写插件的挂载功能了。
首先我们需要知道系统为我们在各个关键的环节都预留了插件点给我们,系统运行到插件点时,会检测到是否有插件挂在这个点上,然后执行插件的逻辑!
插件的工作就是找到合适的插件点,挂上去,然后执行自己的逻辑。
插件点,插件钩子,插件接口。。。在老高这儿是一个概念
官方的插件接口及功能列表
我们的插件需要执行的逻辑在这里,Widget_Contents_Post_Edit类的finishPublish方法
文件路径var/Widget/Contents/Post/Edit.php:736,可以看到,接口为我们传递了两个参数,一个是发布的内容,另一个是类本身。有了类本身,我们可以在插件中随意调用他的公共方法!
//文章完成发布插件接口 $this->pluginHandle()->finishPublish($contents,$this);
还有一个页面发布接口,下面的代码会提到。
如何挂载
代码如下,有省略。
<?php
classBaiduSubmitTest_PluginimplementsTypecho_Plugin_Interface {
publicstaticfunctionactivate(){ //挂载发布文章和页面的接口 Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish=array('BaiduSubmitTest_Plugin','send'); Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish=array('BaiduSubmitTest_Plugin','send'); return'插件安装成功,请进入设置填写准入密钥'; } ... ... publicstaticfunctionrender($contents,$class){ //dosomething } }