quiz editing: MDL-17284 Add question here garbled layout when adding to an empty quiz.

That then lead to an incorrect display of the number of questions in the quiz.
This commit is contained in:
Tim Hunt 2010-05-01 08:11:25 +00:00
parent ac250ad54a
commit 78634f1e06
3 changed files with 4 additions and 3 deletions

View File

@ -90,7 +90,7 @@ function quiz_delete_empty_page($layout, $index) {
*/
function quiz_add_quiz_question($id, &$quiz, $page = 0) {
global $DB;
$questions = explode(',', $quiz->questions);
$questions = explode(',', quiz_clean_layout($quiz->questions));
if (in_array($id, $questions)) {
return false;
}
@ -101,7 +101,7 @@ function quiz_add_quiz_question($id, &$quiz, $page = 0) {
$end = end($breaks);
$last = prev($breaks);
$last = $last ? $last : -1;
if (!$quiz->questionsperpage || (($end - $last -1) < $quiz->questionsperpage)) {
if (!$quiz->questionsperpage || (($end - $last - 1) < $quiz->questionsperpage)) {
array_pop($questions);
}
}

View File

@ -301,7 +301,7 @@ function quiz_number_of_pages($layout) {
* @return integer The number of questions in the quiz.
*/
function quiz_number_of_questions_in_quiz($layout) {
$layout = quiz_questions_in_quiz($layout);
$layout = quiz_questions_in_quiz(quiz_clean_layout($layout));
$count = substr_count($layout, ',');
if ($layout !== '') {
$count++;

View File

@ -48,6 +48,7 @@ class quiz_locallib_test extends UnitTestCase {
$this->assertEqual(quiz_number_of_questions_in_quiz('1,2,3,0'), 3);
$this->assertEqual(quiz_number_of_questions_in_quiz('1,2,3,0'), 3);
$this->assertEqual(quiz_number_of_questions_in_quiz('0,1,0,0,2,0'), 2);
$this->assertEqual(quiz_number_of_questions_in_quiz('10,,0,0'), 1);
}
function test_quiz_clean_layout() {