最近在为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代码
另:如有不同见解,请跟贴,本人道行不高,只能解析到这里