/** * Displays a link to run the question tests, if applicable. * @param qtype_stack_question $question * @param question_display_options $options * @return string HTML fragment. */ protected function question_tests_link(qtype_stack_question $question, question_display_options $options) { if (!empty($options->suppressruntestslink)) { return ''; } if (!$question->user_can_view()) { return ''; } $urlparams = array('questionid' => $question->id); // This is a bit of a hack to find the right thing to put in the URL. $context = $question->get_context(); if (!empty($options->editquestionparams['cmid'])) { $urlparams['cmid'] = $options->editquestionparams['cmid']; } else { if (!empty($options->editquestionparams['courseid'])) { $urlparams['courseid'] = $options->editquestionparams['courseid']; } else { if ($cmid = optional_param('cmid', null, PARAM_INT)) { $urlparams['cmid'] = $cmid; } else { if ($courseid = optional_param('courseid', null, PARAM_INT)) { $urlparams['courseid'] = $courseid; } else { if ($context->contextlevel == CONTEXT_MODULE) { $urlparams['cmid'] = $context->instanceid; } else { if ($context->contextlevel == CONTEXT_COURSE) { $urlparams['courseid'] = $context->instanceid; } else { $urlparams['courseid'] = get_site()->id; } } } } } } $links = array(); if ($question->user_can_edit()) { $links[] = html_writer::link(new moodle_url('/question/type/stack/tidyquestion.php', $urlparams), stack_string('tidyquestion')); } $urlparams['seed'] = $question->seed; $links[] = html_writer::link(new moodle_url('/question/type/stack/questiontestrun.php', $urlparams), stack_string('runquestiontests')); return html_writer::tag('div', implode(' | ', $links), array('class' => 'questiontestslink')); }