我正在将moodle插件从1.9转换为2.2,代码中的一行是:
/// setup global $COURSE, language and locale
course_setup($courseid);
查看 2.2 代码后,我找不到任何对 course_setup 的引用。如何在 2.2 中复制这行代码?
我正在将moodle插件从1.9转换为2.2,代码中的一行是:
/// setup global $COURSE, language and locale
course_setup($courseid);
查看 2.2 代码后,我找不到任何对 course_setup 的引用。如何在 2.2 中复制这行代码?
$PAGE->set_course().
一点研究。从功能文档set_course
:
设置当前课程。这将设置 $PAGE->course 和 $COURSE。它还设置了正确的主题和语言环境。
通常你不需要自己调用这个函数,如果你传递一个 $course 给它,require_login 会为你调用它。您可以在需要调用 require_login() 的页面上使用此函数。
根据文档,不推荐使用的功能course_setup
:
设置所有全局
$CFG
课程变量,设置语言环境和主题。该功能可以在不需要登录的页面上使用,而不是require_login()
我查看了一些代码。在 1.9 中,您有以下代码course/user.php
:
if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext)
and !has_capability('moodle/course:view', $coursecontext)) {
// do not require parents to be enrolled in courses ;-)
course_setup($course);
} else {
require_login($course);
}
在 Moodle 2.3 中,相同的代码片段是:
if (has_capability('moodle/user:viewuseractivitiesreport', $personalcontext)
and !is_enrolled($coursecontext)) {
// do not require parents to be enrolled in courses ;-)
$PAGE->set_course($course);
} else {
require_login($course);
}