function _quiz_cleanup_after_jumping in Quiz 7
Same name and namespace in other branches
- 8.4 quiz.module \_quiz_cleanup_after_jumping()
- 6.4 quiz.module \_quiz_cleanup_after_jumping()
- 7.4 quiz.module \_quiz_cleanup_after_jumping()
Clean up result data when the user jumps forward in a quiz
When jumping in a quiz we might be skipping lots of questions. We need to update the result data according to this...
Parameters
object $quiz: The quiz node we want to clean up results for
int $rid: Result id for the result we want to clean up
1 call to _quiz_cleanup_after_jumping()
- quiz_jump_to in ./
quiz.module - Set the current session to jump to a specific question number
File
- ./
quiz.module, line 3615 - Quiz Module
Code
function _quiz_cleanup_after_jumping($quiz, $rid) {
$sql = "INSERT IGNORE INTO {quiz_node_results_answers}\n (result_id, question_nid, question_vid, is_skipped, answer_timestamp, number";
if ($quiz->randomization == 3) {
$sql .= ', tid';
}
$sql .= ') VALUES ';
$args = array();
$first = TRUE;
$time = REQUEST_TIME;
foreach ($_SESSION['quiz_' . $quiz->nid]['previous_quiz_questions'] as $previous_question) {
if (!$first) {
$sql .= ', ';
}
$sql .= '(%d, %d, %d, 1, ' . $time . ', %d';
array_push($args, $rid, $previous_question['nid'], $previous_question['vid'], $previous_question['number']);
if ($quiz->randomization == 3) {
$sql .= ', %d';
$args[] = $previous_question['tid'];
}
$sql .= ')';
$first = FALSE;
}
db_query($sql, $args);
}