19 declare(strict_types=1);
69 $this->
lng->loadLanguageModule(
'content');
72 if (isset($this->
http->request()->getQueryParams()[
'backurl'])) {
73 $this->backUrl = $this->
http->request()->getQueryParams()[
'backurl'];
76 if ($this->backUrl !==
'') {
77 $this->
ctrl->setParameterByClass(ilForumPageGUI::class,
'backurl', rawurlencode($this->backUrl));
93 $this->parentObject->update();
98 $pageObjectGUI =
new ilForumPageGUI($this->parentObject->getId(), 0, $isEmbedded, $language);
100 $this->content_style_domain->getEffectiveStyleId()
103 $pageObjectGUI->obj->addUpdateListener($this,
'updateForumOnPageUpdate', []);
105 return $pageObjectGUI;
110 return ilForumPage::_exists($this->parentObject->getType(), $this->parentObject->getId(), $language);
117 $pageObject->setParentId($this->parentObject->getId());
118 $pageObject->setId($this->parentObject->getId());
119 $pageObject->setLanguage($language);
120 $pageObject->createFromXML();
126 $backUrl = $this->
ctrl->getLinkTargetByClass(ilObjForumGUI::class,
'showThreads');
127 if ($this->backUrl !==
'') {
130 $script = basename($backUrlParts[
'path']);
132 $backUrl =
'./' . implode(
'?', [
133 $script, $backUrlParts[
'query']
142 $this->
tabs->clearTargets();
149 $pageObjectGUI->setEnabledTabs(
true);
151 $page = $pageObjectGUI->getPageObject();
152 $page->addUpdateListener($this,
'onPageUpdate', [
'page' => $page]);
154 return $pageObjectGUI;
162 $pageObjectGUI->setEnabledTabs(
false);
163 $pageObjectGUI->setStyleId(
164 $this->content_style_domain->getEffectiveStyleId()
167 return $pageObjectGUI;
175 $pageObjectGUI->setEnabledTabs(
false);
176 $pageObjectGUI->setStyleId(
177 $this->content_style_domain->getEffectiveStyleId()
180 return $pageObjectGUI;
194 public function forward(
string $ctrlLink =
''): string
196 switch ($this->presentationMode) {
197 case self::PRESENTATION_MODE_EDITING:
200 return (
string) $this->
ctrl->forwardCommand($pageObjectGui);
202 case self::PRESENTATION_MODE_PRESENTATION:
205 if (is_string($ctrlLink) && $ctrlLink !==
'') {
206 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
207 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
208 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
211 return $this->
ctrl->getHTML($pageObjectGUI);
213 case self::PRESENTATION_MODE_EMBEDDED_PRESENTATION:
216 if (is_string($ctrlLink) && $ctrlLink !==
'') {
217 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
218 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
219 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
222 return $pageObjectGUI->getHTML();
225 throw new ilException(
'Unknown presentation mode given');
Interface GlobalHttpState.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const PRESENTATION_MODE_EDITING
presentation mode for authoring
ObjectFacade $content_style_domain
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
External facade for object content styles.
__construct(GlobalHttpState $http, ilCtrlInterface $ctrl, ilTabsGUI $tabs, ilLanguage $lng, ilObjForum $parentObject, ilObjUser $actor, ObjectFacade $content_style_domain)
buildPresentationPageObjectGUI(string $language)
setStyleId(int $a_styleid)
getPageObjectGUI(string $language, bool $isEmbedded=false)
buildEmbeddedPresentationPageObjectGUI(string $language)
onPageUpdate(array $parameters)
static http()
Fetches the global http state from ILIAS.
updateForumOnPageUpdate(array $parameters)
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
doesPageExistsForLanguage(string $language)
ensurePageObjectExists(string $language)
const PRESENTATION_MODE_PRESENTATION
presentation mode for requesting
forward(string $ctrlLink='')
const PRESENTATION_MODE_EMBEDDED_PRESENTATION
presentation mode for embedded presentation, e.g.
buildEditingPageObjectGUI(string $language)
setPresentationMode(string $presentationMode)
ilForumPageGUI: ilPageEditorGUI, ilEditClipboardGUI, ilMDEditorGUI ilForumPageGUI: ilPublicUserProfi...