19 declare(strict_types=1);
62 $this->
lng->loadLanguageModule(
'content');
65 if ($this->
http->wrapper()->query()->has(
'backurl')) {
66 $this->backUrl = $this->
http->wrapper()->query()->retrieve(
68 $this->
refinery->kindlyTo()->string()
72 if ($this->backUrl !==
'') {
73 $this->
ctrl->setParameterByClass(ilContentPagePageGUI::class,
'backurl', rawurlencode($this->backUrl));
87 foreach ($this->updateListeners as $listener) {
94 $this->
ctrl->setParameterByClass(ilObjectContentStyleSettingsGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT,
'1');
95 $this->
tabs->addTarget(
97 $this->
ctrl->getLinkTargetByClass(ilObjectContentStyleSettingsGUI::class),
98 'editStyleProperties',
99 strtolower(ilObjectContentStyleSettingsGUI::class)
101 $this->
ctrl->setParameterByClass(ilObjContentPageGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT,
null);
109 $this->parentObject->update();
114 $this->updateListeners[] = $updateListener;
119 $pageObjectGUI =
new ilContentPagePageGUI($this->parentObject->getId(), 0, $isEmbedded, $language);
120 $pageObjectGUI->setStyleId(
121 $this->content_style_domain->getEffectiveStyleId()
124 $pageObjectGUI->obj->addUpdateListener($this,
'updateContentPageOnPageUpdate', []);
126 return $pageObjectGUI;
138 $pageObject->setParentId($this->parentObject->getId());
139 $pageObject->setId($this->parentObject->getId());
140 $pageObject->setLanguage($language);
141 $pageObject->createFromXML();
147 $backUrl = $this->
ctrl->getLinkTargetByClass(ilContentPagePageGUI::class, self::UI_CMD_COPAGE_EDIT);
148 if ($this->backUrl !==
'') {
151 $script = basename($backUrlParts[
'path']);
153 $backUrl =
'./' . implode(
'?', [
154 $script, $backUrlParts[
'query']
163 $this->
tabs->clearTargets();
170 $pageObjectGUI->setEnabledTabs(
true);
172 $page = $pageObjectGUI->getPageObject();
173 $page->addUpdateListener($this,
'onPageUpdate', [
'page' => $page]);
175 $pageObjectGUI->setTabHook($this,
'addPageTabs');
177 return $pageObjectGUI;
185 $pageObjectGUI->setEnabledTabs(
false);
187 $pageObjectGUI->setStyleId(
188 $this->content_style_domain->getEffectiveStyleId()
191 return $pageObjectGUI;
200 $pageObjectGUI->setStyleId(
201 $this->content_style_domain->getEffectiveStyleId()
204 $pageObjectGUI->setTabHook($this,
'addPageTabs');
206 return $pageObjectGUI;
214 $pageObjectGUI->setEnabledTabs(
false);
216 $pageObjectGUI->setStyleId(
217 $this->content_style_domain->getEffectiveStyleId()
220 return $pageObjectGUI;
232 public function forward(
string $ctrlLink =
''): string
234 $language = $this->translation->getEffectiveCOPageLang($this->actor->getCurrentLanguage(), $this->parentObject->getType());
236 switch ($this->presentationMode) {
237 case self::PRESENTATION_MODE_EDITING:
240 return (
string) $this->
ctrl->forwardCommand($pageObjectGui);
242 case self::PRESENTATION_MODE_PREVIEW:
244 return $this->
ctrl->getHTML($pageObjectGui);
246 case self::PRESENTATION_MODE_PRESENTATION:
249 if (is_string($ctrlLink) && $ctrlLink !==
'') {
250 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
251 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
252 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
255 return $this->
ctrl->getHTML($pageObjectGUI);
257 case self::PRESENTATION_MODE_EMBEDDED_PRESENTATION:
260 if (is_string($ctrlLink) && $ctrlLink !==
'') {
261 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
262 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
263 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
266 return $pageObjectGUI->getHTML();
269 throw new ilException(
'Unknown presentation mode given');
getPageObjectGUI(string $language, bool $isEmbedded=false)
buildEmbeddedPresentationPageObjectGUI(string $language)
final const string PRESENTATION_MODE_PREVIEW
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
buildEditingPageObjectGUI(string $language)
updateContentPageOnPageUpdate(array $parameters)
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
Class handles translation mode for an object.
__construct(protected GlobalHttpState $http, protected ilCtrlInterface $ctrl, protected ilTabsGUI $tabs, protected ilLanguage $lng, protected ilObjContentPage $parentObject, protected Translations $translation, protected ilObjUser $actor, protected Refinery $refinery, protected ObjectFacade $content_style_domain)
External facade for object content styles.
setPresentationMode(string $presentationMode)
setIsMediaRequest(bool $isMediaRequest)
buildPreviewPageObjectGUI(string $language)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
final const string PRESENTATION_MODE_EDITING
presentation mode for authoring
static http()
Fetches the global http state from ILIAS.
addUpdateListener(callable $updateListener)
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
final const string PRESENTATION_MODE_EMBEDDED_PRESENTATION
presentation mode for embedded presentation, e.g.
forward(string $ctrlLink='')
onPageUpdate(array $parameters)
doesPageExistsForLanguage(string $language)
buildPresentationPageObjectGUI(string $language)
final const string PRESENTATION_MODE_PRESENTATION
presentation mode for requesting
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ensurePageObjectExists(string $language)