public function initQuestion($questionId, $parentObjId) { require_once 'Modules/TestQuestionPool/classes/class.assQuestion.php'; $this->questionGUI = assQuestion::instantiateQuestionGUI($questionId); $this->questionOBJ = $this->questionGUI->object; $this->questionOBJ->setObjId($parentObjId); $this->questionGUI->setQuestionTabs(); $this->questionGUI->outAdditionalOutput(); $this->questionOBJ->setOutputType(OUTPUT_JAVASCRIPT); $this->questionGUI->setTargetGui($this); $this->questionGUI->setQuestionActionCmd(self::CMD_HANDLE_QUESTION_ACTION); }
protected function saveQuestion() { $question_id = $_POST['q_id']; $question_pool_id = $_POST['qpl_id']; $form = $this->buildAdjustQuestionForm($question_id, $question_pool_id); $form->setValuesByPost($_POST); if (!$form->checkInput()) { ilUtil::sendFailure($this->lng->txt('adjust_question_form_error')); $this->outputAdjustQuestionForm($form); return; } require_once './Modules/TestQuestionPool/classes/class.assQuestion.php'; /** @var $question assQuestionGUI|ilGuiQuestionScoringAdjustable */ $question = assQuestion::instantiateQuestionGUI($question_id); if ($question instanceof ilGuiQuestionScoringAdjustable) { $question->writeQuestionSpecificPostData($form); } if ($question->object instanceof ilObjQuestionScoringAdjustable) { $question->object->saveAdditionalQuestionDataToDb(); } if ($question instanceof ilGuiAnswerScoringAdjustable) { $question->writeAnswerSpecificPostData($form); } if ($question->object instanceof ilObjAnswerScoringAdjustable) { $question->object->saveAnswerSpecificDataToDb(); } $question->object->setPoints($question->object->getMaximumPoints()); $question->object->saveQuestionDataToDb(); require_once './Modules/Test/classes/class.ilTestScoring.php'; $scoring = new ilTestScoring($this->object); $scoring->setPreserveManualScores($_POST['preserve_manscoring'] == 1 ? true : false); $scoring->recalculateSolutions(); ilUtil::sendSuccess($this->lng->txt('saved_adjustment')); $this->questionsObject(); }
public function copyQuestionToPool($sourceQuestionId, $targetParentId) { require_once 'Modules/TestQuestionPool/classes/class.assQuestion.php'; $question_gui = assQuestion::instantiateQuestionGUI($sourceQuestionId); $newtitle = $question_gui->object->getTitle(); if ($question_gui->object->questionTitleExists($targetParentId, $question_gui->object->getTitle())) { $counter = 2; while ($question_gui->object->questionTitleExists($targetParentId, $question_gui->object->getTitle() . " ({$counter})")) { $counter++; } $newtitle = $question_gui->object->getTitle() . " ({$counter})"; } return $question_gui->object->createNewOriginalFromThisDuplicate($targetParentId, $newtitle); }