文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>moodle系统context表分析

moodle系统context表分析

时间:2010-04-11  来源:lsstarboy

    Moodle的context实在难懂,它基本上是一个权限控制的表,同名字一样,负责和其它各个部分的权限连接。
   它的目标是实现每一个页面的权限控制,它跟role权限表是紧密相连的。
   官方的解释,Context相当于一个容器,它可以放下课程、用户、模块等东西。
http://docs.moodle.org/en/Context

    新建一个课程,至少要添加如下几条记录:
id contentlevel instanceid path      depth
37   50            4      /1/11/37     3
38   80           21      /1/11/37/38  4
39   80           22      /1/11/37/39  4
40   80           23      /1/11/37/40  4
41   80           24      /1/11/37/41  4
42   30            3      /1/42        2
43   70            9      /1/11/37/43  4

其中contentlevel在accesslib.php中定义,50代表课程,70代表module,80代表block

对照上表,
37号是一个课程,它的id是4,所以可以到course表中去查找相关信息,

38-41号分别对应一个block,其在block_instance中对应的id是21-24,
id blockname parentcontextid showinsubcontexts pagetypepattern subpagepattern defaultregion defaultweight configdata
21 search_forums 37 0 course-view-* NULL side-post 0  
22 news_items 37 0 course-view-* NULL side-post 1  
23 calendar_upcoming 37 0 course-view-* NULL side-post 2  
24 recent_activity 37 0 course-view-* NULL side-post 3
可以查看第二栏的说明,找出分别对应的是哪一个模块。

42号是30,对应于CONTEXT_USER,代表用户,即id为3的用户。

43号为70,在course_module中对应于9号,再查找其类型,代表是论坛。

注:contextlevel就是一个类型,instance就是一个资源id号,取这个种字段名实在难以理解,直接改为resourcetype,resourceid,就不用再费这三个小时去查找它的意思了。
  官方直接把这几种资源类型称之为六个level,这样也就不难理解它的名字了。


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载