ILIAS  release_7 Revision v7.30-3-g800a261c036
ilContentPagePageCommandForwarder Class Reference

Class ilContentPagePageCommandForwarder. More...

+ Inheritance diagram for ilContentPagePageCommandForwarder:
+ Collaboration diagram for ilContentPagePageCommandForwarder:

Public Member Functions

 __construct (ServerRequestInterface $request, ilCtrl $ctrl, ilTabsGUI $tabs, ilLanguage $lng, ilObjContentPage $parentObject, ilObjUser $actor)
 ilContentPagePageCommandForwarder constructor. More...
 
 setIsMediaRequest (bool $isMediaRequest)
 
 onPageUpdate (array $parameters)
 
 addPageTabs ()
 
 addUpdateListener (callable $updateListener)
 
 setPresentationMode (string $presentationMode)
 
 forward (string $ctrlLink='')
 

Data Fields

const PRESENTATION_MODE_EDITING = 'PRESENTATION_MODE_EDITING'
 presentation mode for authoring More...
 
const PRESENTATION_MODE_PRESENTATION = 'PRESENTATION_MODE_PRESENTATION'
 presentation mode for requesting More...
 
const PRESENTATION_MODE_EMBEDDED_PRESENTATION = 'PRESENTATION_MODE_EMBEDDED_PRESENTATION'
 presentation mode for embedded presentation, e.g. More...
 
const PRESENTATION_MODE_PREVIEW = 'PRESENTATION_MODE_PREVIEW'
 
- Data Fields inherited from ilContentPageObjectConstants
const OBJ_TYPE = 'copa'
 
const HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT = 'page_editor_style'
 
const UI_CMD_VIEW = 'view'
 
const UI_CMD_EDIT = 'edit'
 
const UI_CMD_UPDATE = 'update'
 
const UI_CMD_COPAGE_EDIT = 'edit'
 
const UI_CMD_COPAGE_DOWNLOAD_FILE = 'downloadFile'
 
const UI_CMD_COPAGE_DISPLAY_FULLSCREEN = 'displayMediaFullscreen'
 
const UI_CMD_COPAGE_DISPLAY_MEDIA = 'displayMedia'
 
const UI_CMD_COPAGE_DOWNLOAD_PARAGRAPH = 'download_paragraph'
 
const UI_CMD_STYLES_EDIT = 'editStyleProperties'
 
const UI_TAB_ID_CONTENT = 'content'
 
const UI_TAB_ID_INFO = 'info_short'
 
const UI_TAB_ID_SETTINGS = 'settings'
 
const UI_TAB_ID_ICON = 'icon'
 
const UI_TAB_ID_STYLE = 'style'
 
const UI_TAB_ID_I18N = 'i18n'
 
const UI_TAB_ID_LP = 'learning_progress'
 
const UI_TAB_ID_EXPORT = 'export'
 
const UI_TAB_ID_PERMISSIONS = 'perm_settings'
 

Protected Member Functions

 getPageObjectGUI (string $language, bool $isEmbedded=false)
 
 doesPageExistsForLanguage (string $language)
 
 ensurePageObjectExists (string $language)
 
 setBackLinkTab ()
 
 buildEditingPageObjectGUI (string $language)
 
 buildPresentationPageObjectGUI (string $language)
 
 buildPreviewPageObjectGUI (string $language)
 
 buildEmbeddedPresentationPageObjectGUI (string $language)
 

Protected Attributes

 $presentationMode = self::PRESENTATION_MODE_EDITING
 
 $ctrl
 
 $lng
 
 $tabs
 
 $parentObject
 
 $backUrl = ''
 
 $actor
 
 $updateListeners = []
 
 $isMediaRequest = false
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilContentPagePageCommandForwarder::__construct ( ServerRequestInterface  $request,
ilCtrl  $ctrl,
ilTabsGUI  $tabs,
ilLanguage  $lng,
ilObjContentPage  $parentObject,
ilObjUser  $actor 
)

ilContentPagePageCommandForwarder constructor.

Parameters
ServerRequestInterface$request
ilCtrl$ctrl
ilTabsGUI$tabs
ilLanguage$lng
ilObjContentPage$parentObject
ilObjUser$actor

Definition at line 55 of file class.ilContentPagePageCommandForwarder.php.

References $actor, $ctrl, $lng, $parentObject, and $tabs.

62  {
63  $this->ctrl = $ctrl;
64  $this->tabs = $tabs;
65  $this->lng = $lng;
66  $this->parentObject = $parentObject;
67  $this->actor = $actor;
68 
69  $this->lng->loadLanguageModule('content');
70 
71  $this->backUrl = $request->getQueryParams()['backurl'] ?? '';
72 
73  if (strlen($this->backUrl) > 0) {
74  $this->ctrl->setParameterByClass('ilcontentpagepagegui', 'backurl', rawurlencode($this->backUrl));
75  }
76  }

Member Function Documentation

◆ addPageTabs()

ilContentPagePageCommandForwarder::addPageTabs ( )

Definition at line 98 of file class.ilContentPagePageCommandForwarder.php.

98  : void
99  {
100  $this->ctrl->setParameterByClass(ilObjContentPageGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT, '1');
101  $this->tabs->addTarget(
102  'obj_sty',
103  $this->ctrl->getLinkTargetByClass([
104  ilRepositoryGUI::class,
105  ilObjContentPageGUI::class
106  ], self::UI_CMD_STYLES_EDIT),
107  self::UI_CMD_STYLES_EDIT
108  );
109  $this->ctrl->setParameterByClass(ilObjContentPageGUI::class, self::HTTP_PARAM_PAGE_EDITOR_STYLE_CONTEXT, null);
110  }

◆ addUpdateListener()

ilContentPagePageCommandForwarder::addUpdateListener ( callable  $updateListener)
Parameters
callable$updateListener

Definition at line 115 of file class.ilContentPagePageCommandForwarder.php.

115  : void
116  {
117  $this->updateListeners[] = $updateListener;
118  }

◆ buildEditingPageObjectGUI()

ilContentPagePageCommandForwarder::buildEditingPageObjectGUI ( string  $language)
protected
Parameters
string$language
Returns
ilContentPagePageGUI

Definition at line 186 of file class.ilContentPagePageCommandForwarder.php.

References ensurePageObjectExists(), getPageObjectGUI(), and setBackLinkTab().

Referenced by forward().

187  {
188  $this->tabs->clearTargets();
189 
190  $this->setBackLinkTab();
191 
192  $this->ensurePageObjectExists($language);
193 
194  $pageObjectGUI = $this->getPageObjectGUI($language);
195  $pageObjectGUI->setEnabledTabs(true);
196 
197  $page = $pageObjectGUI->getPageObject();
198  $page->addUpdateListener($this, 'onPageUpdate', ['page' => $page]);
199 
200  $pageObjectGUI->setTabHook($this, 'addPageTabs');
201 
202  return $pageObjectGUI;
203  }
getPageObjectGUI(string $language, bool $isEmbedded=false)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildEmbeddedPresentationPageObjectGUI()

ilContentPagePageCommandForwarder::buildEmbeddedPresentationPageObjectGUI ( string  $language)
protected
Parameters
string$language
Returns
ilContentPagePageGUI

Definition at line 248 of file class.ilContentPagePageCommandForwarder.php.

References ensurePageObjectExists(), ilObjStyleSheet\getEffectiveContentStyleId(), and getPageObjectGUI().

Referenced by forward().

249  {
250  $this->ensurePageObjectExists($language);
251 
252  $pageObjectGUI = $this->getPageObjectGUI($language, true);
253  $pageObjectGUI->setEnabledTabs(false);
254 
255  $pageObjectGUI->setStyleId(
257  $this->parentObject->getStyleSheetId(),
258  $this->parentObject->getType()
259  )
260  );
261 
262  return $pageObjectGUI;
263  }
getPageObjectGUI(string $language, bool $isEmbedded=false)
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildPresentationPageObjectGUI()

ilContentPagePageCommandForwarder::buildPresentationPageObjectGUI ( string  $language)
protected
Parameters
string$language
Returns
ilContentPagePageGUI

Definition at line 209 of file class.ilContentPagePageCommandForwarder.php.

References ensurePageObjectExists(), ilObjStyleSheet\getEffectiveContentStyleId(), and getPageObjectGUI().

Referenced by forward().

210  {
211  $this->ensurePageObjectExists($language);
212 
213  $pageObjectGUI = $this->getPageObjectGUI($language);
214  $pageObjectGUI->setEnabledTabs(false);
215 
216  $pageObjectGUI->setStyleId(
218  $this->parentObject->getStyleSheetId(),
219  $this->parentObject->getType()
220  )
221  );
222 
223  return $pageObjectGUI;
224  }
getPageObjectGUI(string $language, bool $isEmbedded=false)
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ buildPreviewPageObjectGUI()

ilContentPagePageCommandForwarder::buildPreviewPageObjectGUI ( string  $language)
protected

Definition at line 226 of file class.ilContentPagePageCommandForwarder.php.

References ensurePageObjectExists(), ilObjStyleSheet\getEffectiveContentStyleId(), and getPageObjectGUI().

Referenced by forward().

227  {
228  $this->ensurePageObjectExists($language);
229 
230  $pageObjectGUI = $this->getPageObjectGUI($language);
231 
232  $pageObjectGUI->setStyleId(
234  $this->parentObject->getStyleSheetId(),
235  $this->parentObject->getType()
236  )
237  );
238 
239  $pageObjectGUI->setTabHook($this, 'addPageTabs');
240 
241  return $pageObjectGUI;
242  }
getPageObjectGUI(string $language, bool $isEmbedded=false)
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ doesPageExistsForLanguage()

ilContentPagePageCommandForwarder::doesPageExistsForLanguage ( string  $language)
protected
Parameters
string$language
Returns
bool|mixed

Definition at line 144 of file class.ilContentPagePageCommandForwarder.php.

References ilPageObject\_exists().

Referenced by ensurePageObjectExists().

144  : bool
145  {
146  return ilContentPagePage::_exists($this->parentObject->getType(), $this->parentObject->getId(), $language);
147  }
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ensurePageObjectExists()

ilContentPagePageCommandForwarder::ensurePageObjectExists ( string  $language)
protected
Parameters
string$language

Definition at line 152 of file class.ilContentPagePageCommandForwarder.php.

References doesPageExistsForLanguage().

Referenced by buildEditingPageObjectGUI(), buildEmbeddedPresentationPageObjectGUI(), buildPresentationPageObjectGUI(), and buildPreviewPageObjectGUI().

153  {
154  if (!$this->doesPageExistsForLanguage($language)) {
155  $pageObject = new ilContentPagePage();
156  $pageObject->setParentId($this->parentObject->getId());
157  $pageObject->setId($this->parentObject->getId());
158  $pageObject->setLanguage($language);
159  $pageObject->createFromXML();
160  }
161  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ forward()

ilContentPagePageCommandForwarder::forward ( string  $ctrlLink = '')
Parameters
string$ctrlLink
Returns
string
Exceptions
ilCtrlException
ilException

Definition at line 279 of file class.ilContentPagePageCommandForwarder.php.

References buildEditingPageObjectGUI(), buildEmbeddedPresentationPageObjectGUI(), buildPresentationPageObjectGUI(), buildPreviewPageObjectGUI(), and ilObjectTranslation\getInstance().

279  : string
280  {
281  $ot = ilObjectTranslation::getInstance($this->parentObject->getId());
282  $language = $ot->getEffectiveContentLang($this->actor->getCurrentLanguage(), $this->parentObject->getType());
283 
284  switch ($this->presentationMode) {
285  case self::PRESENTATION_MODE_EDITING:
286 
287  $pageObjectGui = $this->buildEditingPageObjectGUI($this->isMediaRequest ? $language : '');
288  return (string) $this->ctrl->forwardCommand($pageObjectGui);
289 
290  case self::PRESENTATION_MODE_PREVIEW:
291  $pageObjectGui = $this->buildPreviewPageObjectGUI($this->isMediaRequest ? $language : '');
292  return (string) $this->ctrl->getHTML($pageObjectGui);
293 
294  case self::PRESENTATION_MODE_PRESENTATION:
295  $pageObjectGUI = $this->buildPresentationPageObjectGUI($language);
296 
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);
301  }
302 
303  return $this->ctrl->getHTML($pageObjectGUI);
304 
305  case self::PRESENTATION_MODE_EMBEDDED_PRESENTATION:
306  $pageObjectGUI = $this->buildEmbeddedPresentationPageObjectGUI($language);
307 
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);
312  }
313 
314  return $pageObjectGUI->getHTML();
315 
316  default:
317  throw new ilException('Unknown presentation mode given');
318  }
319  }
static getInstance($a_obj_id)
Get instance.
+ Here is the call graph for this function:

◆ getPageObjectGUI()

ilContentPagePageCommandForwarder::getPageObjectGUI ( string  $language,
bool  $isEmbedded = false 
)
protected
Parameters
string$language
bool$isEmbedded
Returns
ilContentPagePageGUI

Definition at line 125 of file class.ilContentPagePageCommandForwarder.php.

References ilObjStyleSheet\getEffectiveContentStyleId().

Referenced by buildEditingPageObjectGUI(), buildEmbeddedPresentationPageObjectGUI(), buildPresentationPageObjectGUI(), and buildPreviewPageObjectGUI().

126  {
127  $pageObjectGUI = new ilContentPagePageGUI($this->parentObject->getId(), 0, $isEmbedded, $language);
128  $pageObjectGUI->setStyleId(
130  $this->parentObject->getStyleSheetId(),
131  $this->parentObject->getType()
132  )
133  );
134 
135  $pageObjectGUI->obj->addUpdateListener($this->parentObject, 'update');
136 
137  return $pageObjectGUI;
138  }
static getEffectiveContentStyleId($a_style_id, $a_type="")
Get effective Style Id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ onPageUpdate()

ilContentPagePageCommandForwarder::onPageUpdate ( array  $parameters)
Parameters
array<string,mixed>$parameters

Definition at line 86 of file class.ilContentPagePageCommandForwarder.php.

86  : void
87  {
88  foreach ($this->updateListeners as $listener) {
89  call_user_func_array(
90  $listener,
91  [
92  new PageUpdatedEvent($parameters['page'])
93  ]
94  );
95  }
96  }

◆ setBackLinkTab()

ilContentPagePageCommandForwarder::setBackLinkTab ( )
protected

Definition at line 166 of file class.ilContentPagePageCommandForwarder.php.

References $backUrl, and ilUtil\stripSlashes().

Referenced by buildEditingPageObjectGUI().

166  : void
167  {
168  $backUrl = $this->ctrl->getLinkTargetByClass(ilContentPagePageGUI::class, self::UI_CMD_COPAGE_EDIT);
169  if (strlen($this->backUrl) > 0) {
170  $backUrlParts = parse_url(ilUtil::stripSlashes($this->backUrl));
171 
172  $script = basename($backUrlParts['path']);
173 
174  $backUrl = './' . implode('?', [
175  $script, $backUrlParts['query']
176  ]);
177  }
178 
179  $this->tabs->setBackTarget($this->lng->txt('back'), $backUrl);
180  }
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setIsMediaRequest()

ilContentPagePageCommandForwarder::setIsMediaRequest ( bool  $isMediaRequest)

Definition at line 78 of file class.ilContentPagePageCommandForwarder.php.

References $isMediaRequest.

78  : void
79  {
80  $this->isMediaRequest = $isMediaRequest;
81  }

◆ setPresentationMode()

ilContentPagePageCommandForwarder::setPresentationMode ( string  $presentationMode)
Parameters
string$presentationMode

Definition at line 268 of file class.ilContentPagePageCommandForwarder.php.

References $presentationMode.

268  : void
269  {
270  $this->presentationMode = $presentationMode;
271  }

Field Documentation

◆ $actor

ilContentPagePageCommandForwarder::$actor
protected

Definition at line 41 of file class.ilContentPagePageCommandForwarder.php.

Referenced by __construct().

◆ $backUrl

ilContentPagePageCommandForwarder::$backUrl = ''
protected

Definition at line 39 of file class.ilContentPagePageCommandForwarder.php.

Referenced by setBackLinkTab().

◆ $ctrl

ilContentPagePageCommandForwarder::$ctrl
protected

Definition at line 31 of file class.ilContentPagePageCommandForwarder.php.

Referenced by __construct().

◆ $isMediaRequest

ilContentPagePageCommandForwarder::$isMediaRequest = false
protected

Definition at line 44 of file class.ilContentPagePageCommandForwarder.php.

Referenced by setIsMediaRequest().

◆ $lng

ilContentPagePageCommandForwarder::$lng
protected

Definition at line 33 of file class.ilContentPagePageCommandForwarder.php.

Referenced by __construct().

◆ $parentObject

ilContentPagePageCommandForwarder::$parentObject
protected

Definition at line 37 of file class.ilContentPagePageCommandForwarder.php.

Referenced by __construct().

◆ $presentationMode

ilContentPagePageCommandForwarder::$presentationMode = self::PRESENTATION_MODE_EDITING
protected

Definition at line 29 of file class.ilContentPagePageCommandForwarder.php.

Referenced by setPresentationMode().

◆ $tabs

ilContentPagePageCommandForwarder::$tabs
protected

Definition at line 35 of file class.ilContentPagePageCommandForwarder.php.

Referenced by __construct().

◆ $updateListeners

ilContentPagePageCommandForwarder::$updateListeners = []
protected

Definition at line 43 of file class.ilContentPagePageCommandForwarder.php.

◆ PRESENTATION_MODE_EDITING

const ilContentPagePageCommandForwarder::PRESENTATION_MODE_EDITING = 'PRESENTATION_MODE_EDITING'

presentation mode for authoring

Definition at line 15 of file class.ilContentPagePageCommandForwarder.php.

◆ PRESENTATION_MODE_EMBEDDED_PRESENTATION

const ilContentPagePageCommandForwarder::PRESENTATION_MODE_EMBEDDED_PRESENTATION = 'PRESENTATION_MODE_EMBEDDED_PRESENTATION'

presentation mode for embedded presentation, e.g.

in a kiosk mode

Definition at line 25 of file class.ilContentPagePageCommandForwarder.php.

Referenced by ilContentPageKioskModeView\render().

◆ PRESENTATION_MODE_PRESENTATION

const ilContentPagePageCommandForwarder::PRESENTATION_MODE_PRESENTATION = 'PRESENTATION_MODE_PRESENTATION'

presentation mode for requesting

Definition at line 20 of file class.ilContentPagePageCommandForwarder.php.

Referenced by ilObjContentPageGUI\getContent().

◆ PRESENTATION_MODE_PREVIEW

const ilContentPagePageCommandForwarder::PRESENTATION_MODE_PREVIEW = 'PRESENTATION_MODE_PREVIEW'

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