Xiuno插件开发,Hook 机制说明 PHP 插件 XiunoBBS

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">

制作插件 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

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

<body>
Hello, Pugin A
Hello, Pugin B
<div id="wrapper">

因为程序在 include 时候做了转换:

include _include('./view/htm/header.inc.htm');

// 基本等价于:

include ''./tmp/view_htm_header_body_start.htm;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源优测

[接口测试 - 基础篇] 12 还是要掌握python日志管理模块的

python logging模块介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的...

3618
来自专栏老码农专栏

ActFramework r1.3.0 - 激动人心的特性一览

1232
来自专栏java一日一条

Java Spring中同时访问多种不同数据库

开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中。使用Spring框架时,...

1921
来自专栏Linyb极客之路

如何破解springboot/springcloud上传中文文件名乱码魔咒

如果以上三种方案都没办法解决,接下来就要思考下文件的上传流程,比如是否有通过网关之类的。接下来介绍当通过zuul来进行路由上传,文件中文名乱码问题的解决方式。

5881
来自专栏C/C++基础

GDB入门教程

GDB(The GNU Debugger),是GNU开源组织发布的一个强大的UNIX程序调试工具。如果你是在 UNIX平台下开发软件,你会发现GDB这个调试工具...

2313
来自专栏程序猿DD

Spring Boot属性配置文件详解

相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷。我们在Spring Boot使用过程中,最直观的感受就...

2169
来自专栏漫漫全栈路

Windows下JavaWeb环境的安装笔记

写在前面:专升本报道开课,这个学期的课程中开了JavaWeb和Oracle数据库,作为软狗虽然一百个不愿意,但是学习为重嘛。Oracle数据库之前在吉奥实习的...

3375
来自专栏Spring相关

Spring Boot 日志配置

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了...

1516
来自专栏坚毅的PHP

python 应用thrift---- thrift的监控fb303 -

2011-08-18 fb303 在thrift的源码包 contrib之中 * What does it provide? * A standard in...

4055
来自专栏http://www.cnblogs.com

centos6.5编译安装php7

1.安装依赖软件库:   yum install -y libxml2-devel libtool* curl-devel libjpeg-devel libp...

44911

扫码关注云+社区

领取腾讯云代金券