王骏的博客
编程、网络技术点滴...

公告

逐渐将VC知识库的博客迁移到这里!

随笔分类

随笔档案

相册

最新评论

阅读排行榜

评论排行榜

程序员博客   首页  新随笔  订阅  管理  登录 
 
JO2000 阅读(396) 评论(0)

作者: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");


转载自:http://www.huangwenchao.com.cn


发表评论
切换编辑模式