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.
This commit is contained in:
Joseph Rezeau
2012-12-15 10:07:19 +00:00
committed by Tim Hunt
parent 041a234f6a
commit 29c1067b68
+10 -5
View File
@@ -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);
}