NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
#### 模块嵌入点 模块嵌入点是为了解决模块之间或是插件与主模块之间的功能调用、功能占位等问题。 举个例子,主模块功能是商城功能,包含一个插件功能是支付功能。主模块在遇到支付功能按钮时,可以以钩子的形式来处理,先占位,系统会判断用户是否已经安装支付插件,如果有则显示出来支付功能按钮,如果没有则什么也不显示。 #### 定义模块嵌入点 * 模块嵌入点需要在模块目录下定义**hook.php** * We7\_testhookModuleHook 为模块标识,类名的定义遵循“模块标识ModuleHook”规则 * 此类必须继承 WeModuleHook 类 * web端的嵌入点以**hookWeb + Hook名称**来定义 * app端的嵌入点以**hookMobile + Hook名称**来定义 ~~~ class We7_testhookModuleHook extends WeModuleHook { // web端的嵌入点 public function hookMobileTest() { // 将调用 teamplate/mobile/testhook.html include $this->template('testhook'); } // app端的嵌入点 public function hookWebTest() { // 将调用 teamplate/testhook.html include $this->template('testhook'); }} ~~~ #### 调用Hook * 调用Hook时,web端与app端会分别调用各自的Hook * 系统会自动检测是否存在该Hook,进行调用数据 * 此标签会自动被替换定义嵌入点的内容 ~~~ {hook func="test" module="we7_testhook" pagesize="15"}{/hook} ~~~ **此标签除了 func 和 module 是必填的参数外,其余参数可由开发者自定义,会原样传入到嵌入点的函数中** #### 调用示例 下载下方压缩包,安装好两个模块,打开 嵌入点测试模块(主) 则可以看到该模块嵌入了另外一个模块的方法,如图 ![](http://cdn.w7.cc/images/2017/12/22/15139375775a3cdaaa1d10a_mN4lI4ZL4Fi8.jpg) 下载地址:[https://gitee.com/we7coreteam/demo\_app\_plugin](https://gitee.com/we7coreteam/demo_app_plugin)