Bootstrap

dtcms php,微擎开发之模块插件

先附上微擎插件的原理:

微擎模块插件的深度解析

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 (模块根目录)是主模块的,而非插件的。

微信扫码,体验更多开发案例

;