/** * * @param DOMDocument $xml * @return NULL|WpProQuiz_Model_Question */ private function createQuestionModel($xml) { $model = new WpProQuiz_Model_Question(); $model->setTitle(trim($xml->title)); $model->setQuestion(trim($xml->questionText)); $model->setCorrectMsg(trim($xml->correctMsg)); $model->setIncorrectMsg(trim($xml->incorrectMsg)); $model->setAnswerType(trim($xml->attributes()->answerType)); $model->setCorrectSameText($xml->correctSameText == 'true'); $model->setTipMsg(trim($xml->tipMsg)); if (isset($xml->tipMsg) && $xml->tipMsg->attributes() !== null) { $model->setTipEnabled($xml->tipMsg->attributes()->enabled == 'true'); } $model->setPoints($xml->points); $model->setShowPointsInBox($xml->showPointsInBox == 'true'); $model->setAnswerPointsActivated($xml->answerPointsActivated == 'true'); $model->setAnswerPointsDiffModusActivated($xml->answerPointsDiffModusActivated == 'true'); $model->setDisableCorrect($xml->disableCorrect == 'true'); $model->setCategoryName(trim($xml->category)); $answerData = array(); if (isset($xml->answers)) { foreach ($xml->answers->answer as $answer) { $answerModel = new WpProQuiz_Model_AnswerTypes(); $attr = $answer->attributes(); if ($attr !== null) { $answerModel->setCorrect($attr->correct == 'true'); $answerModel->setPoints($attr->points); } $answerModel->setAnswer(trim($answer->answerText)); if ($answer->answerText->attributes() !== null) { $answerModel->setHtml($answer->answerText->attributes()->html); } $answerModel->setSortString(trim($answer->stortText)); if ($answer->stortText->attributes() !== null) { $answerModel->setSortStringHtml($answer->stortText->attributes()->html); } $answerData[] = $answerModel; } } $model->setAnswerData($answerData); //Check if (trim($model->getAnswerType()) == '') { return null; } if (trim($model->getQuestion()) == '') { return null; } if (trim($model->getTitle()) == '') { return null; } if (count($model->getAnswerData()) == 0) { return null; } return $model; }