/** * Get the feedback text that should be show to a student who got the given grade in the given quiz. * * @param int $quizid quiz instance id * @param float $grade the grade to check * @return array of warnings and status result * @since Moodle 3.1 * @throws moodle_exception */ public static function get_quiz_feedback_for_grade($quizid, $grade) { global $DB; $params = array('quizid' => $quizid, 'grade' => $grade); $params = self::validate_parameters(self::get_quiz_feedback_for_grade_parameters(), $params); $warnings = array(); list($quiz, $course, $cm, $context) = self::validate_quiz($params['quizid']); $result = array(); $result['feedbacktext'] = ''; $result['feedbacktextformat'] = FORMAT_MOODLE; $feedback = quiz_feedback_record_for_grade($params['grade'], $quiz); if (!empty($feedback->feedbacktext)) { list($text, $format) = external_format_text($feedback->feedbacktext, $feedback->feedbacktextformat, $context->id, 'mod_quiz', 'feedback', $feedback->id); $result['feedbacktext'] = $text; $result['feedbacktextformat'] = $format; } $result['warnings'] = $warnings; return $result; }
/** * Get the feedback text that should be show to a student who * got this grade on this quiz. The feedback is processed ready for diplay. * * @param float $grade a grade on this quiz. * @param object $quiz the quiz settings. * @param object $context the quiz context. * @return string the comment that corresponds to this grade (empty string if there is not one. */ function quiz_feedback_for_grade($grade, $quiz, $context) { if (is_null($grade)) { return ''; } $feedback = quiz_feedback_record_for_grade($grade, $quiz); if (empty($feedback->feedbacktext)) { return ''; } // Clean the text, ready for display. $formatoptions = new stdClass(); $formatoptions->noclean = true; $feedbacktext = file_rewrite_pluginfile_urls($feedback->feedbacktext, 'pluginfile.php', $context->id, 'mod_quiz', 'feedback', $feedback->id); $feedbacktext = format_text($feedbacktext, $feedback->feedbacktextformat, $formatoptions); return $feedbacktext; }