You are here

function questions_import_qti_create_node in Quiz 6.6

Same name and namespace in other branches
  1. 6.3 includes/questions_import/questions_import.admin.inc \questions_import_qti_create_node()

Take a description of a quiz question and turn it into a node.

The node is saved as the appropriate Quiz question type.

1 call to questions_import_qti_create_node()
questions_import_submit_qti12 in includes/questions_import/questions_import.admin.inc
This function imports questions from Question and Test Interoperability (QTI) format file.

File

includes/questions_import/questions_import.admin.inc, line 534
Administration file for Questions Import module

Code

function questions_import_qti_create_node($destination_node, $item, $form_state, $row, $import_id) {
  global $user;
  $item = (object) $item;
  $node = new stdClass();
  $node->title = $item->title;
  $node->teaser = $node->body = $item->content;
  $node->uid = $user->uid;
  $node->format = $form_state['values']['input_format'];
  $node->status = 1;
  $node->log = 'Imported from QTI importer.';
  $node->quiz_id = $destination_node->nid;
  $node->quiz_vid = $destination_node->vid;
  switch (strtolower($item->type)) {

    /*case 'explanation':
      $node->type = 'quiz_directions';
      break;
      case 'essay':
      $node->type = 'long_answer';
      $node->maximum_score = 1;
      break;*/
    case 'multiple choice':
      $node->type = 'multichoice';
      $answers = $item->answers;
      $node->number_of_answers = count($answers);

      // Add answers:
      $node->answers = array();
      foreach ($answers as $answer) {
        $node->answers[] = array(
          'answer' => $answer['text'],
          'feedback' => $answer['feedback'],
          'correct' => $answer['is_correct'],
          'result_option' => '0',
        );
      }
      break;
  }
  node_save(questions_import_node_save_static_data($node));
  db_query("INSERT INTO {quiz_questions_import_items} VALUES (%d, %d, %d)", $import_id, $node->nid, $row);
}