/** * @param \_OurBrand_\Quiz\Domain\Model\Exercises\MultipleChoicePossibleAnswer $possibleAnswer */ public function addPossibleAnswer($possibleAnswer) { $possibleAnswer->setQuestion($this); $possibleAnswer->setNumber($this->possibleAnswers->count()); $this->possibleAnswers->add($possibleAnswer); }
/** * @return array */ public function readyForCompletionDataProvider() { $exercises = array(); $exercise = new MultipleChoiceSameAnswerExercise(); $exercises['empty'] = array($exercise, 0); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercises['no question'] = array($exercise, 0); $question = new MultipleChoiceQuestion(); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['empty question'] = array($exercise, 0); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['no answers'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['empty answer'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $answer->setText('Answer'); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['only one answer'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $answer->setText('Answer'); $answer2 = new MultipleChoicePossibleAnswer(); $answer2->setText('Answer'); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $question->addPossibleAnswer($answer2); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['ready'] = array($exercise, 1); return $exercises; }
/** * @param array $possibleAnswersArray */ public function setPossibleAnswersFromArray($possibleAnswersArray) { $this->possibleAnswers->clear(); $correctAnswerHasBeenSet = FALSE; foreach ($possibleAnswersArray as $possibleAnswerData) { $possibleAnswer = new MultipleChoicePossibleAnswer(); $possibleAnswer->setText($possibleAnswerData['text']); $possibleAnswer->setIsCorrectAnswer($possibleAnswerData['correctAnswer'] ? TRUE : FALSE); if ($possibleAnswer->getIsCorrectAnswer()) { $correctAnswerHasBeenSet = TRUE; } if (isset($possibleAnswerData['new_image']) && is_a($possibleAnswerData['new_image'], '\\_OurBrand_\\Quiz\\Domain\\Model\\ImageResource')) { $possibleAnswer->setImage($possibleAnswerData['new_image']); } $this->addPossibleAnswer($possibleAnswer); } // Ensure there is a correct answer to this question. if ($this->possibleAnswers->count() && !$correctAnswerHasBeenSet) { $this->possibleAnswers->first()->setIsCorrectAnswer(TRUE); } }