欢迎关注微信公众号:chave-cn

discuz hook插件的解释

最近在为discuz hook的解释在搞了很久,搜了些资料又没怎么解释清楚,都只说是discuz放插件的钩子,但是,作为想二次开发的同学来讲,这个解释可定是不满意滴。所以,本人又自己查了代码,不幸被我发现了,希望对同学们有帮助....

<!--{hook/viewthread_postbottom $postcount}--> 

$postcount 每页的楼层数,楼主为0 ,刚好$postcount=0时是可见的,等于别的值是不可见的,所以,就只有在每版的第一楼可见,其他楼层不可以见...

class_template.php 执行的语句为这句 function hooktags(){}

上面结合就等于执行了下面这句代码,多的不解释,自己去研究代码!
hooktags('viewthread_postbottom', $postcount);

 

1.$this->replacecode['search'][$i] = $search = "<!--HOOK_TAG_$i-->";

2.$this->replacecode['replace'][$i] 

总结,函数一为查找的东西,模版里面的东西,函数二是程序正式运行的代码,等价于,把函数一的

内容替换成php能够执行的函数二。

 

由上面2个帖子可以得出

1.<!--{hook/viewthread_postbottom $postcount}--> // 模版里面的插件钩子

2.$_G['setting']['pluginhooks']['$hookid']$key;                                // 真正模版里面执行的php代码

二者对比发现 
viewthread_postbottom 为 $hookid

$postcount 为 $key

值得注意的是,这个数组,只存在这个值 $_G['setting']['pluginhooks']['$hookid'][0]

故,在模版里面hook的写法可以写为  

<!--{hook/viewthread_postbottom $postcount}--> 只在每页第一楼执行 

<!--{hook/viewthread_postbottom 0}-->  帖子的所有楼层显示php代码

另:如有不同见解,请跟贴,本人道行不高,只能解析到这里

微信号
微信公众号

tao-s.com