$categoryid); // Validate params. if (!$category = $DB->get_record('question_categories', array('id' => $categoryid))) { print_error('categorydoesnotexist', 'question', $returnurl); } if ($cmid) { list($module, $cm) = get_module_from_cmid($cmid); require_login($cm->course, false, $cm); $thiscontext = get_context_instance(CONTEXT_MODULE, $cmid); $hiddenparams['cmid'] = $cmid; } else if ($courseid) { require_login($courseid, false); $thiscontext = get_context_instance(CONTEXT_COURSE, $courseid); $module = null; $cm = null; $hiddenparams['courseid'] = $courseid; } else { print_error('missingcourseorcmid', 'question'); } // Check permissions. $categorycontext = get_context_instance_by_id($category->contextid); require_capability('moodle/question:add', $categorycontext); // Ensure other optional params get passed on to question.php. if (!empty($returnurl)) { $hiddenparams['returnurl'] = $returnurl; } if (!empty($appendqnumstring)) { $hiddenparams['appendqnumstring'] = $appendqnumstring; } $PAGE->set_url('/question/addquestion.php', $hiddenparams); $chooseqtype = get_string('chooseqtypetoadd', 'question'); $PAGE->set_heading($COURSE->fullname); if ($cm !== null) { if (stripos($returnurl, "$CFG->wwwroot/mod/{$cm->modname}/view.php")!== 0) { //don't need this link if returnurl returns to view.php $PAGE->navbar->add(get_string('editinga', 'moodle', get_string('modulename', $cm->modname)),$returnurl); } $PAGE->navbar->add($chooseqtype); $PAGE->set_title($chooseqtype); echo $OUTPUT->header(); } else { $PAGE->navbar->add(get_string('questionbank', 'question'),$returnurl); $PAGE->navbar->add($chooseqtype); $PAGE->set_title($chooseqtype); echo $OUTPUT->header(); } // Display a form to choose the question type. echo $OUTPUT->notification(get_string('youmustselectaqtype', 'question')); echo $OUTPUT->box_start('generalbox boxwidthnormal boxaligncenter', 'chooseqtypebox'); print_choose_qtype_to_add_form($hiddenparams); echo $OUTPUT->box_end(); echo $OUTPUT->footer();