function &executeCommand() { global $ilCtrl, $ilTabs, $ilUser, $lng; $next_class = $this->ctrl->getNextClass($this); $cmd = $this->ctrl->getCmd(); switch ($next_class) { case 'ilobjquestionpoolgui': $nodeParts = explode(':', $_GET['cmdNode']); $params = array('ref_id' => $_GET['ref_id'], 'calling_test' => $_GET['ref_id'], 'q_id' => $_GET['q_id'], 'cmd' => $_GET['cmd'], 'cmdClass' => $_GET['cmdClass'], 'cmdNode' => $nodeParts[count($nodeParts) - 2] . ':' . $nodeParts[count($nodeParts) - 1], 'baseClass' => 'ilObjQuestionPoolGUI', 'test_express_mode' => '1'); ilUtil::redirect('ilias.php?' . http_build_query($params, null, '&')); break; case "ilpageeditorgui": if (!$this->getEnableEditing()) { ilUtil::sendFailure($lng->txt("permission_denied"), true); $ilCtrl->redirect($this, "preview"); } $page_editor =& new ilPageEditorGUI($this->getPageObject(), $this); $page_editor->setLocator($this->locator); $page_editor->setHeader($this->getHeader()); $page_editor->setPageBackTitle($this->page_back_title); $page_editor->setIntLinkReturn($this->int_link_return); $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_mode'); $ret =& $this->ctrl->forwardCommand($page_editor); break; case '': case 'iltestexpresspageobjectgui': include_once 'Modules/TestQuestionPool/classes/class.assQuestionGUI.php'; if ($cmd == 'view') { $cmd = 'showPage'; } $q_gui =& assQuestionGUI::_getQuestionGUI('', $_REQUEST["q_id"]); if ($q_gui->object) { $obj = ilObjectFactory::getInstanceByRefId($_REQUEST['ref_id']); $q_gui->object->setObjId($obj->getId()); } $cmds = array('handleToolbarCommand', 'addQuestion', 'questions', 'insertQuestions', 'browseForQuestions', 'filterAvailableQuestions', 'resetfilterAvailableQuestions'); if (in_array($cmd, $cmds)) { return $this->{$cmd}(); } elseif ($q_gui->object) { $total = $this->test_object->evalTotalPersons(); $this->setOutputMode($total == 0 ? IL_PAGE_EDIT : IL_PAGE_PREVIEW); if ($total != 0) { $link = $ilCtrl->getLinkTargetByClass('ilobjtestgui', "participants"); $link = "<a href=\"" . $link . "\">" . $lng->txt("test_has_datasets_warning_page_view_link") . "</a>"; ilUtil::sendInfo($lng->txt("test_has_datasets_warning_page_view") . " " . $link); } if (in_array($cmd, array('view', 'showPage')) || $cmd == 'edit' && $this->test_object->evalTotalPersons()) { return $this->showPage(); } return parent::executeCommand(); } break; default: $qtype = $_REQUEST['qtype']; $type = ilObjQuestionPool::getQuestionTypeByTypeId($qtype); if (!$_GET['q_id']) { $q_gui = $this->addPageOfQuestions(preg_replace('/(.*?)gui/i', '$1', $_GET['sel_question_types'])); $q_gui->setQuestionTabs(); $ret = $this->ctrl->forwardCommand($q_gui); break; } $this->ctrl->setReturn($this, "questions"); include_once "./Modules/TestQuestionPool/classes/class.assQuestionGUI.php"; $q_gui =& assQuestionGUI::_getQuestionGUI($type, $_GET["q_id"]); if ($q_gui->object) { $obj = ilObjectFactory::getInstanceByRefId($_GET['ref_id']); $q_gui->object->setObjId($obj->getId()); } $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_id'); $this->ctrl->saveParameterByClass('ilpageeditorgui', 'q_mode'); $q_gui->setQuestionTabs(); $ret =& $this->ctrl->forwardCommand($q_gui); break; } }