56 ServerRequestInterface $request,
69 $this->lng->loadLanguageModule(
'content');
71 $this->backUrl = $request->getQueryParams()[
'backurl'] ??
'';
73 if (strlen($this->backUrl) > 0) {
74 $this->ctrl->setParameterByClass(
'ilcontentpagepagegui',
'backurl', rawurlencode($this->backUrl));
88 foreach ($this->updateListeners as $listener) {
100 $this->ctrl->setParameterByClass(ilObjContentPageGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT,
'1');
101 $this->tabs->addTarget(
103 $this->ctrl->getLinkTargetByClass([
104 ilRepositoryGUI::class,
105 ilObjContentPageGUI::class
106 ], self::UI_CMD_STYLES_EDIT),
107 self::UI_CMD_STYLES_EDIT
109 $this->ctrl->setParameterByClass(ilObjContentPageGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT, null);
117 $this->updateListeners[] = $updateListener;
127 $pageObjectGUI =
new ilContentPagePageGUI($this->parentObject->getId(), 0, $isEmbedded, $language);
128 $pageObjectGUI->setStyleId(
130 $this->parentObject->getStyleSheetId(),
131 $this->parentObject->getType()
135 $pageObjectGUI->obj->addUpdateListener($this->parentObject,
'update');
137 return $pageObjectGUI;
156 $pageObject->setParentId($this->parentObject->getId());
157 $pageObject->setId($this->parentObject->getId());
158 $pageObject->setLanguage($language);
159 $pageObject->createFromXML();
168 $backUrl = $this->ctrl->getLinkTargetByClass(ilContentPagePageGUI::class, self::UI_CMD_COPAGE_EDIT);
169 if (strlen($this->backUrl) > 0) {
172 $script = basename($backUrlParts[
'path']);
175 $script, $backUrlParts[
'query']
179 $this->tabs->setBackTarget($this->lng->txt(
'back'),
$backUrl);
188 $this->tabs->clearTargets();
195 $pageObjectGUI->setEnabledTabs(
true);
197 $page = $pageObjectGUI->getPageObject();
198 $page->addUpdateListener($this,
'onPageUpdate', [
'page' => $page]);
200 $pageObjectGUI->setTabHook($this,
'addPageTabs');
202 return $pageObjectGUI;
214 $pageObjectGUI->setEnabledTabs(
false);
216 $pageObjectGUI->setStyleId(
218 $this->parentObject->getStyleSheetId(),
219 $this->parentObject->getType()
223 return $pageObjectGUI;
232 $pageObjectGUI->setStyleId(
234 $this->parentObject->getStyleSheetId(),
235 $this->parentObject->getType()
239 $pageObjectGUI->setTabHook($this,
'addPageTabs');
241 return $pageObjectGUI;
253 $pageObjectGUI->setEnabledTabs(
false);
255 $pageObjectGUI->setStyleId(
257 $this->parentObject->getStyleSheetId(),
258 $this->parentObject->getType()
262 return $pageObjectGUI;
279 public function forward(
string $ctrlLink =
'') : string
282 $language = $ot->getEffectiveContentLang($this->actor->getCurrentLanguage(), $this->parentObject->getType());
284 switch ($this->presentationMode) {
285 case self::PRESENTATION_MODE_EDITING:
288 return (
string) $this->ctrl->forwardCommand($pageObjectGui);
290 case self::PRESENTATION_MODE_PREVIEW:
292 return (
string) $this->ctrl->getHTML($pageObjectGui);
294 case self::PRESENTATION_MODE_PRESENTATION:
297 if (is_string($ctrlLink) && strlen($ctrlLink) > 0) {
298 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
299 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
300 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
303 return $this->ctrl->getHTML($pageObjectGUI);
305 case self::PRESENTATION_MODE_EMBEDDED_PRESENTATION:
308 if (is_string($ctrlLink) && strlen($ctrlLink) > 0) {
309 $pageObjectGUI->setFileDownloadLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_FILE);
310 $pageObjectGUI->setFullscreenLink($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DISPLAY_FULLSCREEN);
311 $pageObjectGUI->setSourcecodeDownloadScript($ctrlLink .
'&cmd=' . self::UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH);
314 return $pageObjectGUI->getHTML();
317 throw new ilException(
'Unknown presentation mode given');
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
getPageObjectGUI(string $language, bool $isEmbedded=false)
buildEmbeddedPresentationPageObjectGUI(string $language)
Class ilContentPagePageCommandForwarder.
This class provides processing control methods.
buildEditingPageObjectGUI(string $language)
const PRESENTATION_MODE_EMBEDDED_PRESENTATION
presentation mode for embedded presentation, e.g.
setPresentationMode(string $presentationMode)
setIsMediaRequest(bool $isMediaRequest)
buildPreviewPageObjectGUI(string $language)
addUpdateListener(callable $updateListener)
const PRESENTATION_MODE_PREVIEW
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
const PRESENTATION_MODE_PRESENTATION
presentation mode for requesting
__construct(ServerRequestInterface $request, ilCtrl $ctrl, ilTabsGUI $tabs, ilLanguage $lng, ilObjContentPage $parentObject, ilObjUser $actor)
ilContentPagePageCommandForwarder constructor.
forward(string $ctrlLink='')
static getInstance($a_obj_id)
Get instance.
const PRESENTATION_MODE_EDITING
presentation mode for authoring
onPageUpdate(array $parameters)
doesPageExistsForLanguage(string $language)
buildPresentationPageObjectGUI(string $language)
ensurePageObjectExists(string $language)