Discuz:插件的钩子使用技巧
来自站长百科
Discuz! 6.0|Discuz! 6.0安装|Discuz! 6.0使用|Discuz! 6.0风格模板|Discuz! 6.0插件|Discuz! 6.0升级|Discuz! 6.0开发|Discuz! 6.0 FAQ |
Discuz插件的钩子使用技巧,这里介绍如何更方便和容易的使用插件钩子
1、如果我们钩子里面的代码比较多,我建议独立一个文件写代码,再 include 这个独立的文件
钩子的代码就是
include DISCUZ_ROOT. './plugins/pluginname/mode.inc.php';
或者是(根据你自己的需要)
include_once DISCUZ_ROOT. './plugins/pluginname/mode.inc.php';
自己要实现的功能的代码就写在 ./plugins/pluginname/mode.inc.php文件里面实现。
这个对于测试和插件的升级都比较有好处的。
例如当发布了一个插件,为了安装的时候修改代码尽量的简洁(我们推荐你这样做),你使用到了钩子,但是因为发布不久,你需要更新钩子,所以得教会用户在不删除配置的情况下更新钩子的配置。那就相对比较麻烦,如果像我上面的设置的话,那么只需要更新文件即可,就是叫用户上传覆盖文件即可,非常方便。
2、模板中使用钩子
我们知道在Discuz!的模板语法中有 {eval parm},执行php代码的标记。那么要在模板上使用钩子,只要 {eval eval($hooks['demo_testhook']); }
那样,那么就完全可以执行钩子里面的代码了。
钩子是一个非常灵活的机制,所以大家可以仔细的研究下这个机制,那么设计出来的插件的安装难度可以大大的降低哈。