From 29c1067b683ab76756fbb59005992ee284b011cc Mon Sep 17 00:00:00 2001 From: Joseph Rezeau Date: Tue, 11 Dec 2012 17:59:31 +0000 Subject: [PATCH] MDL-37114 quiz form validation: feedback boundaries. The feedback boundaries must either be a number or a percentage. We were not correctly validating the non-percentage case. --- mod/quiz/mod_form.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mod/quiz/mod_form.php b/mod/quiz/mod_form.php index e207ad08fcb..31ead7bd2ed 100644 --- a/mod/quiz/mod_form.php +++ b/mod/quiz/mod_form.php @@ -470,11 +470,16 @@ class mod_quiz_mod_form extends moodleform_mod { $i = 0; while (!empty($data['feedbackboundaries'][$i] )) { $boundary = trim($data['feedbackboundaries'][$i]); - if (strlen($boundary) > 0 && $boundary[strlen($boundary) - 1] == '%') { - $boundary = trim(substr($boundary, 0, -1)); - if (is_numeric($boundary)) { - $boundary = $boundary * $data['grade'] / 100.0; - } else { + if (strlen($boundary) > 0) { + if ($boundary[strlen($boundary) - 1] == '%') { + $boundary = trim(substr($boundary, 0, -1)); + if (is_numeric($boundary)) { + $boundary = $boundary * $data['grade'] / 100.0; + } else { + $errors["feedbackboundaries[$i]"] = + get_string('feedbackerrorboundaryformat', 'quiz', $i + 1); + } + } else if (!is_numeric($boundary)) { $errors["feedbackboundaries[$i]"] = get_string('feedbackerrorboundaryformat', 'quiz', $i + 1); }