/**
  * show fullscreen view
  */
 function fullscreenObject()
 {
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $page_gui = new ilAssQuestionPageGUI($_GET["pg_id"]);
     $page_gui->showMediaFullscreen();
 }
 /**
  * output question page
  */
 function outQuestionPage($a_temp_var, $a_postponed = false, $active_id = "", $html = "")
 {
     $this->lng->loadLanguageModule("content");
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $page_gui = new ilAssQuestionPageGUI($this->object->getId());
     $page_gui->setOutputMode("presentation");
     $page_gui->setTemplateTargetVar($a_temp_var);
     if (strlen($html)) {
         $page_gui->setQuestionHTML(array($this->object->getId() => $html));
     }
     $page_gui->setPresentationTitle($this->questionHeaderBlockBuilder->getHTML());
     return $page_gui->presentation();
 }
 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;
     }
 }
 private function buildQuestionPage(assQuestionGUI $questionGUI)
 {
     $this->tpl->addCss('Services/COPage/css/content.css');
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $pageGUI = new ilAssQuestionPageGUI($questionGUI->object->getId());
     $pageGUI->setOutputMode("presentation");
     $pageGUI->setRenderPageContainer(true);
     $pageGUI->setPresentationTitle($questionGUI->object->getTitle());
     $questionGUI->object->setShuffle(false);
     // dirty, but works ^^
     $questionHTML = $questionGUI->getSolutionOutput(0, 0, false, false, true, false, true, false, true);
     $pageGUI->setQuestionHTML(array($questionGUI->object->getId() => $questionHTML));
     $pageHTML = $pageGUI->presentation();
     $pageHTML = preg_replace("/src=\"\\.\\//ims", "src=\"" . ILIAS_HTTP_PATH . "/", $pageHTML);
     return $pageHTML;
 }
 /**
  * output question page
  */
 function outQuestionPage($a_temp_var, $a_postponed = false, $active_id = "", $html = "")
 {
     $postponed = "";
     if ($a_postponed) {
         $postponed = " (" . $this->lng->txt("postponed") . ")";
     }
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $this->lng->loadLanguageModule("content");
     $page_gui = new ilAssQuestionPageGUI($this->object->getId());
     $page_gui->setTemplateTargetVar($a_temp_var);
     if (strlen($html)) {
         $page_gui->setQuestionHTML(array($this->object->getId() => $html));
     }
     $page_gui->setOutputMode("presentation");
     include_once "./Modules/Test/classes/class.ilObjTest.php";
     $title_output = ilObjTest::_getTitleOutput($active_id);
     if ($this->object->areObligationsToBeConsidered() && ilObjTest::isQuestionObligatory($this->object->getId())) {
         $obligatoryString = ' *';
     } else {
         $obligatoryString = '';
     }
     switch ($title_output) {
         case 1:
             $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . " - " . $this->object->getTitle() . $postponed . $obligatoryString);
             break;
         case 2:
             $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . $postponed . $obligatoryString);
             break;
         case 0:
         default:
             $maxpoints = $this->object->getMaximumPoints();
             if ($maxpoints == 1) {
                 $maxpoints = " (" . $maxpoints . " " . $this->lng->txt("point") . ")";
             } else {
                 $maxpoints = " (" . $maxpoints . " " . $this->lng->txt("points") . ")";
             }
             $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . " - " . $this->object->getTitle() . $postponed . $maxpoints . $obligatoryString);
             break;
     }
     $presentation = $page_gui->presentation();
     if (strlen($maxpoints)) {
         $presentation = str_replace($maxpoints, "<em>{$maxpoints}</em>", $presentation);
     }
     // bugfix for non XHTML conform img tags in ILIAS Learning Module Editor
     $presentation = preg_replace("/src=\".\\//ims", "src=\"" . ILIAS_HTTP_PATH . "/", $presentation);
     return $presentation;
 }
 /**
  * output question page
  */
 function outQuestionPage($a_temp_var, $a_postponed = false, $active_id = "", $html = "")
 {
     $postponed = "";
     if ($a_postponed) {
         $postponed = " (" . $this->lng->txt("postponed") . ")";
     }
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $this->lng->loadLanguageModule("content");
     $page_gui = new ilAssQuestionPageGUI($this->object->getId());
     $page_gui->setTemplateTargetVar($a_temp_var);
     if (strlen($html)) {
         $page_gui->setQuestionHTML(array($this->object->getId() => $html));
     }
     $page_gui->setOutputMode("presentation");
     include_once "./Modules/Test/classes/class.ilObjTest.php";
     $title_output = ilObjTest::_getTitleOutput($active_id);
     if ($this->object->areObligationsToBeConsidered() && ilObjTest::isQuestionObligatory($this->object->getId())) {
         $obligatoryString = '([-_-])';
     } else {
         $obligatoryString = '';
     }
     switch ($title_output) {
         case 1:
             $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . " - " . $this->object->getTitle() . $postponed . $obligatoryString);
             break;
         case 2:
             $page_gui->setPresentationTitle(sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . $postponed . $obligatoryString);
             break;
         case 0:
         default:
             if (!is_null($this->questionHeaderBlockBuilder)) {
                 $questionBlockHeader = $this->questionHeaderBlockBuilder->getHTML();
             } else {
                 $maxpoints = $this->object->getMaximumPoints();
                 if ($maxpoints == 1) {
                     $maxpoints = " (" . $maxpoints . " " . $this->lng->txt("point") . ")";
                 } else {
                     $maxpoints = " (" . $maxpoints . " " . $this->lng->txt("points") . ")";
                 }
                 $questionBlockHeader = sprintf($this->lng->txt("tst_position"), $this->getSequenceNumber(), $this->getQuestionCount()) . " - " . $this->object->getTitle() . $postponed . $maxpoints . $obligatoryString;
             }
             $page_gui->setPresentationTitle($questionBlockHeader);
             break;
     }
     $presentation = $page_gui->presentation();
     if (strlen($maxpoints)) {
         $presentation = str_replace($maxpoints, "<em>{$maxpoints}</em>", $presentation);
     }
     if (strlen($obligatoryString)) {
         $replacement = '<br><span class="obligatory" style="font-size:small">' . $this->lng->txt("tst_you_have_to_answer_this_question") . '</span>';
         $presentation = str_replace($obligatoryString, $replacement, $presentation);
     }
     $presentation = preg_replace("/src=\"\\.\\//ims", "src=\"" . ILIAS_HTTP_PATH . "/", $presentation);
     return $presentation;
 }
 private function populateSolutionOutput(ilTemplate $tpl)
 {
     // FOR WHAT EXACTLY IS THIS USEFUL?
     $this->ctrl->setReturnByClass('ilAssQuestionPageGUI', 'view');
     $this->ctrl->setReturnByClass('ilObjQuestionPoolGUI', 'questions');
     include_once "./Modules/TestQuestionPool/classes/class.ilAssQuestionPageGUI.php";
     $pageGUI = new ilAssQuestionPageGUI($this->questionOBJ->getId());
     $pageGUI->setEditPreview(true);
     $pageGUI->setEnabledTabs(false);
     // FOR WHICH SITUATION IS THIS WORKAROUND NECCESSARY? (sure .. imagemaps, but where this can be done?)
     if (strlen($this->ctrl->getCmd()) == 0 && !isset($_POST['editImagemapForward_x'])) {
         $this->ctrl->setCmdClass(get_class($pageGUI));
         $this->ctrl->setCmd('preview');
     }
     $this->questionGUI->setPreviewSession($this->previewSession);
     $pageGUI->setQuestionHTML(array($this->questionOBJ->getId() => $this->questionGUI->getSolutionOutput(0)));
     //$pageGUI->setHeader($this->questionOBJ->getTitle()); // NO ADDITIONAL HEADER
     //$pageGUI->setPresentationTitle($this->questionOBJ->getTitle());
     //$pageGUI->setTemplateTargetVar("ADM_CONTENT"); // NOT REQUIRED, OR IS?
     $tpl->setCurrentBlock('solution_output');
     $tpl->setVariable('SOLUTION_OUTPUT', $pageGUI->preview());
     $tpl->parseCurrentBlock();
 }