diff --git a/mod/quiz/config.html b/mod/quiz/config.html
index aed19c2dccc3e..74287761e611c 100644
--- a/mod/quiz/config.html
+++ b/mod/quiz/config.html
@@ -224,7 +224,7 @@
: |
grademethod, "", "", "");
+ choose_from_menu (quiz_get_grading_options(), "grademethod", $form->grademethod, "", "", "");
helpbutton("grademethod", get_string("grademethod","quiz"), "quiz");
?>
|
diff --git a/mod/quiz/locallib.php b/mod/quiz/locallib.php
index 57d7f407a49d3..34f12490da693 100644
--- a/mod/quiz/locallib.php
+++ b/mod/quiz/locallib.php
@@ -33,10 +33,6 @@
define("QUIZ_GRADEAVERAGE", "2");
define("QUIZ_ATTEMPTFIRST", "3");
define("QUIZ_ATTEMPTLAST", "4");
-$QUIZ_GRADE_METHOD = array ( QUIZ_GRADEHIGHEST => get_string("gradehighest", "quiz"),
- QUIZ_GRADEAVERAGE => get_string("gradeaverage", "quiz"),
- QUIZ_ATTEMPTFIRST => get_string("attemptfirst", "quiz"),
- QUIZ_ATTEMPTLAST => get_string("attemptlast", "quiz"));
/**#@-*/
@@ -533,6 +529,26 @@ function quiz_calculate_best_attempt($quiz, $attempts) {
}
}
+/**
+ * @return the options for calculating the quiz grade from the individual attempt grades.
+ */
+function quiz_get_grading_options() {
+ return array (
+ QUIZ_GRADEHIGHEST => get_string('gradehighest', 'quiz'),
+ QUIZ_GRADEAVERAGE => get_string('gradeaverage', 'quiz'),
+ QUIZ_ATTEMPTFIRST => get_string('attemptfirst', 'quiz'),
+ QUIZ_ATTEMPTLAST => get_string('attemptlast', 'quiz'));
+}
+
+/**
+ * @param int $option one of the values QUIZ_GRADEHIGHEST, QUIZ_GRADEAVERAGE, QUIZ_ATTEMPTFIRST or QUIZ_ATTEMPTLAST.
+ * @return the lang string for that option.
+ */
+function quiz_get_grading_option_name($option) {
+ $strings = quiz_get_grading_options();
+ return $strings[$option];
+}
+
/// OTHER QUIZ FUNCTIONS ////////////////////////////////////////////////////
diff --git a/mod/quiz/mod_form.php b/mod/quiz/mod_form.php
index 06878c6631a17..2d7ae3e874841 100644
--- a/mod/quiz/mod_form.php
+++ b/mod/quiz/mod_form.php
@@ -8,7 +8,7 @@ class mod_quiz_mod_form extends moodleform_mod {
function definition() {
- global $COURSE, $CFG, $QUIZ_GRADE_METHOD;
+ global $COURSE, $CFG;
$mform =& $this->_form;
//-------------------------------------------------------------------------------
@@ -117,7 +117,7 @@ function definition() {
//-------------------------------------------------------------------------------
$mform->addElement('header', 'gradeshdr', get_string('grades', 'grades'));
- $mform->addElement('select', 'grademethod', get_string("grademethod", "quiz"), $QUIZ_GRADE_METHOD);
+ $mform->addElement('select', 'grademethod', get_string("grademethod", "quiz"), quiz_get_grading_options());
$mform->setHelpButton('grademethod', array("grademethod", get_string("grademethod","quiz"), "quiz"));
$mform->setAdvanced('grademethod', $CFG->quiz_fix_grademethod);
$mform->setDefault('grademethod', $CFG->quiz_grademethod);
diff --git a/mod/quiz/view.php b/mod/quiz/view.php
index 41a4db76e267e..bd7a1ef27e0ef 100644
--- a/mod/quiz/view.php
+++ b/mod/quiz/view.php
@@ -97,7 +97,7 @@
echo "".get_string("attemptsallowed", "quiz").": $quiz->attempts
";
}
if ($quiz->attempts != 1) {
- echo "".get_string("grademethod", "quiz").": ".$QUIZ_GRADE_METHOD[$quiz->grademethod]."
";
+ echo "".get_string("grademethod", "quiz").": ".quiz_get_grading_option_name($quiz->grademethod)."
";
}
// Print information about timings.
@@ -289,7 +289,7 @@
if ($overallstats) {
if ($available && $moreattempts) {
$a = new stdClass;
- $a->method = $QUIZ_GRADE_METHOD[$quiz->grademethod];
+ $a->method = quiz_get_grading_option_name($quiz->grademethod);
$a->mygrade = $mygrade;
$a->quizgrade = $quiz->grade;
print_heading(get_string('gradesofar', 'quiz', $a));