You are here

function quiz_make_new in Quiz 8.4

Same name and namespace in other branches
  1. 6.4 quiz.module \quiz_make_new()
  2. 7 quiz.module \quiz_make_new()
  3. 7.4 quiz.module \quiz_make_new()

Makes, saves and returns a new quiz node.

Parameters

$title: The title of the new node.

Return value

New quiz node object.

1 call to quiz_make_new()
QuizQuestion::saveRelationships in question_types/quiz_question/lib/Drupal/quiz_question/QuizQuestion.php
Handle the add to quiz part of the quiz_question_form

File

./quiz.module, line 1505
Quiz Module

Code

function quiz_make_new($title) {
  $user = \Drupal::currentUser();
  $new_node = array();

  // Get default user settings.
  $settings = _quiz_load_user_settings();
  if (!$settings) {
    $settings = _quiz_load_user_settings(\Drupal::config('quiz.settings')
      ->get('quiz_def_uid'));
  }
  $quiz_default = _quiz_get_node_defaults();

  //TODO: Find right way to save 'quiz_open' and 'quiz_close'
  if (isset($quiz_default['quiz_open'])) {
    $quiz_default['quiz_open'] = strtotime($quiz_default['quiz_open']);
  }
  if (isset($quiz_default['quiz_close'])) {
    $quiz_default['quiz_close'] = strtotime($quiz_default['quiz_close']);
  }
  $settings += $quiz_default;
  foreach ($settings as $key => $value) {
    $new_node[$key] = $value;
  }
  $new_node['uid'] = $user
    ->id();
  $new_node['type'] = 'quiz';
  $new_node['title'] = $title;
  $new_node['status'] = 1;
  $new_node['auto_created'] = TRUE;
  $node = entity_create('node', $new_node);
  $node
    ->save();
  if (is_numeric($node
    ->id())) {
    drupal_set_message(t('Quiz %title has been created.', array(
      '%title' => $title,
    )));
  }
  return $node;
}