Discuz! 7.1新内核插件开发笔记
从Discuz! 7.1开始,猴子开发了Discuz!新内核插件的机制,相对以前的插件,钩子、嵌入点功能更强大,导出的配置文件为XML格式。同时新内核自带插件变量设置和缓存,极大方便开发者。
例如写一个叫antispam的plugins,在discuz_root的plugins下建立antispam的文件夹,Discuz!后台设置插件,插件目录设置antispam,写两个全局嵌入点,设计插件时选择页面嵌入类型,保存为此名。
<?php
class plugin_antispam {
function global_header() {
return '11111111111';
}
function global_footer() {
return '22222222222'; }
}
?>
刷新Discuz!就可以看到页面中有11111111111和22222222222的输出,页面嵌入型就可以输出相关的内容。
如果内置的嵌入点不够怎么办?可以用钩子,钩子可以认为是自定义的嵌入点,不过写完了不会立即生效,钩子需要在设置插件时打开生效,并且将钩子埋入到需要嵌入的php文件,或者模版文件(模版文件需要用两次eval)。
如果需要逻辑判断呢?可以在嵌入点中直接写逻辑判断或者include,也可以使用全局包含(common.inc.php调用)。
普通的URL传值,可以写http://discuzurl/plugin.php?id=antispam:normal,需要保证normal.inc.php存在于antispam目录。
如果安装的时候需要做一些操作,可以导出XML文件,然后编辑,最后添加上installfile,例如内置嵌入点不够的情况,需要用户自行修改模版,但是我们可以在install.php中写上一些正则匹配,替换用户模版的内容,就无需用户修改模版了
详细的插件开发手册请由此下载http://www.discuz.net/thread-1424309-1-1.html

2009/12/23 于 14:58:35
vBulletin比较喜欢呀
discuz 我已经失望了