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