作者:huangwc
模块视图的定义在 /source/modules/MODULE_NAME/site.php 的 XXXModuleSite类中
方法分为:
后台方法 doWebXXX()
前台方法 doMobileXXX()
一、doWebXXX 后台方法
形如:
/site.php ?act=module &do=XXX &__weid=WEID &name=MODULE_NAME
其中: act 必须为 module name 是模块的名称 do 是方法 XXX 的名字 __weid 指定公众号的 weid,用于突破权限验证
二、doMobileXXX 前台方法
形如:
/mobile.php ?act=module &do=XXX &weid=WEID &name=MODULE_NAME &id=FANS_ID
act 必须为 module name 模块的名称 do 是方法 XXX 的名称 weid 访问的公众号的 weid id 当前粉丝的 id
三、注意事项
另外,我发现必须显式将模块的权限授予任意一个非根用户的用户,否则访问 mobile 视图的时候总会报错!
我感觉这应当是一个 kernel 的 bug。
造成错误的代码段放在了 /source/controller/mobile/module.ctrl.php 中
如果前面的条件不成立,有一段 if(!$exist) 的分支如果进去了就会报错。
** 解决方法
每次启动的时候检查是否已经有一个授权,如果没有:
执行 sql 将当前模块的权限授予所有非管理员用户;
$mid = pdo_fetch("SELECT mid FROM ims_modules WHERE name = MODULE_NAME");
转载自: