

毫无疑问,作为一款成功的社区建站软件,Discuz在很多方面确实是花了功夫,尤其是是让数万开发者加入其中,可以这么说,现在Discuz的发展离不开这些第三方的开发者。Discuz应用中心之所以有这么多开发者,这得益于其本身的便捷性,让具备技术功底的开发者能够较快上手对其进行二次开发。
做过Discuz二次开发的童鞋都知道,我们所需要做的就是增加templat和plugin目录,也就是通过自定义的插件和模版来改造属于我们自己个性化的Discuz。而插件开发中不可以不得不提的就是插件嵌入点(hook)了,类似的其他开源程序也有类似的概念,就比如说WordPress其实也有。
我们知道Discuz默认情况下有许多自带的嵌入点,我们可以在config/config_global.php加入如下代码后在网站的前台查看各个自带嵌入点的位置:
$_config['plugindeveloper'] = 2;
可以这么说,这些自带的嵌入点已经帮我们考虑了大多数页面嵌入的场景。然而,我们同时做过插件开发及模版开发的童鞋可能就有体会,有时候当我们的某个插件和自己的某个模版整合后,我们希望在除默认嵌入点之外的位置放上额外的嵌入点。比如我们手机模版forumdisplay.htm这个文件中,有其中如下代码:
<li><!--{hook/forumdisplay_thread_mobile $key}--><a href="forum.php?mod=viewthread&tid=$thread[tid]&extra=$extra"><h6>{$thread[subject]}</h6>.......</a></li>//全局嵌入点类class mobileplugin_muquan_m_seting { //代码块}//脚本嵌入点类class mobileplugin_muquan_m_seting_forum extends mobileplugin_muquan_m_seting{ //读取前面四张附件图片的方法,用于显示在主题列表中 public function forumdisplay_threadsimglist_output(){ //代码块 } //其他方法}