先附上微擎插件的原理:
微擎模块插件的深度解析
http://bbs.we7.cc/forum.php?mod=viewthread&tid=23617&fromuid=91356
(出处: 微擎微信论坛)
微擎的插件(HOOK)示例,只给出了模板文件中的使用方法,使用方法如下:
模板(html)中的使用方法:
{hook func="userlist" module="we7_testhook" uid="123" pagesize="18"}{/hook}
func和module是固定的键值,module:插件模块的标识; func:插件类中的方法名。
uid,pagesize这些是自定义参数名,可无限增加,
php中的写法:
$plugin_module = WeUtility::createModuleHook('we7_testhook');
call_user_func_array(array($plugin_module, 'hookwebuserlist'), array('params' => array('uid'=>"123",'pagesize'=>"18")));
插件中的接收方法:
插件本身就是一个模块,在模块根目录中写一个hook.php文件
defined('IN_IA') or exit('Access Denied');
class We7_testhookModuleHook extends WeModuleHook {
public function hookWebUserlist($hook) {
global $_W,$_GPC;
WeUtility::logging('hook',var_export($hook,true).$_W['uniacid']);
// include $this->template('userlist');
}
}
hookweb***是接收web端的hook传来的值,
hookmobile***是接收mobile端的hook传来的值,
注:
一、通过hook.php中接收的全局常量和变量,都是以主模块为基准的。如MODULE_ROOT (模块根目录)是主模块的,而非插件的。
微信扫码,体验更多开发案例