0

我正在将moodle插件从1.9转换为2.2,代码中的一行是:

    /// setup global $COURSE, language and locale
    course_setup($courseid);

查看 2.2 代码后,我找不到任何对 course_setup 的引用。如何在 2.2 中复制这行代码?

4

1 回答 1

0
$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);
}
于 2013-11-01T10:46:16.020 回答