19 declare(strict_types=1);
54 $this->
lng->loadLanguageModule(
'content');
57 if (isset($this->
http->request()->getQueryParams()[
'backurl'])) {
58 $this->backUrl = $this->
http->request()->getQueryParams()[
'backurl'];
61 if ($this->backUrl !==
'') {
62 $this->
ctrl->setParameterByClass(ilForumPageGUI::class,
'backurl', rawurlencode($this->backUrl));
78 $this->parentObject->update();
83 $pageObjectGUI =
new ilForumPageGUI($this->parentObject->getId(), 0, $isEmbedded, $language);
85 $this->content_style_domain->getEffectiveStyleId()
88 $pageObjectGUI->obj->addUpdateListener($this,
'updateForumOnPageUpdate', []);
90 return $pageObjectGUI;
95 return ilForumPage::_exists($this->parentObject->getType(), $this->parentObject->getId(), $language);
102 $pageObject->setParentId($this->parentObject->getId());
103 $pageObject->setId($this->parentObject->getId());
104 $pageObject->setLanguage($language);
105 $pageObject->createFromXML();
111 $backUrl = $this->
ctrl->getLinkTargetByClass(ilObjForumGUI::class,
'showThreads');
112 if ($this->backUrl !==
'') {
115 $script = basename($backUrlParts[
'path']);
117 $backUrl =
'./' . implode(
'?', [
118 $script, $backUrlParts[
'query']
127 $this->
tabs->clearTargets();
134 $pageObjectGUI->setEnabledTabs(
true);
136 $page = $pageObjectGUI->getPageObject();
137 $page->addUpdateListener($this,
'onPageUpdate', [
'page' => $page]);
139 return $pageObjectGUI;
147 $pageObjectGUI->setEnabledTabs(
false);
148 $pageObjectGUI->setStyleId(
149 $this->content_style_domain->getEffectiveStyleId()
152 return $pageObjectGUI;
160 $pageObjectGUI->setEnabledTabs(
false);
161 $pageObjectGUI->setStyleId(
162 $this->content_style_domain->getEffectiveStyleId()
165 return $pageObjectGUI;
177 public function forward(
string $ctrlLink =
''): string
179 switch ($this->presentationMode) {
180 case self::PRESENTATION_MODE_EDITING:
183 return (
string) $this->
ctrl->forwardCommand($pageObjectGui);
185 case self::PRESENTATION_MODE_PRESENTATION:
188 if (is_string($ctrlLink) && $ctrlLink !==
'') {
189 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
190 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
191 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
194 return $this->
ctrl->getHTML($pageObjectGUI);
196 case self::PRESENTATION_MODE_EMBEDDED_PRESENTATION:
199 if (is_string($ctrlLink) && $ctrlLink !==
'') {
200 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
201 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
202 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
205 return $pageObjectGUI->getHTML();
208 throw new ilException(
'Unknown presentation mode given');
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
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
External facade for object content styles.
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)
__construct(protected GlobalHttpState $http, protected ilCtrlInterface $ctrl, protected ilTabsGUI $tabs, protected ilLanguage $lng, protected ilObjForum $parentObject, protected ilObjUser $actor, protected ObjectFacade $content_style_domain)
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...