You are here

function _quiz_add_revision_checkbox in Quiz 8.4

Same name and namespace in other branches
  1. 6.4 quiz.admin.inc \_quiz_add_revision_checkbox()
  2. 7.6 quiz.admin.inc \_quiz_add_revision_checkbox()
  3. 7 quiz.admin.inc \_quiz_add_revision_checkbox()
  4. 7.4 quiz.admin.inc \_quiz_add_revision_checkbox()
  5. 7.5 quiz.admin.inc \_quiz_add_revision_checkbox()

Adds checkbox for creating new revision. Checks it by default if answers exists.

Parameters

$form: FAPI form(array)

$quiz: Quiz node(object)

2 calls to _quiz_add_revision_checkbox()
quiz_categorized_form in ./quiz.admin.inc
Form for managing what questions should be added to a quiz with categorized random questions.
quiz_questions_form in ./quiz.admin.inc
Handles "manage questions" tab.

File

./quiz.admin.inc, line 931
Administrator interface for Quiz module.

Code

function _quiz_add_revision_checkbox(&$form, &$quiz) {

  // Recomend and preselect to create the quiz as a new revision if it already has been answered
  if (quiz_has_been_answered($quiz)) {
    $rev_default = TRUE;
    $rev_description = t('This quiz has been answered. To maintain correctnes of existing answer reports changes should be saved as a new revision.');
  }
  else {
    $rev_default = in_array('revision', \Drupal::config('quiz.settings')
      ->get('node_options_quiz'));
    $rev_description = t('Allow question status changes to create a new revision of the quiz?');
  }
  if (\Drupal::currentUser()
    ->hasPermission('manual quiz revisioning') && !\Drupal::config('quiz.settings')
    ->get('quiz_auto_revisioning')) {
    $form['new_revision'] = array(
      '#type' => 'checkbox',
      '#default_value' => $rev_default,
      '#title' => t('New revision'),
      '#description' => $rev_description,
    );
  }
  else {
    $form['new_revision'] = array(
      '#type' => 'value',
      '#value' => $rev_default,
    );
  }
}