Moodle 课程 ID 始终等于 1

Moodle Course ID always equals to 1

我正在尝试在如下所示的 php 脚本中获取 Moodle 课程 ID。

我已经在不同的课程和不同的帐户中对其进行了测试,它总是给我 ID 1。这是为什么以及如何获得正确的 ID?

<?php
require('./config.php');
global $PAGE;

echo $PAGE->course->id;
?>

Moodle 只知道您的页面是哪个课程的一部分,如果您告诉它(您可以通过跟随站点上任何课程的 link 到达您的页面)。当您为您的页面创建 link 时,您需要包含某种参数,该参数将告诉您的页面它应该被视为哪门课程的一部分,例如$url = new moodle_url('/blocks/myblock/mypage.php', ['id' => $PAGE->course->id]); echo html_writer($url, 'Look at my page');

然后,一旦您遵循 link,使用 required_param() 收集参数并使用 require_login() 设置页面。例如

$courseid = required_param('id', PARAM_INT);
$course = $DB->get_record('course', ['id' => $courseid], '*', MUST_EXIST);
require_login($course);

之后,将配置$PAGE->course。