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();
 }
Example #3
0
 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);
 }