Loading... ## 前言 关于typecho的插件开发这块,可谓是一片空白,什么文档都没有,完全靠自己摸着石头过河。 ## 开端 因为前几天在handsome主题里面发现了一个追番的独立页面显示,然后就立刻尝试了。结果发现这个原插件是一股脑把个人的所有追番记录全部塞到网页内容一口气加载,我当时就想,这可不行啊,我两百多部追番,这样加载性能影响太大了,我得做个分页逻辑。然后就开始了我的插件改写之路。 ## 动手 我立马跑到插件文件夹开始阅读源码,然后想到了一些解决方法,刚好原作者也提供了json的序列化,这可让我高兴了有好一阵,最开始我是用了原生的php方法来当做接口调用的,然后我觉得这太不优雅了,所以后来就改写了。为了优雅的注册接口(用上typecho的钩子),我还是查阅了一堆资料的。 首先就是得介绍一下`Helper::addAction()`这个方法,这就是我采用的注册接口路由的方法,通过这个方法,我可以把路由注册到`/action/xxx`上面,然后这个方法对应的实现是必须在插件根目录下的`Action.php`里面,并且要和`Plugin.php`中的插件名相同,也就是比如说`Plugin.php`中的类是叫做`xxx_Plugin`,那么`Action.php`中的类也必须叫做`xxx_Action`。然后关于该类需要继承的接口,则需要`implements Widget_Interface_Do`,为了读取插件的设置,我们还需要`extends Typecho_Widget`,这样我们就可以开始开发了。 ### tips 首先关于插件的启用和卸载需要`addAction`和`removeAction`,以免垃圾占用action接口。 读取配置文件可以调用`Typecho_Widget::widget('Widget_Options')->plugin('插件名')->属性` - 这里的配置项是在`Plugin.php`中的`config`函数中的形如`new Typecho_Widget_Helper_Form_Element_Text('属性名', NULL, 'placeholder', _t('提示'));`设置的 然后还有就是关于php相关的问题: - 对于文件IO相关的API,需要确保php有写入权限,这一块就涉及到将操作的文件夹权限改为`777`或者给`网页服务软件`授予权限之类的一些操作 ## 最后 这次的成果就是:https://www.onesnowwarrior.cn/bilibili.html 这个页面啦 然后我也把这次开发插件的源码上传到了[Github](https://github.com/SnowWarri0r/Bilifan-Typecho-Plugin),欢迎Star~ Last modification:March 24, 2022 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的文章对你有用,请随意赞赏
2 comments
我评论好像被卡了(作为一个台湾网民)
没被卡啦,只是设置了审核