ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilAssQuestionPageCommandForwarder Class Reference
+ Collaboration diagram for ilAssQuestionPageCommandForwarder:

Public Member Functions

 __construct (private readonly ilObjTest $test_obj, private readonly ilLanguage $lng, private readonly ilCtrlInterface $ctrl, private readonly ilGlobalTemplateInterface $tpl, private readonly GeneralQuestionPropertiesRepository $questionrepository, private readonly RequestDataCollector $testrequest)
 
 forward ()
 

Private Attributes

int $question_id
 

Detailed Description

Definition at line 32 of file class.ilAssQuestionPageCommandForwarder.php.

Constructor & Destructor Documentation

◆ __construct()

ilAssQuestionPageCommandForwarder::__construct ( private readonly ilObjTest  $test_obj,
private readonly ilLanguage  $lng,
private readonly ilCtrlInterface  $ctrl,
private readonly ilGlobalTemplateInterface  $tpl,
private readonly GeneralQuestionPropertiesRepository  $questionrepository,
private readonly RequestDataCollector  $testrequest 
)

Definition at line 36 of file class.ilAssQuestionPageCommandForwarder.php.

43  {
44  $this->question_id = $this->testrequest->getQuestionId();
45  }

Member Function Documentation

◆ forward()

ilAssQuestionPageCommandForwarder::forward ( )

Definition at line 47 of file class.ilAssQuestionPageCommandForwarder.php.

References assQuestionGUI\_getQuestionGUI(), ilAssQuestionPreviewGUI\CMD_SHOW, ILIAS\Repository\ctrl(), ilObjStyleSheet\getContentStylePath(), ilObjStyleSheet\getSyntaxStylePath(), ILIAS\Repository\lng(), assQuestionGUI\RENDER_PURPOSE_PREVIEW, ilPageObjectGUI\setFileDownloadLink(), and ilObjTestGUI\SHOW_QUESTIONS_CMD.

Referenced by ilMyTestResultsGUI\executeCommand().

47  : void
48  {
49  if ($this->testrequest->raw('prev_qid')) {
50  $this->ctrl->setParameter($this, 'prev_qid', $this->testrequest->raw('prev_qid'));
51  }
52 
53  $this->tpl->setCurrentBlock("ContentStyle");
54  $this->tpl->setVariable(
55  "LOCATION_CONTENT_STYLESHEET",
57  );
58  $this->tpl->parseCurrentBlock();
59 
60  // syntax style
61  $this->tpl->setCurrentBlock("SyntaxStyle");
62  $this->tpl->setVariable(
63  "LOCATION_SYNTAX_STYLESHEET",
65  );
66  $this->tpl->parseCurrentBlock();
67  $q_gui = assQuestionGUI::_getQuestionGUI("", $this->question_id);
68 
69  $q_gui->setRenderPurpose(assQuestionGUI::RENDER_PURPOSE_PREVIEW);
70  $q_gui->setQuestionTabs();
71  $question = $q_gui->getObject();
72  $question->setObjId($this->test_obj->getId());
73  $q_gui->setObject($question);
74 
75  if ($this->ctrl->getCmd() === 'edit'
76  && $this->test_obj->evalTotalPersons() !== 0) {
77  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('question_is_part_of_running_test'), true);
78  $this->ctrl->redirectByClass(ilAssQuestionPreviewGUI::class, ilAssQuestionPreviewGUI::CMD_SHOW);
79  }
80 
81  $this->ctrl->saveParameter($this, 'q_id');
82  $this->lng->loadLanguageModule('content');
83  $this->ctrl->setReturnByClass(ilAssQuestionPageGUI::class, 'view');
84  $this->ctrl->setReturnByClass(ilObjTestGUI::class, ilObjTestGUI::SHOW_QUESTIONS_CMD);
85  $page_gui = new ilAssQuestionPageGUI($this->testrequest->getQuestionId());
86  $page_gui->setFileDownloadLink(
87  $this->ctrl->getLinkTargetByClass(ilObjTestGUI::class, 'downloadFile')
88  );
89  $page_gui->setEditPreview(true);
90  $page_gui->setQuestionHTML([$q_gui->getObject()->getId() => $q_gui->getPreview(true)]);
91  $page_gui->setTemplateTargetVar("ADM_CONTENT");
92  $page_gui->setOutputMode($this->test_obj->evalTotalPersons() == 0 ? "edit" : 'preview');
93  $page_gui->setHeader($question->getTitleForHTMLOutput());
94  $page_gui->setPresentationTitle(
95  $question->getTitleForHTMLOutput()
96  . ' [' . $this->lng->txt('question_id_short')
97  . ': ' . $question->getId() . ']'
98  );
99 
100  $html = $this->ctrl->forwardCommand($page_gui);
101  $this->tpl->setContent($html);
102  }
Question page GUI class.
static _getQuestionGUI(string $question_type='', int $question_id=-1)
Creates a question gui representation and returns the alias to the question gui.
static getContentStylePath(int $a_style_id, bool $add_random=true, bool $add_token=true)
get content style path static (to avoid full reading)
setFileDownloadLink(string $a_download_link)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $question_id

int ilAssQuestionPageCommandForwarder::$question_id
private

Definition at line 34 of file class.ilAssQuestionPageCommandForwarder.php.


The documentation for this class was generated from the following file: