public function handleToolbarCommand()
 {
     global $ilCtrl;
     include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php";
     if ($_REQUEST['qtype']) {
         include_once 'Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php';
         $questionType = ilObjQuestionPool::getQuestionTypeByTypeId($_REQUEST['qtype']);
     } elseif ($_REQUEST['sel_question_types']) {
         $questionType = $_REQUEST['sel_question_types'];
     }
     if (ilObjAssessmentFolder::isAdditionalQuestionContentEditingModePageObjectEnabled()) {
         $addContEditMode = $_POST['add_quest_cont_edit_mode'];
     } else {
         $addContEditMode = assQuestion::ADDITIONAL_CONTENT_EDITING_MODE_DEFAULT;
     }
     $q_gui =& assQuestionGUI::_getQuestionGUI($questionType);
     // CHECK THIS !!! --> obj or ref id ???
     $q_gui->object->setObjId($_GET['ref_id']);
     $q_gui->object->setAdditionalContentEditingMode($addContEditMode);
     $q_gui->object->createNewQuestion();
     $previousQuestionId = $_REQUEST['position'];
     switch ($_REQUEST['usage']) {
         case 3:
             // existing pool
             $ilCtrl->setParameterByClass('ilobjtestgui', 'sel_qpl', $_REQUEST['sel_qpl']);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'sel_question_types', $questionType);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'q_id', $q_gui->object->getId());
             $ilCtrl->setParameterByClass('ilobjtestgui', 'prev_qid', $previousQuestionId);
             if ($_REQUEST['test_express_mode']) {
                 $ilCtrl->setParameterByClass('ilobjtestgui', 'test_express_mode', 1);
             }
             $ilCtrl->setParameterByClass('ilobjtestgui', 'usage', 3);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'calling_test', $this->test_object->getId());
             $link = $ilCtrl->getLinkTargetByClass('ilobjtestgui', 'executeCreateQuestion', false, false, false);
             ilUtil::redirect($link);
             break;
         case 2:
             // new pool
             $ilCtrl->setParameterByClass('ilobjtestgui', 'txt_qpl', $_REQUEST['txt_qpl']);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'sel_question_types', $questionType);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'q_id', $q_gui->object->getId());
             $ilCtrl->setParameterByClass('ilobjtestgui', 'prev_qid', $previousQuestionId);
             if ($_REQUEST['test_express_mode']) {
                 $ilCtrl->setParameterByClass('ilobjtestgui', 'test_express_mode', 1);
             }
             $ilCtrl->setParameterByClass('ilobjtestgui', 'usage', 2);
             $ilCtrl->setParameterByClass('ilobjtestgui', 'calling_test', $this->test_object->getId());
             $link = $ilCtrl->getLinkTargetByClass('ilobjtestgui', 'executeCreateQuestion', false, false, false);
             ilUtil::redirect($link);
             break;
         case 1:
             // no pool
         // no pool
         default:
             $this->redirectToQuestionEditPage($questionType, $q_gui->object->getId(), $previousQuestionId);
             break;
     }
 }
 /**
  * Returns if the question type is allowed for adjustments in the global test administration.
  * 
  * @param assQuestionGUI $question_object
  * @return bool
  */
 protected function allowedInAdjustment(\assQuestionGUI $question_object)
 {
     $setting = new ilSetting('assessment');
     $types = explode(',', $setting->get('assessment_scoring_adjustment'));
     require_once './Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php';
     $type_def = array();
     foreach ($types as $type) {
         $type_def[$type] = ilObjQuestionPool::getQuestionTypeByTypeId($type);
     }
     $type = $question_object->getQuestionType();
     if (in_array($type, $type_def)) {
         return true;
     }
     return false;
 }
Ejemplo n.º 3
0
 /**
  * Called when a new question should be created from a test after confirmation
  *
  * Called when a new question should be created from a test after confirmation
  *
  * @access    public
  */
 function executeCreateQuestionObject()
 {
     $qpl_ref_id = $_REQUEST["sel_qpl"];
     $qpl_mode = $_REQUEST['usage'];
     if (isset($_REQUEST['qtype'])) {
         include_once 'Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php';
         $sel_question_types = ilObjQuestionPool::getQuestionTypeByTypeId($_REQUEST["qtype"]);
     } else {
         if (isset($_REQUEST['sel_question_types'])) {
             $sel_question_types = $_REQUEST["sel_question_types"];
         }
     }
     if (!$qpl_mode || $qpl_mode == 2 && strcmp($_REQUEST["txt_qpl"], "") == 0 || $qpl_mode == 3 && strcmp($qpl_ref_id, "") == 0) {
         // Mantis #14890
         $_REQUEST['sel_question_types'] = $sel_question_types;
         ilUtil::sendInfo($this->lng->txt("questionpool_not_entered"));
         $this->createQuestionObject();
         return;
     } else {
         $_SESSION["test_id"] = $this->object->getRefId();
         if ($qpl_mode == 2 && strcmp($_REQUEST["txt_qpl"], "") != 0) {
             // create a new question pool and return the reference id
             $qpl_ref_id = $this->createQuestionPool($_REQUEST["txt_qpl"]);
         } else {
             if ($qpl_mode == 1) {
                 $qpl_ref_id = $_GET["ref_id"];
             }
         }
         include_once "./Modules/TestQuestionPool/classes/class.ilObjQuestionPoolGUI.php";
         $baselink = "ilias.php?baseClass=ilObjQuestionPoolGUI&ref_id=" . $qpl_ref_id . "&cmd=createQuestionForTest&test_ref_id=" . $_GET["ref_id"] . "&calling_test=" . $_GET["ref_id"] . "&sel_question_types=" . $sel_question_types;
         if (isset($_REQUEST['prev_qid'])) {
             $baselink .= '&prev_qid=' . $_REQUEST['prev_qid'];
         } else {
             if (isset($_REQUEST['position'])) {
                 $baselink .= '&prev_qid=' . $_REQUEST['position'];
             }
         }
         if ($_REQUEST['test_express_mode']) {
             $baselink .= '&test_express_mode=1';
         }
         if (isset($_REQUEST['add_quest_cont_edit_mode'])) {
             $baselink = ilUtil::appendUrlParameterString($baselink, "add_quest_cont_edit_mode={$_REQUEST['add_quest_cont_edit_mode']}", false);
         }
         #var_dump($_REQUEST['prev_qid']);
         ilUtil::redirect($baselink);
         exit;
     }
 }