diff --git a/mod/quiz/attempt.php b/mod/quiz/attempt.php index 2051fb0809b..0df9ae7cece 100644 --- a/mod/quiz/attempt.php +++ b/mod/quiz/attempt.php @@ -12,11 +12,11 @@ if (! $cm = get_record("course_modules", "id", $id)) { error("Course Module ID was incorrect"); } - + if (! $course = get_record("course", "id", $cm->course)) { error("Course is misconfigured"); } - + if (! $quiz = get_record("quiz", "id", $cm->instance)) { error("Course module is incorrect"); } @@ -62,8 +62,8 @@ $strquiz = get_string("modulename", "quiz"); print_header("$course->shortname: $quiz->name", "$course->fullname", - "$navigation id>$strquizzes -> - id\">$quiz->name -> $strattemptnum", + "$navigation id>$strquizzes -> + id\">$quiz->name -> $strattemptnum", "", "", true); echo '
'; // for overlib @@ -108,7 +108,7 @@ print_heading(get_string("noanswers", "quiz")); print_continue("attempt.php?q=$quiz->id"); exit; - } + } if (!$questions = get_records_list("quiz_questions", "id", $quiz->questions)) { error("No questions found!"); @@ -127,30 +127,30 @@ } else if (ereg('^q([0-9]+)r([0-9]+)$', $key, $keyregs)) { // Random-style answers $questions[$keyregs[1]]->answer[] = "$keyregs[2]-$value"; - + } else if (ereg('^q([0-9]+)ma([0-9]+)$', $key, $keyregs)) { // Multi-answer questions $questions[$keyregs[1]]->answer[] = "$keyregs[2]-$value"; } else if ('shuffleorder' == $key) { $shuffleorder = explode(",", $value); // Actual order questions were given in - + } else { // Useful for debugging new question types. Must be last. error("Answer received for non-existent question ($key -> $value)"); } } + if($timelimit > 0) { + if(($timelimit + 60) <= $timesincestart) { + $quiz->timesincestart = $timesincestart; + } + } + if (!$result = quiz_grade_attempt_results($quiz, $questions)) { error("Could not grade your quiz attempt!"); } - if($timelimit > 0) { - if(($timelimit + 60) <= $timesincestart) { - $result->sumgrades = 0; - } - } - if ($attempt = quiz_save_attempt($quiz, $questions, $result, $attemptnumber)) { - add_to_log($course->id, "quiz", "submit", + add_to_log($course->id, "quiz", "submit", "review.php?id=$cm->id&attempt=$attempt->id", "$quiz->id", $cm->id); } else { notice(get_string("alreadysubmitted", "quiz"), "view.php?id=$cm->id"); @@ -193,10 +193,10 @@ } /// Actually seeing the questions marks the start of an attempt - + if (!$unfinished = quiz_get_user_attempt_unfinished($quiz->id, $USER->id)) { if ($newattemptid = quiz_start_attempt($quiz->id, $USER->id, $attemptnumber)) { - add_to_log($course->id, "quiz", "attempt", + add_to_log($course->id, "quiz", "attempt", "review.php?id=$cm->id&attempt=$newattemptid", "$quiz->id", $cm->id); } else { error("Sorry! Could not start the quiz (could not save starting time)"); @@ -261,7 +261,7 @@ $result->feedback = array(); // Not to be printed $result->attemptbuildsonthelast = true; } - + } else { // No latest attempt, or latest attempt was empty - Reset to defaults $questions = NULL; diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 22248f4f164..91421cdac7b 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -1365,7 +1365,7 @@ function quiz_category_select_menu($courseid,$published=false,$only_editable=fal function quiz_get_category_coursename($category) { /// if the category is published, adds on the course -/// name +/// name $cname=$category->name; if ($category->publish) { if ($catcourse=get_record("course","id",$category->id)) { @@ -1593,7 +1593,7 @@ function quiz_print_cat_question_list($categoryid, $quizselected=true) { echo '