异页面调用hooks方法

discuz中的hook是一个很有意思的创新,俗称钩子。

hook,实际上是对应的hook 点是在入口文件加载数据,在对应的hook点以字符串的形式输出。在模板中的使用的方式为:

<!–{hook/index_top}–>

处理相关脚本的核心函数为:

function_core.php

function hookscript($script, $hscript, $type = ‘funcs’, $param = array(), $func = ”, $scriptextra = ”);

系统原调用的操作方式为:

runhooks();

每个入口文件里几乎都有,为当前入口和动作,调用对应的相关的hook。

也就是通过hookscript这个函数处理。

所以如果我想在portal的首页调用forum的index的钩子,那就会有问题,没有执行。导致在protal模板中输出的<!–{hook/index_top}–> 为空。

知道来由就好说了。

现在再再运行的过程中的,我自己手动调用相关的函数,自己伪造下页面和入口。

即:

runhooks();//我不去除的主要原因是每个页面都有自己的默认钩子,如全局的头和脚.
hookscript(“index”,”forum”);//这个就是咱们要的部分了。

这就是异页面调用钩子的方式了。

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827