You are here

function quiz_question_revision_actions_form_submit in Quiz 7.5

Same name and namespace in other branches
  1. 8.6 question_types/quiz_question/quiz_question.pages.inc \quiz_question_revision_actions_form_submit()
  2. 8.5 question_types/quiz_question/quiz_question.pages.inc \quiz_question_revision_actions_form_submit()
  3. 7.6 question_types/quiz_question/quiz_question.pages.inc \quiz_question_revision_actions_form_submit()

Submit callback for the revision actions page.

File

question_types/quiz_question/quiz_question.pages.inc, line 100
User page callbacks for the quiz_question module.

Code

function quiz_question_revision_actions_form_submit($form, &$form_state) {
  $form_state['redirect'] = 'node/' . $form_state['values']['question_node']->nid;
  foreach ($form_state['values']['quizzes'] as $nid => $actions) {

    // Get the current version of the questions.
    $quiz_node = node_load($nid);
    $question_node = node_load($form_state['values']['question_node']->nid);
    $efq = new EntityFieldQuery();
    $results = $efq
      ->entityCondition('entity_type', 'quiz_question_relationship')
      ->propertyCondition('parent_nid', $quiz_node->nid)
      ->propertyCondition('parent_vid', $quiz_node->vid)
      ->execute();
    $questions = entity_load('quiz_question_relationship', array_keys($results['quiz_question_relationship']));
    foreach ($questions as $question) {
      if ($question->child_nid == $question_node->nid) {

        // We found the existing question.
        $question->child_vid = $question_node->vid;
      }
    }
    if ($actions['revise'] == 'revise') {
      $result = quiz_set_questions($quiz_node, $questions, TRUE);
      if ($result) {
        drupal_set_message(t('Quiz %title succesfully revised.', array(
          '%title' => $quiz_node->title,
        )), 'status');
      }
    }
    elseif ($actions['revise'] == 'update') {
      $result = quiz_set_questions($quiz_node, $questions, FALSE);
      if ($result) {
        drupal_set_message(t('Quiz %title succesfully updated.', array(
          '%title' => $quiz_node->title,
        )), 'status');
      }
    }
    else {
      drupal_set_message(t('Quiz not updated, please use the Quiz question listing to if you decide to update the quiz manually.', array(
        '%title' => $quiz_node->title,
      )), 'status');
    }
  }
}