wellcms 插件机制分为两种,一种是 Hook,一种是 Overwrite。
Hook 就是往代码里插入代码,多个插件的代码合并插入到 hook 指定的位置,最后生成的代码存放于 tmp 目录。
wellcms 每个文件几乎都有预留的 hook 位,具体想要 hook 什么功能,就查看哪个文件。
文件 view/htm/flat.htm 包含了一个 hook index_flat_start.htm 的钩子,我们就从这里开始:
新建插件目录
plugin/
conf.json (配置文件)
icon.png (图标宽高:200*200)
my_plugin/ (插件目录)
hook/ (hook文件目录)
index_flat_start.htm (要插入的文件代码)
index_flat_start.htm 文件代码为:
<div class="row"> <div class="col-lg-12"> <h1> Hello, my code! </h1> </div> </div>
同一处钩子,多个文件进行hook,那么如何使我的文件优先hook呢?
根据 conf.json 文件 hooks_rank 配置,进行优先hook,使用方法如下:
{ "name": "插件名example", "brief": "插件介绍example brief", "type": "0", // 无需修改 "version": "1.0.0", // 插件版本 "software_version": "2.0.0", "installed": 0, "enable": 0, "hooks_rank": { "index_flat_start.htm":"1000", "read_start.php":"100" }, // 最大值优先 hook 可以同时设置多个文件优先 hook 对应的数值越大越会被优先使用 "overwrites_rank": [], "dependencies": [] // 依赖其他插件 }