0

Xiuno插件开发Hook 机制说明PHP

xinyu
2025-01-05 84

Hook 机制

Xiuno BBS 的插件机制分为两种,一种是 Hook,一种是 Overwrite。所谓 Hook,就是往代码里插入代码,多个插件的代码合并后插入到 hook 指定的位置,最后生成的代码存放于 tmp 目录,被 include

在”Hello, Xiuno Plugin“章节中的实例就是基于 Hook 的。

文件 view/htm/header.inc.htm 中的代码,包含一个 hook header_body_start.htm,我们来将代码插入到此处:

<body>
<!--{hook header_body_start.htm}-->
<div id="wrapper">
Markup
制作插件 A:
plugin/
 my_plugin_a/
  conf.json
        hook/
  header_body_start.htm
假定 header_body_start.htm 的内容为:

Hello, Pugin A

有插件 B:
plugin/
 my_plugin_B/
  conf.json
        hook/
  header_body_start.htm
假定 header_body_start.htm 的内容为:

Hello, Pugin B
Markup

那么最后生成的文件位置在 tmp/view_htm_header_body_start.htm,内容为:

<body>
Hello, Pugin A
Hello, Pugin B
<div id="wrapper">
Markup
因为程序在 include 时候做了转换:
include _include('./view/htm/header.inc.htm');

// 基本等价于:
include ''./tmp/view_htm_header_body_start.htm;
本站申明 1、本论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请投诉举报
2、本论坛的资源部分来源于网络,如有侵权,请 私信联系站长进行删除处理。
3、不得发布和链接任何有关政治, 色情, 宗教, 迷信.低俗、变态、血腥、暴力以及危害国家安全.诋毁政府形象等违法言论和信息的帖子.
4、本帖图片及内容纯属发布用户个人意见,与本站无关!
4,本帖如为原创资源/教程分享帖,则本站与发布用户共同享有内容版权!
6,本站管理有权在不经发布者同意的情况下,根据版规及相关法律法规删除/修改本帖!
7,如无特别说明,任何个人或者组织不得转载本帖内容!任何个人或团体不得将本站资源用于非法用途!
8,未尽事宜最终解释权归本站(小白网)所有!

最新回复 (0)

    暂无评论

    • Xiuno论坛
      2
返回
来发布一条评论吧~点击关闭评论框