/** * Constructor * * @access public * @global ilCtrl $ilCtrl * @global ilLanguage $lng * @param assQuestion $questionOBJ * @param ilAssQuestionHintList $questionHintList * @param ilAssQuestionHintsGUI $parentGUI * @param string $parentCmd */ public function __construct(assQuestion $questionOBJ, ilAssQuestionHintList $questionHintList, ilAssQuestionHintAbstractGUI $parentGUI, $parentCmd, $tableMode = self::TBL_MODE_TESTOUTPUT, ilAssQuestionHintsOrderingClipboard $hintOrderingClipboard = null) { global $ilCtrl, $lng; $this->questionOBJ = $questionOBJ; $this->tableMode = $tableMode; $this->hintOrderingClipboard = $hintOrderingClipboard; $this->setPrefix('tst_question_hints' . $tableMode); $this->setId('tst_question_hints' . $tableMode); parent::__construct($parentGUI, $parentCmd); $this->setTitle(sprintf($lng->txt('tst_question_hints_table_header'), $questionOBJ->getTitle())); $this->setNoEntriesText($lng->txt('tst_question_hints_table_no_items')); // we don't take care about offset/limit values, so this avoids segmentation in general // --> required for ordering via clipboard feature $this->setExternalSegmentation(true); $tableData = $questionHintList->getTableData(); $this->setData($tableData); if ($this->tableMode == self::TBL_MODE_ADMINISTRATION) { $this->setRowTemplate('tpl.tst_question_hints_administration_table_row.html', 'Modules/TestQuestionPool'); $this->setSelectAllCheckbox('hint_ids[]'); $rowCount = count($tableData); $this->initAdministrationColumns($rowCount); $this->initAdministrationCommands($rowCount); } else { $this->setRowTemplate('tpl.tst_question_hints_testoutput_table_row.html', 'Modules/TestQuestionPool'); $this->initTestoutputColumns(); $this->initTestoutputCommands(); } }
public function build() { $this->setFormAction($this->ctrl->getFormAction($this->parentGUI)); if ($this->isManipulationEnabled()) { $this->addCommandButton(ilAssQuestionSkillAssignmentsGUI::CMD_SHOW_SKILL_QUEST_ASSIGNS, $this->lng->txt('cancel')); $this->addCommandButton(ilAssQuestionSkillAssignmentsGUI::CMD_SAVE_SKILL_QUEST_ASSIGN_PROPERTIES_FORM, $this->lng->txt('save')); } else { $this->addCommandButton(ilAssQuestionSkillAssignmentsGUI::CMD_SHOW_SKILL_QUEST_ASSIGNS, $this->lng->txt('back')); } $this->setTitle($this->assignment->getSkillTitle()); $questionTitle = new ilNonEditableValueGUI($this->lng->txt('question')); $questionTitle->setValue($this->question->getTitle()); $this->addItem($questionTitle); $questionDesc = new ilNonEditableValueGUI($this->lng->txt('description')); $questionDesc->setValue($this->question->getComment()); $this->addItem($questionDesc); if ($this->questionSupportsSolutionCompare()) { $this->populateFullProperties(); } else { $this->populateLimitedProperties(); } }
private function populateQuestionOutput(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->setRenderPageContainer(false); $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); $questionHtml = $this->questionGUI->getPreview(true, $this->isShowSpecificQuestionFeedbackRequired()); $pageGUI->setQuestionHTML(array($this->questionOBJ->getId() => $questionHtml)); //$pageGUI->setHeader($this->questionOBJ->getTitle()); // NO ADDITIONAL HEADER $pageGUI->setPresentationTitle($this->questionOBJ->getTitle()); //$pageGUI->setTemplateTargetVar("ADM_CONTENT"); // NOT REQUIRED, OR IS? $tpl->setVariable('QUESTION_OUTPUT', $pageGUI->preview()); }