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; }
/** * 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; } }