You are here

function quiz_update in Quiz 6.4

Same name and namespace in other branches
  1. 5.2 quiz.module \quiz_update()
  2. 5 quiz.module \quiz_update()
  3. 6.6 quiz.module \quiz_update()
  4. 6.2 quiz.module \quiz_update()
  5. 6.3 quiz.module \quiz_update()
  6. 6.5 quiz.module \quiz_update()
  7. 7.6 quiz.module \quiz_update()
  8. 7 quiz.module \quiz_update()
  9. 7.4 quiz.module \quiz_update()
  10. 7.5 quiz.module \quiz_update()

Implementation of hook_update().

File

./quiz.module, line 646
Quiz Module

Code

function quiz_update($node) {
  _quiz_save_user_settings($node);

  // Quiz node vid (revision) was updated.
  if ($node->revision) {

    // Insert a new row in the quiz_node_properties table.
    $old_auto = isset($node->auto_created);
    $node->auto_created = TRUE;
    quiz_insert($node);
    if (!$old_auto) {
      unset($node->auto_created);
    }

    // Create new quiz-question relation entries in the quiz_node_relationship
    // table.
    quiz_update_quiz_question_relationship($node->old_vid, $node->vid, $node->nid);
  }
  else {

    // Update an existing row in the quiz_node_properties table.
    _quiz_common_presave_actions($node);
    $sql = "UPDATE {quiz_node_properties}\n      SET vid = %d,\n        aid='%s',\n        randomization = %d,\n        backwards_navigation = %d,\n        repeat_until_correct = %d,\n        quiz_open = %d,\n        quiz_close = %d,\n        takes = %d,\n        show_attempt_stats = %d,\n        keep_results = %d,\n        time_limit = '%d',\n        pass_rate = %d,\n        summary_pass = '%s',\n        summary_default = '%s',\n        quiz_always = %d,\n        feedback_time = %d,\n        display_feedback = %d,\n        number_of_random_questions = %d,\n        has_userpoints = %d,\n        allow_skipping = %d,\n        allow_resume = %d,\n        allow_jumping = %d\n      WHERE vid = %d\n        AND nid = %d";
    $resource = db_query($sql, $node->vid, $node->aid, $node->randomization, $node->backwards_navigation, $node->repeat_until_correct, $node->quiz_open, $node->quiz_close, $node->takes, $node->show_attempt_stats, $node->keep_results, $node->time_limit, $node->pass_rate, $node->summary_pass, $node->summary_default, $node->quiz_always, $node->feedback_time, $node->display_feedback, $node->number_of_random_questions, isset($node->has_userpoints) ? $node->has_userpoints : 0, $node->allow_skipping, $node->allow_resume, $node->allow_jumping, $node->vid, $node->nid);
    _quiz_update_resultoptions($node);
  }
  _quiz_check_num_random($node);
  _quiz_check_num_always($node);
  quiz_update_max_score_properties(array(
    $node->vid,
  ));

  // If the node has no questions redirect to the manage questions tab
  _quiz_redirect_if_empty($node);
}