You are here

public static function MultichoiceQuestion::getAnsweringFormValidate in Quiz 6.x

Same name and namespace in other branches
  1. 8.6 question_types/quiz_multichoice/src/Plugin/quiz/QuizQuestion/MultichoiceQuestion.php \Drupal\quiz_multichoice\Plugin\quiz\QuizQuestion\MultichoiceQuestion::getAnsweringFormValidate()
  2. 8.5 question_types/quiz_multichoice/src/Plugin/quiz/QuizQuestion/MultichoiceQuestion.php \Drupal\quiz_multichoice\Plugin\quiz\QuizQuestion\MultichoiceQuestion::getAnsweringFormValidate()

Validate a user's answer.

Parameters

array $element: The form element of this question.

mixed $form_state: Form state.

Overrides QuizQuestionEntityTrait::getAnsweringFormValidate

File

question_types/quiz_multichoice/src/Plugin/quiz/QuizQuestion/MultichoiceQuestion.php, line 246

Class

MultichoiceQuestion
@QuizQuestion ( id = "multichoice", label = Plugin annotation @Translation("Multiple choice question"), handlers = { "response" = "\Drupal\quiz_multichoice\Plugin\quiz\QuizQuestion\MultichoiceResponse" } )

Namespace

Drupal\quiz_multichoice\Plugin\quiz\QuizQuestion

Code

public static function getAnsweringFormValidate(array &$element, FormStateInterface $form_state) {
  $mcq = $element['#quiz_result_answer']
    ->getQuizQuestion();
  if (!$mcq
    ->get('choice_multi')
    ->getString() && empty($element['user_answer']['#value'])) {
    $form_state
      ->setError($element, t('You must provide an answer.'));
  }
  parent::getAnsweringFormValidate($element, $form_state);
}