discuz插件开发如何添加自定义钩子hook

Discuz 520浏览 0条评论 钩子discuz
//Hook位置在comment_li.htm,代码        <!--{hook/reply_middle_geetest}-->

//插件的测试代码

class plugin_freeng_portal extends plugin_freeng{

        function view_article_side_bottom(){
                return 'hello world'.CURSCRIPT;
                }
        function reply_middle_geetest(){
                return CURSCRIPT.'hello world';
                }
}

但是这样只是hook显示在页面中,后台插件根本还是执行不到那个自定义hook

见证奇迹的时刻来了

hook的名字要以模块名加_开始,其实这点做插件开发的时候应该已经察觉到了,每个hook的开头都是模块名

其实官方文档也有说明

function CURMODULE_USERDEFINE[_output]()

CURMODULE 指明了此函数在哪个模块执行


其实这个模块对应相应页面的mod参数,比如说看门户文章的页面url是portal.php?mod=post&aid=X,那这个页面的Hook就需要用post_打头

根据这个规则修改hook名为<!--{hook/post_reply_middle_geetest}-->(其实<!--{hook/post_digg}-->应该就可以)

同时函数名对应改成function post_reply_middle_geetest()

OK,成功执行


转载至:http://blog.csdn.net/jazywoo123/article/details/12949287

本文地址:http://wuheng.net/blog_90.html 转载请注明出处

分享到: