Discuz! 7.1新内核插件开发笔记

时间: 2009-12-20 / 分类: 技术相关 / 浏览次数: 1,436 views / 1个评论 发表评论

[文章作者:叶歆昊   最后修改:2010-07-20   转载请注明原文链接:http://littz.com/notes-plug-in-development-of-discuz-71-new-core.html]

从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

1个评论

  1. 匿名
    2009/12/23 于 14:58:35

    vBulletin比较喜欢呀
    discuz 我已经失望了

发表评论

您的昵称 *

您的邮箱 * (绝对保密)

您的网站