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-11 17:59:31 +00:00 committed by Tim Hunt
parent 20751863e3
commit 26efb4888f

View File

@ -522,11 +522,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);
}