function check_file_access($question, $state, $options, $contextid, $component, $filearea, $args) { $itemid = reset($args); if ($component == 'question' && $filearea == 'answerfeedback') { $result = $options->feedback && array_key_exists($itemid, $question->options->answers); if (!$result) { return false; } foreach ($question->options->answers as $answer) { if ($this->test_response($question, $state, $answer)) { return true; } } return false; } else { if ($filearea == 'instruction') { if ($itemid != $question->id) { return false; } else { return true; } } else { return parent::check_file_access($question, $state, $options, $contextid, $component, $filearea, $args); } } }
function get_correct_responses(&$question, &$state) { $correct = parent::get_correct_responses($question, $state); if ($correct[''] != '*' && ($unit = $this->get_default_numerical_unit($question))) { $correct[''] .= ' ' . $unit->unit; } return $correct; }
function compare_responses($question, $state, $teststate) { if (!parent::compare_responses($question, $state, $teststate)) { return false; } if (isset($state->responses['wirisCASHidden']) xor isset($teststate->responses['wirisCASHidden'])) { return false; } else { if (isset($state->responses['wirisCASHidden']) && isset($teststate->responses['wirisCASHidden'])) { return $state->responses['wirisCASHidden'] == $teststate->responses['wirisCASHidden']; } else { return true; } } }