首先声明,本主只有少量的网页制作基础,对于PHP的理解还是建立在C语言的基础上,以往从Emlog官网下载各种插件,使用的时候总是不能很好的控制插件的显示效果,经过代码的分析,大致了解了模板插件对钩子的使用现说明如下:
钩子设计到两个函数:
1.addAction('code', 'show'):写在插件文件的底部,用来添加一个show的函数到钩子code处;
/**
* 该函数在插件中调用,挂载插件函数到预留的钩子上
*
* @param string $hook
* @param string $actionFunc
* @return boolearn
*/
function addAction($hook, $actionFunc) {
global $emHooks;
if (!@in_array($actionFunc, $emHooks[$hook])) {
$emHooks[$hook][] = $actionFunc;
}
return true;
}
2.<?php doAction('code', $logData); ?>:本行代码放置的位置就是code钩子的位置,$logData只是一个array变量类型说明,即是在此为至执行钩子下边的函数,需要说明的是,一个钩子下边可以有很多函数,具体函数的执行顺序还没闹明白,以后知道了在不补上。
/**
* 执行挂在钩子上的函数,支持多参数 eg:doAction('post_comment', $author, $email, $url, $comment);
*
* @param string $hook
*/
function doAction($hook) {
global $emHooks;
$args = array_slice(func_get_args(), 1);
if (isset($emHooks[$hook])) {
foreach ($emHooks[$hook] as $function) {
$string = call_user_func_array($function, $args);
}
}
}
发表评论: