在Moodle中查找块内的上下文ID

时间:2016-10-04 11:27:09

标签: moodle

如何在 Moodle 2.9.1 中获取contextcontext id

目前我处于一个区块内:问题文件

在表单提交操作页面中,我需要context id。我不知道如何让context在一个块(或模块)中。我的代码看起来像这样:

question_action.php

require_once(dirname(dirname(dirname(__FILE__))).'/config.php');
require_once(dirname(__FILE__).'/locallib.php');


global $DB, $CFG;
require_once("$CFG->libdir/resourcelib.php");

if(isset($_GET['id'])){
 $cid = $_GET['id'];}  //course id
 if(isset($_GET['poolid'])){
 $paper= $_GET['paper'];} //question paper id

我如何在这里找到contextcontext id ..

1 个答案:

答案 0 :(得分:1)

在块get_content()函数中,您可以从$ this-> context-> id获取上下文。

如果您的块中有额外的PHP页面,则需要确保所有链接都添加了某种标识符作为参数(可以是courseid,blockid或contextid)。

假设您的所有链接都在其末尾具有courseid(可能是最明智的选择),您可以在页面上写下:

$courseid = required_param('id', PARAM_INT); // Do not use $_GET directly.
$course = $DB->get_record('course', ['id' => $courseid], '*', MUST_EXIST); // Optional, but you often need the course object.
$context = context_course::instance($courseid);
$contextid = $context->id;