微擎 Hack (2) – 页面路由

模块视图的定义在 /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_(“SELECT mid FROM ims_modules WHERE name = ‘MODULE_NAME’;”);


【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2014/08/we7-hack-2.html【微擎 Hack (2) – 页面路由】

发表评论

电子邮件地址不会被公开。 必填项已用*标注