ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilLMPresentationGUI Class Reference

Class ilLMPresentationGUI GUI class for learning module presentation. More...

+ Inheritance diagram for ilLMPresentationGUI:
+ Collaboration diagram for ilLMPresentationGUI:

Public Member Functions

 __construct (string $a_export_format="", bool $a_all_languages=false, string $a_export_dir="", bool $claim_repo_context=true, ?array $query_params=null, bool $embed_mode=false)
 
 getUnsafeGetCommands ()
 This method must return a list of unsafe GET commands. More...
 
 getSafePostCommands ()
 This method must return a list of safe POST commands. More...
 
 initByRequest (?array $query_params=null, bool $embed_mode=false)
 Init services and this class by request params. More...
 
 getService ()
 
 injectTemplate (ilGlobalTemplateInterface $tpl)
 
 executeCommand ()
 
 offlineMode ()
 checks whether offline content generation is activated More...
 
 getExportFormat ()
 
 nop ()
 this dummy function is needed for offline package creation More...
 
 attrib2arr (?DOMNamedNodeMap $a_attributes)
 
 getCurrentFrameSet ()
 get frames of current frame set More...
 
 determineLayout ()
 Determine layout. More...
 
 resume ()
 
 layout (string $a_xml="main.xml", bool $doShow=true)
 
 saveFrameUrl ()
 
 fullscreen ()
 
 media ()
 
 glossary ()
 
 page ()
 
 ilTOC ()
 table of contents More...
 
 getLMPresentationTitle ()
 
 ilLMMenu ()
 
 setHeader ()
 
 ilLMSubMenu ()
 output learning module submenu More...
 
 redrawHeaderAction ()
 
 addHeaderAction ()
 
 getHeaderAction (bool $a_redraw=false)
 
 ilLMNotes ()
 output notes of page More...
 
 ilLocator ()
 
 getCurrentPageId ()
 Get the current page id. More...
 
 getContent (bool $skip_nav=false)
 
 updatePageRating ()
 
 basicPageGuiInit (\ilPageObjectGUI $a_page_gui)
 
 ilGlossary ()
 
 ilMedia ()
 
 ilJavaScript (string $a_inline="", string $a_file="", string $a_location="")
 
 infoScreen ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed More...
 
 showInfoScreen ()
 info screen call from inside learning module More...
 
 outputInfoScreen ()
 info screen More...
 
 showPrintViewSelection ()
 show selection screen for print view More...
 
 initPrintViewSelectionForm ()
 
 showPrintView ()
 
 downloadFile ()
 download file of file lists More...
 
 getFocusLink (int $a_ref_id, int $a_obj_id, int $a_return_ref_id)
 Get focused link (used in learning objectives courses) More...
 
 showMessageScreen (string $a_content)
 
 showNoPublicAccess ()
 Show info message, if page is not accessible in public area. More...
 
 showNoPageAccess ()
 Show info message, if page is not accessible in public area. More...
 
 showNavRestrictionDueToQuestions ()
 Show message if navigation to page is not allowed due to unanswered questions. More...
 
 getSourcecodeDownloadLink ()
 
 getOfflineDirectory ()
 
 handleCodeParagraph (int $page_id, int $paragraph_id, string $title, string $text)
 store paragraph into file directory files/codefile_$pg_id_$paragraph_id/downloadtitle More...
 
 getLMPageGUI (int $a_id)
 
 getLMPage (int $a_id, string $a_type="")
 
 refreshToc ()
 Refresh toc (called if questions have been answered correctly) More...
 
 observeNoteAction (int $a_lm_id, int $a_page_id, string $a_type, string $a_action, int $a_note_id)
 Generate new ilNote and send Notifications to the users informing that there are new comments in the LM. More...
 
 getHTML (array $pars)
 Get HTML (called by kiosk mode through ilCtrl) More...
 
 getUnsafeGetCommands ()
 This method must return a list of unsafe GET commands. More...
 
 getSafePostCommands ()
 This method must return a list of safe POST commands. More...
 

Data Fields

string $lang
 
ilGlobalTemplateInterface $tpl
 
ilLanguage $lng
 
DOMDocument $layout_doc
 
bool $offline
 
string $offline_directory
 
bool $chapter_has_no_active_page = false
 
bool $deactivated_page = false
 

Protected Member Functions

 getTracker ()
 
 addResourceFiles ()
 
 setContentStyles ()
 Set content style. More...
 
 setSystemStyle ()
 Set system style. More...
 
 getPageContent ()
 
 renderRating ()
 
 initScreenHead (string $a_active_tab="info")
 
 filterNonAccessibleNode (array $nodes)
 
 renderPageTitle ()
 
 renderTabs (string $active_tab, int $current_page_id)
 

Protected Attributes

ILIAS COPage Dom DomUtil $dom_util
 
ILIAS COPage Xsl XslManager $xsl
 
ILIAS Notes GUIService $notes_gui
 
ILIAS GlobalScreen Services $global_screen
 
ILIAS Notes DomainService $notes
 
ILIAS LearningModule ReadingTime ReadingTimeManager $reading_time_manager
 
string $requested_url
 
string $requested_type
 
ilLMTracker $tracker
 
ilTabsGUI $tabs
 
ilNestedListInputGUI $nl
 
ilSetting $lm_set
 
ilObjLearningModuleGUI $lm_gui
 
bool $fill_on_load_code
 
ilLMTree $lm_tree
 
array $frames
 
string $export_format
 
ilPropertyFormGUI $form
 
ilObjUser $user
 
ilRbacSystem $rbacsystem
 
ilCtrl $ctrl
 
ilNavigationHistory $nav_history
 
ilAccessHandler $access
 
ilSetting $settings
 
ilLocatorGUI $locator
 
ilTree $tree
 
ilHelpGUI $help
 
LOMServices $lom_services
 
ilObjLearningModule $lm
 
bool $embed_mode = false
 
int $current_page_id = 0
 
int $focus_id = 0
 
bool $export_all_languages = false
 
string $requested_back_pg
 
string $requested_search_string
 
string $requested_focus_return
 
int $requested_ref_id
 
int $requested_obj_id
 
string $requested_obj_type
 
string $requested_transl
 
string $requested_frame
 
ilLMPresentationLinker $linker
 
ilLMPresentationService $service
 
ILIAS DI UIServices $ui
 
ilToolbarGUI $toolbar
 
array $additional_content = []
 
string $requested_cmd = ""
 
int $requested_pg_id = 0
 
string $requested_pg_type = ""
 
int $requested_mob_id = 0
 
int $requested_notification_switch = 0
 
bool $abstract = false
 
Translations $ot
 
ILIAS Style Content Object ObjectFacade $content_style_domain
 
ILIAS Style Content GUIService $content_style_gui
 
ILIAS Style Content Service $cs = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilLMPresentationGUI::__construct ( string  $a_export_format = "",
bool  $a_all_languages = false,
string  $a_export_dir = "",
bool  $claim_repo_context = true,
?array  $query_params = null,
bool  $embed_mode = false 
)

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

105 {
106 global $DIC;
107
108 $this->offline = ($a_export_format != "");
109 $this->export_all_languages = $a_all_languages;
110 $this->export_format = $a_export_format; // html/scorm
111 $this->offline_directory = $a_export_dir;
112
113 $this->tabs = $DIC->tabs();
114 $this->toolbar = $DIC->toolbar();
115 $this->user = $DIC->user();
116 $this->rbacsystem = $DIC->rbac()->system();
117 $this->nav_history = $DIC["ilNavigationHistory"];
118 $this->access = $DIC->access();
119 $this->settings = $DIC->settings();
120 $this->locator = $DIC["ilLocator"];
121 $this->tree = $DIC->repositoryTree();
122 $this->help = $DIC["ilHelp"];
123 $this->global_screen = $DIC->globalScreen();
124 $this->lom_services = $DIC->learningObjectMetadata();
125
126 $lng = $DIC->language();
127 $rbacsystem = $DIC->rbac()->system();
128 $ilCtrl = $DIC->ctrl();
129 $ilErr = $DIC["ilErr"];
130
131 // load language vars
132 $lng->loadLanguageModule("content");
133
134 $this->lng = $lng;
135 $this->ui = $DIC->ui();
136 $this->tpl = $DIC->ui()->mainTemplate();
137 $this->frames = array();
138 $this->ctrl = $ilCtrl;
139 $this->ctrl->saveParameter($this, array("ref_id", "transl", "focus_id", "focus_return"));
140
141 $this->cs = $DIC->contentStyle();
142
143 $this->initByRequest($query_params, $embed_mode);
144
145 // check, if learning module is online
146 if (!$rbacsystem->checkAccess("write", $this->requested_ref_id)) {
147 if ($this->lm->getOfflineStatus()) {
148 $ilErr->raiseError($lng->txt("permission_denied"), $ilErr->WARNING);
149 }
150 }
151
152 if ($claim_repo_context) {
153 $DIC->globalScreen()->tool()->context()->claim()->repository();
154 }
155
156 if (!$ilCtrl->isAsynch()) {
157 // moved this into the if due to #0027200
158 if (!$embed_mode) {
159 if ($this->service->getPresentationStatus()->isTocNecessary()) {
160 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
162 true
163 );
164 }
165 }
166 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
168 true
169 );
170 }
171
172 if ($embed_mode) {
173 $ilCtrl->setParameter($this, "embed_mode", 1);
174 $params = [
175 "obj_id" => $this->requested_obj_id,
176 "ref_id" => $this->lm->getRefId(),
177 "frame" => ""
178 ];
179 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
181 $params
182 );
183 }
184 $this->reading_time_manager = new \ILIAS\LearningModule\ReadingTime\ReadingTimeManager();
185 $this->notes = $DIC->notes()->domain();
186 $this->xsl = $DIC->copage()->internal()->domain()->xsl();
187 $this->dom_util = $DIC->copage()->internal()->domain()->domUtil();
188 $this->notes_gui = $DIC->notes()->gui();
189 }
initByRequest(?array $query_params=null, bool $embed_mode=false)
Init services and this class by request params.
loadLanguageModule(string $a_module)
Load language module.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
checkAccess(string $a_operations, int $a_ref_id, string $a_type="")
checkAccess represents the main method of the RBAC-system in ILIAS3 developers want to use With this ...
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
Definition: ltiregstart.php:31
$ilErr
Definition: raiseError.php:33
global $DIC
Definition: shib_login.php:26

References $DIC, $embed_mode, $ilErr, $lng, $params, $rbacsystem, $requested_obj_id, ILIAS\Repository\access(), ilRbacSystem\checkAccess(), ILIAS\Repository\ctrl(), ILIAS\Repository\help(), initByRequest(), ilLMGSToolProvider\LM_QUERY_PARAMS, ILIAS\Repository\lng(), ilLanguage\loadLanguageModule(), ILIAS\Repository\locator(), ILIAS\Repository\settings(), ilLMGSToolProvider\SHOW_LINK_SLATES, ilLMGSToolProvider\SHOW_TOC_TOOL, ILIAS\Repository\tabs(), ILIAS\Repository\toolbar(), ilLanguage\txt(), ILIAS\Repository\ui(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

Member Function Documentation

◆ addHeaderAction()

ilLMPresentationGUI::addHeaderAction ( )

Definition at line 815 of file class.ilLMPresentationGUI.php.

815 : void
816 {
817 //$this->tpl->setVariable("HEAD_ACTION", $this->getHeaderAction());
818 $this->tpl->setHeaderActionMenu($this->getHeaderAction());
819 }
getHeaderAction(bool $a_redraw=false)

◆ addResourceFiles()

ilLMPresentationGUI::addResourceFiles ( )
protected

Definition at line 622 of file class.ilLMPresentationGUI.php.

622 : void
623 {
624 iljQueryUtil::initjQuery($this->tpl);
625 //iljQueryUtil::initjQueryUI($this->tpl);
626
627 if (!$this->offlineMode()) {
630
631 $this->tpl->addJavaScript("assets/js/LearningModule.js");
632
633 // handle initial content
634 if ($this->requested_frame == "") {
635 $store = new ilSessionIStorage("lm");
636 $last_frame_url = $store->get("cf_" . $this->lm->getId());
637 if ($last_frame_url != "") {
638 $this->tpl->addOnLoadCode("il.LearningModule.setLastFrameUrl('" . $last_frame_url . "', 'center_bottom');");
639 }
640
641 $this->tpl->addOnLoadCode("il.LearningModule.setSaveUrl('" .
642 $this->ctrl->getLinkTarget($this, "saveFrameUrl", "", false, false) . "');
643 il.LearningModule.openInitFrames();
644 ");
645
646 $this->tpl->addOnLoadCode("il.LearningModule.setTocRefreshUrl('" .
647 $this->ctrl->getLinkTarget($this, "refreshToc", "", false, false) . "');
648 ");
649 }
650
651 // from main menu
652 // $this->tpl->addJavascript("assets/js/Basic.js");
653 ilYuiUtil::initConnection($this->tpl);
654 }
655 }
static addCss()
Add required css.
static addJavaScript(?ilGlobalTemplate $main_tpl=null)
Add javascript files that are necessary to run accordion.
offlineMode()
checks whether offline content generation is activated
Session based immediate storage.
static initConnection(?ilGlobalTemplateInterface $a_main_tpl=null)
Init YUI Connection module.
static initjQuery(?ilGlobalTemplateInterface $a_tpl=null)
inits and adds the jQuery JS-File to the global or a passed template

References ilAccordionGUI\addCss(), ilAccordionGUI\addJavaScript(), ILIAS\Repository\ctrl(), ilYuiUtil\initConnection(), and iljQueryUtil\initjQuery().

+ Here is the call graph for this function:

◆ attrib2arr()

ilLMPresentationGUI::attrib2arr ( ?DOMNamedNodeMap  $a_attributes)

Definition at line 440 of file class.ilLMPresentationGUI.php.

440 : array
441 {
442 $attr = array();
443 if (!is_null($a_attributes)) {
444 foreach ($a_attributes as $attribute) {
445 $attr[$attribute->name] = $attribute->value;
446 }
447 }
448 return $attr;
449 }

◆ basicPageGuiInit()

ilLMPresentationGUI::basicPageGuiInit ( \ilPageObjectGUI  $a_page_gui)

Definition at line 1219 of file class.ilLMPresentationGUI.php.

1219 : void
1220 {
1221 $a_page_gui->setStyleId(
1222 $this->content_style_domain->getEffectiveStyleId()
1223 );
1224 if (!$this->offlineMode()) {
1225 $a_page_gui->setOutputMode("presentation");
1226 $this->fill_on_load_code = true;
1227 } else {
1228 $a_page_gui->setOutputMode("offline");
1229 $a_page_gui->setOfflineDirectory($this->getOfflineDirectory());
1230 $this->fill_on_load_code = false;
1231 }
1232 if (!$this->offlineMode()) {
1233 $this->ctrl->setParameter($this, "obj_id", $this->getCurrentPageId()); // see #22403
1234 }
1235 $a_page_gui->setFileDownloadLink($this->linker->getLink("downloadFile"));
1236 $a_page_gui->setSourcecodeDownloadScript($this->linker->getLink(
1237 "sourcecodeDownload",
1238 $this->getCurrentPageId()
1239 ));
1240 if (!$this->offlineMode()) {
1241 $this->ctrl->setParameter($this, "obj_id", $this->requested_obj_id);
1242 }
1243 $a_page_gui->setFullscreenLink($this->linker->getLink("fullscreen"));
1244 $a_page_gui->setSourcecodeDownloadScript($this->linker->getLink("download_paragraph"));
1245 }
getCurrentPageId()
Get the current page id.

References ILIAS\Repository\ctrl(), ilPageObjectGUI\setFileDownloadLink(), ilPageObjectGUI\setFullscreenLink(), ilPageObjectGUI\setOfflineDirectory(), ilPageObjectGUI\setOutputMode(), ilPageObjectGUI\setSourcecodeDownloadScript(), and ilPageObjectGUI\setStyleId().

+ Here is the call graph for this function:

◆ determineLayout()

ilLMPresentationGUI::determineLayout ( )

Determine layout.

Definition at line 462 of file class.ilLMPresentationGUI.php.

462 : string
463 {
464 return "standard";
465 }

◆ downloadFile()

ilLMPresentationGUI::downloadFile ( )

download file of file lists

Definition at line 2146 of file class.ilLMPresentationGUI.php.

2146 : void
2147 {
2148 $page_gui = $this->getLMPageGUI($this->getCurrentPageId());
2149 $page_gui->downloadFile();
2150 }

◆ executeCommand()

ilLMPresentationGUI::executeCommand ( )
Exceptions
ilCtrlException
ilLMPresentationException
ilPermissionException

Definition at line 294 of file class.ilLMPresentationGUI.php.

294 : void
295 {
296 $ilNavigationHistory = $this->nav_history;
297 $ilAccess = $this->access;
299 $ilCtrl = $this->ctrl;
300 $ilUser = $this->user;
301
302 // check read permission and parent conditions
303 // todo: replace all this by ilAccess call
304 if (!$ilAccess->checkAccess("read", "", $this->requested_ref_id) &&
305 (!(($this->ctrl->getCmd() == "infoScreen" || $this->ctrl->getNextClass() == "ilinfoscreengui")
306 && $ilAccess->checkAccess("visible", "", $this->requested_ref_id)))) {
307 throw new ilPermissionException($lng->txt("permission_denied"));
308 }
309
310 $next_class = $this->ctrl->getNextClass($this);
311 $cmd = $this->ctrl->getCmd("layout");
312
313 $obj_id = $this->requested_obj_id;
314 $this->ctrl->setParameter($this, "obj_id", $this->requested_obj_id);
315 $ilNavigationHistory->addItem($this->requested_ref_id, $this->ctrl->getLinkTarget($this), "lm");
316 $this->ctrl->setParameter($this, "obj_id", $obj_id);
317
318 switch ($next_class) {
319 case "ilcommentgui":
320 $ret = $this->layout();
321 break;
322
323 case "ilinfoscreengui":
324 $ret = $this->outputInfoScreen();
325 break;
326
327 case "ilcommonactiondispatchergui":
329 $gui->enableCommentsSettings(false);
330 $this->ctrl->forwardCommand($gui);
331 break;
332
333 case "illmpagegui":
334 $page_gui = $this->getLMPageGUI($this->requested_obj_id);
335 $this->basicPageGuiInit($page_gui);
336 $ret = $ilCtrl->forwardCommand($page_gui);
337 break;
338
339 case "ilassgenfeedbackpagegui":
340 $page_gui = new ilAssGenFeedbackPageGUI($this->requested_pg_id);
341 //$this->basicPageGuiInit($page_gui);
342 $ret = $ilCtrl->forwardCommand($page_gui);
343 break;
344
345 case "ilglossarydefpagegui":
346 // see #32198
347 //$page_gui = new ilGlossaryDefPageGUI($this->requested_obj_id);
348 $page_gui = new ilGlossaryDefPageGUI($this->requested_pg_id);
349 $this->basicPageGuiInit($page_gui);
350 $ret = $ilCtrl->forwardCommand($page_gui);
351 break;
352
353 case "illearningprogressgui":
354 $this->initScreenHead("learning_progress");
355 $new_gui = new ilLearningProgressGUI(
357 $this->requested_ref_id,
358 $ilUser->getId()
359 );
360 $this->ctrl->forwardCommand($new_gui);
361 // this is nasty, but the LP classes do "sometimes" a printToStdout
362 // sometimes not, (here editManual does, other commands not)
363 if ($this->ctrl->getCmd() !== "editManual") {
364 $this->tpl->printToStdout();
365 }
366 break;
367
368 case "ilratinggui":
369 $rating_gui = new ilRatingGUI();
370 $rating_gui->setObject($this->lm->getId(), "lm", $this->requested_obj_id, "lm");
371 $this->ctrl->forwardCommand($rating_gui);
372 break;
373
374 default:
375 if ($this->requested_notification_switch > 0) {
376 switch ($this->requested_notification_switch) {
377 case 1:
380 $this->user->getId(),
381 $this->lm->getId(),
382 false
383 );
384 break;
385
386 case 2:
389 $this->user->getId(),
390 $this->lm->getId(),
391 true
392 );
393 break;
394
395 case 3:
398 $this->user->getId(),
399 $this->getCurrentPageId(),
400 false
401 );
402 break;
403
404 case 4:
407 $this->user->getId(),
408 $this->getCurrentPageId(),
409 true
410 );
411 break;
412 }
413 $ilCtrl->redirect($this, "layout");
414 }
415 $ret = $this->$cmd();
416 break;
417 }
418 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
layout(string $a_xml="main.xml", bool $doShow=true)
initScreenHead(string $a_active_tab="info")
basicPageGuiInit(\ilPageObjectGUI $a_page_gui)
ilNavigationHistory $nav_history
Class ilObjUserTrackingGUI.
static setNotification(int $type, int $user_id, int $id, bool $status=true)
Set notification status for object and user.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

References $lng, ILIAS\Repository\ctrl(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), ilLearningProgressBaseGUI\LP_CONTEXT_REPOSITORY, ilNotification\setNotification(), ilNotification\TYPE_LM, ilNotification\TYPE_LM_PAGE, and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ filterNonAccessibleNode()

ilLMPresentationGUI::filterNonAccessibleNode ( array  $nodes)
protected

Definition at line 1584 of file class.ilLMPresentationGUI.php.

1586 : array {
1587 $tracker = $this->getTracker();
1588 // if navigation is restricted based on correct answered questions
1589 // check if we have preceeding pages including unsanswered/incorrect answered questions
1590 if (!$this->offlineMode()) {
1591 if ($this->lm->getRestrictForwardNavigation()) {
1592 $nodes = array_filter($nodes, function ($node) use ($tracker) {
1593 return !$tracker->hasPredIncorrectAnswers($node["child"]);
1594 });
1595 }
1596 }
1597 return $nodes;
1598 }
hasPredIncorrectAnswers(int $a_obj_id, bool $a_ignore_unlock=false)
Has predecessing incorrect answers.

References ilLMTracker\hasPredIncorrectAnswers().

+ Here is the call graph for this function:

◆ fullscreen()

ilLMPresentationGUI::fullscreen ( )

Definition at line 663 of file class.ilLMPresentationGUI.php.

663 : string
664 {
665 return $this->media();
666 }

◆ getContent()

ilLMPresentationGUI::getContent ( bool  $skip_nav = false)

Definition at line 1110 of file class.ilLMPresentationGUI.php.

1112 : string {
1113 $this->fill_on_load_code = true;
1114 $this->setContentStyles();
1115
1116 $tpl = new ilTemplate("tpl.lm_content.html", true, true, "components/ILIAS/LearningModule/Presentation");
1117
1118 if (!$skip_nav) {
1119 $navigation_renderer = new ilLMNavigationRendererGUI(
1120 $this->service,
1121 $this,
1122 $this->lng,
1123 $this->user,
1124 $this->tpl,
1125 $this->requested_obj_id,
1126 $this->requested_back_pg,
1127 $this->requested_frame,
1128 $this->toolbar,
1129 $this->ui
1130 );
1131
1132 $navigation_renderer->renderTop();
1133 //$tpl->setVariable("TOP_NAVIGATION", $navigation_renderer->renderTop());
1134 //$tpl->setVariable("BOTTOM_NAVIGATION", $navigation_renderer->renderBottom());
1135 }
1136 $tpl->setVariable("PAGE_CONTENT", $this->getPageContent());
1137 $tpl->setVariable("RATING", $this->renderRating());
1138
1139 return $tpl->get();
1140 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilGlobalTemplateInterface $tpl
setContentStyles()
Set content style.
special template class to simplify handling of ITX/PEAR
setVariable(string $variable, $value='')
Sets the given variable to the given value.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.

◆ getCurrentFrameSet()

ilLMPresentationGUI::getCurrentFrameSet ( )

get frames of current frame set

Definition at line 454 of file class.ilLMPresentationGUI.php.

454 : array
455 {
456 return $this->frames;
457 }

◆ getCurrentPageId()

ilLMPresentationGUI::getCurrentPageId ( )

Get the current page id.

Definition at line 1084 of file class.ilLMPresentationGUI.php.

1084 : ?int
1085 {
1086 return $this->service->getNavigationStatus()->getCurrentPage();
1087 }

◆ getExportFormat()

ilLMPresentationGUI::getExportFormat ( )

Definition at line 428 of file class.ilLMPresentationGUI.php.

428 : string
429 {
431 }

◆ getFocusLink()

ilLMPresentationGUI::getFocusLink ( int  $a_ref_id,
int  $a_obj_id,
int  $a_return_ref_id 
)

Get focused link (used in learning objectives courses)

Parameters
int$a_ref_idreference id of learning module
int$a_obj_idchapter or page id
int$a_return_ref_idreturn ref id

Definition at line 2158 of file class.ilLMPresentationGUI.php.

2162 : string {
2163 return "ilias.php?baseClass=ilLMPresentationGUI&ref_id=" . $a_ref_id . "&obj_id=" . $a_obj_id . "&focus_id=" .
2164 $a_obj_id . "&focus_return=" . $a_return_ref_id;
2165 }

◆ getHeaderAction()

ilLMPresentationGUI::getHeaderAction ( bool  $a_redraw = false)

Definition at line 821 of file class.ilLMPresentationGUI.php.

823 : string {
824 if ($this->offline) {
825 return "";
826 }
827 $ilAccess = $this->access;
830
831 $lm_id = $this->lm->getId();
832 $pg_id = $this->getCurrentPageId();
833
834 $this->lng->loadLanguageModule("content");
835
836 $dispatcher = new ilCommonActionDispatcherGUI(
838 $ilAccess,
839 $this->lm->getType(),
840 $this->lm->getRefId(),
841 $this->lm->getId()
842 );
843 $dispatcher->setSubObject("pg", $this->getCurrentPageId());
844
845 $this->ctrl->setParameter($this, "embed_mode", (int) $this->embed_mode);
846 $this->ctrl->setParameterByClass("ilcommentgui", "embed_mode", (int) $this->embed_mode);
847 $this->ctrl->setParameterByClass("iltagginggui", "embed_mode", (int) $this->embed_mode);
849 $this->ctrl->getLinkTarget($this, "redrawHeaderAction", "", true),
850 "",
851 $this->ctrl->getLinkTargetByClass(
852 array("ilcommonactiondispatchergui", "iltagginggui"),
853 "",
854 "",
855 true,
856 false
857 ),
858 $this->tpl
859 );
860
861 $lg = $dispatcher->initHeaderAction();
862 if (!$ilSetting->get("disable_notes")) {
863 $lg->enableNotes(true);
864 if (!$this->embed_mode) {
865 $lg->enableComments($this->lm->publicNotes(), false);
866 }
867 }
868
869 if ($this->lm->hasRating() && !$this->offlineMode()) {
870 $lg->enableRating(
871 true,
872 $this->lng->txt("lm_rating"),
873 false,
874 array("ilcommonactiondispatchergui", "ilratinggui"),
875 true
876 );
877 }
878
879 // notification
880 if ($this->user->getId() != ANONYMOUS_USER_ID && !$this->embed_mode) {
881 if (ilNotification::hasNotification(ilNotification::TYPE_LM, $this->user->getId(), $lm_id)) {
882 $this->ctrl->setParameter($this, "ntf", 1);
883 if (ilNotification::hasOptOut($lm_id)) {
884 $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "cont_notification_deactivate_lm");
885 }
886
887 $lg->addHeaderIcon(
888 "not_icon",
889 ilUtil::getImagePath("object/notification_on.svg"),
890 $this->lng->txt("cont_notification_activated")
891 );
892 } else {
893 $this->ctrl->setParameter($this, "ntf", 2);
894 $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "cont_notification_activate_lm");
895
897 $this->ctrl->setParameter($this, "ntf", 3);
898 $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "cont_notification_deactivate_page");
899
900 $lg->addHeaderIcon(
901 "not_icon",
902 ilUtil::getImagePath("object/notification_on.svg"),
903 $this->lng->txt("cont_page_notification_activated")
904 );
905 } else {
906 $this->ctrl->setParameter($this, "ntf", 4);
907 $lg->addCustomCommand($this->ctrl->getLinkTarget($this), "cont_notification_activate_page");
908
909 $lg->addHeaderIcon(
910 "not_icon",
911 ilUtil::getImagePath("object/notification_off.svg"),
912 $this->lng->txt("cont_notification_deactivated")
913 );
914 }
915 }
916 $this->ctrl->setParameter($this, "ntf", "");
917 }
918
919 if (!$this->offline) {
920 if ($ilAccess->checkAccess("write", "", $this->requested_ref_id)) {
921 if ($this->getCurrentPageId() <= 0) {
922 $link = $this->ctrl->getLinkTargetByClass(["ilLMEditorGUI", "ilobjlearningmodulegui"], "chapters");
923 } else {
924 $link = ILIAS_HTTP_PATH . "/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
925 "&obj_id=" . $this->getCurrentPageId() . "&to_page=1";
926 }
927 $lg->addCustomCommand($link, "edit_page");
928 }
929 }
930
931 if (!$a_redraw) {
932 return $lg->getHeaderAction($this->tpl);
933 } else {
934 // we need to add onload code manually (rating, comments, etc.)
935 return $lg->getHeaderAction() .
937 }
938 }
Class ilCommonActionDispatcherGUI.
static hasOptOut(int $obj_id)
Is opt out (disable notification) allowed?
static hasNotification(int $type, int $user_id, int $id)
Check notification status for object and user.
static prepareJsLinks(string $redraw_url, string $notes_url, string $tags_url, ?ilGlobalTemplateInterface $tpl=null)
Insert js/ajax links into template.
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
const ANONYMOUS_USER_ID
Definition: constants.php:27
getOnLoadCodeForAsynch()
Get js onload code for ajax calls.
global $ilSetting
Definition: privfeed.php:31

◆ getHTML()

ilLMPresentationGUI::getHTML ( array  $pars)

Get HTML (called by kiosk mode through ilCtrl)

Definition at line 2354 of file class.ilLMPresentationGUI.php.

2354 : string
2355 {
2356 $this->addResourceFiles();
2357 switch ($pars["cmd"]) {
2358 case "layout":
2359 $tpl = new ilTemplate("tpl.embedded_view.html", true, true, "components/ILIAS/LearningModule");
2360 $tpl->setVariable("HEAD_ACTION", $this->getHeaderAction());
2361 $tpl->setVariable("PAGE_RATING", $this->renderRating());
2362 $tpl->setVariable("PAGE", $this->getContent(true));
2363 $tpl->setVariable("COMMENTS", $this->ilLMNotes());
2364 return $tpl->get();
2365 }
2366 return "";
2367 }
ilLMNotes()
output notes of page
getContent(bool $skip_nav=false)

References ILIAS\UICore\GlobalTemplate\get(), ILIAS\UI\Implementation\Component\Input\ViewControl\getContent(), and ILIAS\UICore\GlobalTemplate\setVariable().

+ Here is the call graph for this function:

◆ getLMPage()

ilLMPresentationGUI::getLMPage ( int  $a_id,
string  $a_type = "" 
)

Definition at line 2258 of file class.ilLMPresentationGUI.php.

2261 : ilPageObject {
2262 $type = ($a_type == "mep")
2263 ? "mep"
2264 : "lm";
2265
2267 if (!ilPageObject::_exists($type, $a_id, $lang)) {
2268 $lang = "-";
2269 if ($this->lang != "-" && ilPageObject::_exists($type, $a_id, $this->ot->getDefaultLanguage())) {
2270 $lang = $this->ot->getDefaultLanguage();
2271 }
2272 }
2273
2274 switch ($type) {
2275 case "mep":
2276 return new ilMediaPoolPage($a_id, 0, $lang);
2277 default:
2278 return new ilLMPage($a_id, 0, $lang);
2279 }
2280 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilPageObject Handles PageObjects of ILIAS Learning Modules (see ILIAS DTD)
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.

References $lang, and ilPageObject\_exists().

+ Here is the call graph for this function:

◆ getLMPageGUI()

ilLMPresentationGUI::getLMPageGUI ( int  $a_id)

Definition at line 2246 of file class.ilLMPresentationGUI.php.

2246 : ilLMPageGUI
2247 {
2248 $concrete_lang = $this->service->getPresentationStatus()->getConcreteLang();
2249 if ($this->lang != "-" && ilPageObject::_exists("lm", $a_id, $this->lang)) {
2250 return new ilLMPageGUI($a_id, 0, false, $this->lang, $concrete_lang);
2251 }
2252 if ($this->lang != "-" && ilPageObject::_exists("lm", $a_id, $this->ot->getDefaultLanguage())) {
2253 return new ilLMPageGUI($a_id, 0, false, $this->ot->getDefaultLanguage(), $concrete_lang);
2254 }
2255 return new ilLMPageGUI($a_id, 0, false, "", $concrete_lang);
2256 }
Extension of ilPageObjectGUI for learning modules.

References ilPageObject\_exists().

+ Here is the call graph for this function:

◆ getLMPresentationTitle()

ilLMPresentationGUI::getLMPresentationTitle ( )

Definition at line 752 of file class.ilLMPresentationGUI.php.

752 : string
753 {
754 return $this->service->getPresentationStatus()->getLMPresentationTitle();
755 }

◆ getOfflineDirectory()

ilLMPresentationGUI::getOfflineDirectory ( )

Definition at line 2213 of file class.ilLMPresentationGUI.php.

2213 : string
2214 {
2216 }

◆ getPageContent()

ilLMPresentationGUI::getPageContent ( )
protected

Definition at line 1142 of file class.ilLMPresentationGUI.php.

1142 : string
1143 {
1144 $content_renderer = new ilLMContentRendererGUI(
1145 $this->service,
1146 $this,
1147 $this->lng,
1148 $this->ot,
1149 $this->ctrl,
1150 $this->access,
1151 $this->user,
1152 $this->help,
1153 $this->requested_obj_id
1154 );
1155
1156 return $content_renderer->render();
1157 }

References ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\help(), ILIAS\Repository\lng(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ getSafePostCommands()

ilLMPresentationGUI::getSafePostCommands ( )

This method must return a list of safe POST commands.

Safe post commands returned by this method will no longer be CSRF protected and will NOT be appended by an ilCtrlToken.

Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 196 of file class.ilLMPresentationGUI.php.

196 : array
197 {
198 return [
199 "showPrintView",
200 ];
201 }

◆ getService()

ilLMPresentationGUI::getService ( )

Definition at line 274 of file class.ilLMPresentationGUI.php.

275 {
276 return $this->service;
277 }
ilLMPresentationService $service
Main service init and factory.

References $service.

◆ getSourcecodeDownloadLink()

ilLMPresentationGUI::getSourcecodeDownloadLink ( )

Definition at line 2204 of file class.ilLMPresentationGUI.php.

2204 : string
2205 {
2206 if (!$this->offlineMode()) {
2207 return $this->ctrl->getLinkTarget($this, "");
2208 } else {
2209 return "";
2210 }
2211 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ getTracker()

ilLMPresentationGUI::getTracker ( )
protected

Definition at line 284 of file class.ilLMPresentationGUI.php.

285 {
286 return $this->service->getTracker();
287 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ getUnsafeGetCommands()

ilLMPresentationGUI::getUnsafeGetCommands ( )

This method must return a list of unsafe GET commands.

Unsafe get commands returned by this method will now be CSRF protected, which means an ilCtrlToken is appended each time a link-target is generated to the class implementing this interface with a command from that list.

Tokens will be validated in

See also
ilCtrlInterface::getCmd(), whereas the fallback command will be used if the CSRF validation fails.
Returns
string[]

Implements ilCtrlSecurityInterface.

Definition at line 191 of file class.ilLMPresentationGUI.php.

191 : array
192 {
193 return [];
194 }

◆ glossary()

ilLMPresentationGUI::glossary ( )

Definition at line 685 of file class.ilLMPresentationGUI.php.

685 : string
686 {
687 $this->tpl = new ilGlobalTemplate("tpl.glossary_term_output.html", true, true, "components/ILIAS/LearningModule");
688 $this->renderPageTitle();
689
690 iljQueryUtil::initjQuery($this->tpl);
691 //iljQueryUtil::initjQueryUI($this->tpl);
693 ilAccordionGUI::addCss($this->tpl);
694
695 // set style sheets
696 $this->setContentStyles();
697 $this->setSystemStyle();
698
699 $this->ilGlossary();
700
701 $js = $this->global_screen->layout()->meta()->getJs();
702 foreach ($js->getItemsInOrderOfDelivery() as $item) {
703 $this->tpl->addJavaScript($item->getContent());
704 }
705
706 if (!$this->offlineMode()) {
707 $this->tpl->printToStdout();
708 } else {
709 return $this->tpl->printToString();
710 }
711
712 return "";
713 }
special template class to simplify handling of ITX/PEAR

References ilAccordionGUI\addCss(), ilAccordionGUI\addJavaScript(), and iljQueryUtil\initjQuery().

+ Here is the call graph for this function:

◆ handleCodeParagraph()

ilLMPresentationGUI::handleCodeParagraph ( int  $page_id,
int  $paragraph_id,
string  $title,
string  $text 
)

store paragraph into file directory files/codefile_$pg_id_$paragraph_id/downloadtitle

Definition at line 2222 of file class.ilLMPresentationGUI.php.

2227 : void {
2228 $directory = $this->getOfflineDirectory() . "/codefiles/" . $page_id . "/" . $paragraph_id;
2229 ilFileUtils::makeDirParents($directory);
2230 $file = $directory . "/" . $title;
2231 if (!($fp = fopen($file, "w+"))) {
2232 die("<strong>Error</strong>: Could not open \"" . $file . "\" for writing" .
2233 " in <strong>" . __FILE__ . "</strong> on line <strong>" . __LINE__ . "</strong><br />");
2234 }
2235 chmod($file, 0770);
2236 fwrite($fp, $text);
2237 fclose($fp);
2238 }
static makeDirParents(string $a_dir)
Create a new directory and all parent directories.

◆ ilGlossary()

ilLMPresentationGUI::ilGlossary ( )

Definition at line 1247 of file class.ilLMPresentationGUI.php.

1247 : void
1248 {
1249 $ilCtrl = $this->ctrl;
1250
1251 $term_gui = new ilGlossaryTermGUI($this->requested_obj_id);
1252
1253 // content style
1254 $this->setContentStyles();
1255
1256 $term_gui->setPageLinker($this->linker);
1257
1258 $term_gui->setOfflineDirectory($this->getOfflineDirectory());
1259 if (!$this->offlineMode()) {
1260 $ilCtrl->setParameter($this, "pg_type", "glo");
1261 }
1262 $term_gui->output($this->offlineMode(), $this->tpl);
1263
1264 if (!$this->offlineMode()) {
1265 $ilCtrl->setParameter($this, "pg_type", "");
1266 }
1267 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ ilJavaScript()

ilLMPresentationGUI::ilJavaScript ( string  $a_inline = "",
string  $a_file = "",
string  $a_location = "" 
)

Definition at line 1329 of file class.ilLMPresentationGUI.php.

1333 : void {
1334 if ($a_inline != "") {
1335 $js_tpl = new ilTemplate($a_inline, true, false, $a_location);
1336 $js = $js_tpl->get();
1337 $this->tpl->setVariable("INLINE_JS", $js);
1338 }
1339 }

◆ ilLMMenu()

ilLMPresentationGUI::ilLMMenu ( )

Definition at line 757 of file class.ilLMPresentationGUI.php.

757 : void
758 {
759 $this->renderTabs("content", $this->getCurrentPageId());
760 }
renderTabs(string $active_tab, int $current_page_id)

◆ ilLMNotes()

ilLMPresentationGUI::ilLMNotes ( )

output notes of page

Definition at line 943 of file class.ilLMPresentationGUI.php.

943 : string
944 {
945 $ilAccess = $this->access;
947
948 // no notes in offline (export) mode
949 if ($this->offlineMode()) {
950 return "";
951 }
952
953 // now output comments
954
955 if ($ilSetting->get("disable_comments")) {
956 return "";
957 }
958 if (!$this->lm->publicNotes()) {
959 return "";
960 }
961
962 $next_class = $this->ctrl->getNextClass($this);
963
964 $pg_id = $this->getCurrentPageId();
965
966 if ($pg_id == 0) {
967 return "";
968 }
969 $notes_gui = $this->notes_gui->getCommentsGUI($this->lm->getId(), $this->getCurrentPageId(), "pg");
970 $notes_gui->setUseObjectTitleHeader(false);
971
972 if ($ilAccess->checkAccess("write", "", $this->requested_ref_id) &&
973 $ilSetting->get("comments_del_tutor", '1')) {
974 $notes_gui->enablePublicNotesDeletion(true);
975 }
976
977 $this->ctrl->setParameter($this, "frame", $this->requested_frame);
978 $this->ctrl->setParameter($this, "obj_id", $this->requested_obj_id);
979
980 $notes_gui->enablePrivateNotes();
981 if ($this->lm->publicNotes()) {
982 $notes_gui->enablePublicNotes();
983 }
984
985 $callback = array($this, "observeNoteAction");
986 $notes_gui->addObserver($callback);
987
988 if ($next_class == "ilcommentgui") {
989 $html = $this->ctrl->forwardCommand($notes_gui);
990 } else {
991 $html = $notes_gui->getListHTML();
992 }
993 return $html;
994 }
ILIAS Notes GUIService $notes_gui

References $ilSetting, and ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ ilLMSubMenu()

ilLMPresentationGUI::ilLMSubMenu ( )

output learning module submenu

Definition at line 771 of file class.ilLMPresentationGUI.php.

771 : void
772 {
774 if ($this->abstract) {
775 return;
776 }
777
778
779 $tpl_menu = new ilTemplate("tpl.lm_sub_menu.html", true, true, "components/ILIAS/LearningModule");
780
781 $pg_id = $this->getCurrentPageId();
782 if ($pg_id == 0) {
783 return;
784 }
785
786 // edit learning module
787 if (!$this->offlineMode()) {
788 if ($rbacsystem->checkAccess("write", $this->requested_ref_id)) {
789 $tpl_menu->setCurrentBlock("edit_page");
790 $page_id = $this->getCurrentPageId();
791 $tpl_menu->setVariable(
792 "EDIT_LINK",
793 ILIAS_HTTP_PATH . "/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
794 "&obj_id=" . $page_id . "&to_page=1"
795 );
796 $tpl_menu->setVariable("EDIT_TXT", $this->lng->txt("edit_page"));
797 $tpl_menu->parseCurrentBlock();
798 }
799
800 $page_id = $this->getCurrentPageId();
801
802 // permanent link
803 $this->tpl->setPermanentLink("pg", null, $page_id . "_" . $this->lm->getRefId());
804 }
805
806 $this->tpl->setVariable("SUBMENU", $tpl_menu->get());
807 }

References ilRbacSystem\checkAccess(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ ilLocator()

ilLMPresentationGUI::ilLocator ( )

Definition at line 996 of file class.ilLMPresentationGUI.php.

996 : void
997 {
998 global $DIC;
999 $ltiview = $DIC["lti"];
1000 $ilLocator = $this->locator;
1001
1002 if (empty($this->requested_obj_id)) {
1003 $a_id = $this->lm_tree->getRootId();
1004 } else {
1006 }
1007
1008 if (!$this->lm->cleanFrames()) {
1009 $frame_param = $this->requested_frame;
1010 $frame_target = "";
1011 } elseif (!$this->offlineMode()) {
1012 $frame_param = "";
1013 $frame_target = ilFrameTargetInfo::_getFrame("MainContent");
1014 } else {
1015 $frame_param = "";
1016 $frame_target = "_top";
1017 }
1018
1019 if (!$this->offlineMode()) {
1020 // LTI
1021 if ($ltiview->isActive()) {
1022 // Do nothing, its complicated...
1023 } else {
1024 $ilLocator->addRepositoryItems();
1025 }
1026 } else {
1027 $ilLocator->setOffline(true);
1028 }
1029
1030 if ($this->lm_tree->isInTree($a_id)) {
1031 $path = $this->lm_tree->getPathFull($a_id);
1032
1033 foreach ($path as $key => $row) {
1034 if ($row["type"] != "pg") {
1035 if ($row["child"] != $this->lm_tree->getRootId()) {
1036 $ilLocator->addItem(
1039 $row["child"],
1041 $this->lm->isActiveNumbering(),
1042 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1043 false,
1044 0,
1045 $this->lang
1046 ),
1047 50,
1048 true
1049 ),
1050 $this->linker->getLink("layout", $row["child"], $frame_param, "StructureObject"),
1051 $frame_target
1052 );
1053 } else {
1054 $ilLocator->addItem(
1056 $this->linker->getLink("layout", 0, $frame_param),
1057 $frame_target,
1058 $this->requested_ref_id
1059 );
1060 }
1061 }
1062 }
1063 } else { // lonely page
1064 $ilLocator->addItem(
1065 $this->getLMPresentationTitle(),
1066 $this->linker->getLink("layout", 0, $this->requested_frame)
1067 );
1068
1069 $lm_obj = ilLMObjectFactory::getInstance($this->lm, $a_id);
1070
1071 $ilLocator->addItem(
1072 $lm_obj->getTitle(),
1073 $this->linker->getLink("layout", $a_id, $frame_param),
1074 $frame_target
1075 );
1076 }
1077
1078 $this->tpl->setLocator();
1079 }
static _getFrame(string $a_class)
static getInstance(ilObjLearningModule $a_content_obj, int $a_id=0, bool $a_halt=true)
static shortenTextExtended(string $a_str, int $a_len, bool $a_dots=false, bool $a_next_blank=false, bool $a_keep_extension=false)
static _getPresentationTitle(int $a_st_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
$path
Definition: ltiservices.php:30

References $DIC, $path, ilFrameTargetInfo\_getFrame(), ilStructureObject\_getPresentationTitle(), ilLMObject\CHAPTER_TITLE, ilLMObjectFactory\getInstance(), and ilStr\shortenTextExtended().

+ Here is the call graph for this function:

◆ ilMedia()

ilLMPresentationGUI::ilMedia ( )

Definition at line 1269 of file class.ilLMPresentationGUI.php.

1269 : void
1270 {
1271 $pg_frame = "";
1272 $this->setContentStyles();
1273
1274 $this->renderPageTitle();
1275
1276 $this->tpl->setCurrentBlock("ilMedia");
1277 $med_links = ilMediaItem::_getMapAreasIntLinks($this->requested_mob_id);
1278 $link_xml = $this->linker->getLinkXML($med_links);
1279
1280 $media_obj = new ilObjMediaObject($this->requested_mob_id);
1281 if (!empty($this->requested_pg_id)) {
1282 $pg_obj = $this->getLMPage($this->requested_pg_id, $this->requested_pg_type);
1283 $pg_obj->buildDom();
1284
1285 $xml = "<dummy>";
1286 // todo: we get always the first alias now (problem if mob is used multiple
1287 // times in page)
1288 $xml .= $pg_obj->getMediaAliasElement($this->requested_mob_id);
1289 } else {
1290 $xml = "<dummy>";
1291 // todo: we get always the first alias now (problem if mob is used multiple
1292 // times in page)
1293 $xml .= $media_obj->getXML(IL_MODE_ALIAS);
1294 }
1295 $xml .= $media_obj->getXML(IL_MODE_OUTPUT);
1296 $xml .= $link_xml;
1297 $xml .= "</dummy>";
1298
1299 if (!$this->offlineMode()) {
1300 $wb_path = ilFileUtils::getWebspaceDir("output") . "/";
1301 } else {
1302 $wb_path = "";
1303 }
1304
1305 $mode = ($this->requested_cmd == "fullscreen")
1306 ? "fullscreen"
1307 : "media";
1308 $enlarge_path = ilUtil::getImagePath("media/enlarge.svg", false, "output", $this->offlineMode());
1309 $fullscreen_link =
1310 $this->linker->getLink("fullscreen");
1311 $params = array('mode' => $mode,
1312 'enlarge_path' => $enlarge_path,
1313 'link_params' => "ref_id=" . $this->lm->getRefId(),
1314 'fullscreen_link' => $fullscreen_link,
1315 'enable_html_mob' => ilObjMediaObject::isTypeAllowed("html") ? "y" : "n",
1316 'ref_id' => $this->lm->getRefId(),
1317 'pg_frame' => $pg_frame,
1318 'webspace_path' => $wb_path
1319 );
1320 $output = $this->xsl->process($xml, $params);
1321
1322 // unmask user html
1323 $this->tpl->setVariable("MEDIA_CONTENT", $output);
1324
1325 // add js
1327 }
const IL_MODE_ALIAS
const IL_MODE_OUTPUT
static getWebspaceDir(string $mode="filesystem")
get webspace directory
getLMPage(int $a_id, string $a_type="")
static _getMapAreasIntLinks(int $a_mob_id)
get all internal links of map areas of a mob
static includePresentationJS(?ilGlobalTemplateInterface $a_tpl=null)
Include media object presentation JS.
static isTypeAllowed(string $a_type)

References $params, ilMediaItem\_getMapAreasIntLinks(), ilUtil\getImagePath(), ilFileUtils\getWebspaceDir(), IL_MODE_ALIAS, IL_MODE_OUTPUT, ilObjMediaObjectGUI\includePresentationJS(), and ilObjMediaObject\isTypeAllowed().

+ Here is the call graph for this function:

◆ ilTOC()

ilLMPresentationGUI::ilTOC ( )

table of contents

Definition at line 744 of file class.ilLMPresentationGUI.php.

745 {
746 $fac = new ilLMTOCExplorerGUIFactory();
747 $exp = $fac->getExplorer($this->service, "ilTOC");
748 $exp->handleCommand();
749 return $exp;
750 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ infoScreen()

ilLMPresentationGUI::infoScreen ( )

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 1346 of file class.ilLMPresentationGUI.php.

1346 : void
1347 {
1348 $this->ctrl->redirectByClass(ilInfoScreenGUI::class, "showSummary");
1349 }

References ILIAS\Repository\ctrl().

+ Here is the call graph for this function:

◆ initByRequest()

ilLMPresentationGUI::initByRequest ( ?array  $query_params = null,
bool  $embed_mode = false 
)

Init services and this class by request params.

The request params are usually retrieved by HTTP request, but also adjusted during HTML exports, this is, why this method needs to be public.

Parameters
array$query_paramsrequest query params

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

212 : void {
213 global $DIC;
214
215 $this->service = new ilLMPresentationService(
216 $this->user,
217 $query_params,
218 $this->offline,
219 $this->export_all_languages,
220 $this->export_format,
221 null,
223 );
224
225 $post = is_null($query_params)
226 ? null
227 : [];
228
229 $request = $DIC->learningModule()
230 ->internal()
231 ->gui()
232 ->presentation()
233 ->request(
234 $query_params,
235 $post
236 );
237
238 $this->requested_obj_type = $request->getObjType();
239 $this->requested_ref_id = $request->getRefId();
240 $this->requested_transl = $request->getTranslation(); // handled by presentation status
241 $this->requested_obj_id = $request->getObjId(); // handled by navigation status
242 $this->requested_back_pg = $request->getBackPage();
243 $this->requested_frame = $request->getFrame();
244 $this->requested_search_string = $request->getSearchString();
245 $this->requested_focus_return = $request->getFocusReturn();
246 $this->requested_mob_id = $request->getMobId();
247 $this->requested_cmd = $request->getCmd();
248 $this->requested_pg_id = $request->getPgId();
249 $this->requested_pg_type = $request->getPgType();
250 $this->requested_notification_switch = $request->getNotificationSwitch();
251 $this->requested_type = $request->getType();
252 $this->requested_url = $request->getUrl();
253
254 $this->lm_set = $this->service->getSettings();
255 $this->lm_gui = $this->service->getLearningModuleGUI();
256 $this->lm = $this->service->getLearningModule();
257 $this->tracker = $this->service->getTracker();
258 $this->linker = $this->service->getLinker();
259 $this->embed_mode = $embed_mode;
260 if ($request->getEmbedMode()) {
261 $this->embed_mode = true;
262 }
263
264 // language translation
265 $this->lang = $this->service->getPresentationStatus()->getLang();
266
267 $this->lm_tree = $this->service->getLMTree();
268 $this->focus_id = $this->service->getPresentationStatus()->getFocusId();
269 $this->ot = $this->lm->getObjectProperties()->getPropertyTranslations();
270 $this->content_style_gui = $this->cs->gui();
271 $this->content_style_domain = $this->cs->domain()->styleForRefId($this->lm->getRefId());
272 }
$post
Definition: ltitoken.php:46

Referenced by __construct().

+ Here is the caller graph for this function:

◆ initPrintViewSelectionForm()

ilLMPresentationGUI::initPrintViewSelectionForm ( )

Definition at line 1600 of file class.ilLMPresentationGUI.php.

1600 : void
1601 {
1602 $lng = $this->lng;
1603 $ilCtrl = $this->ctrl;
1604
1605 $this->form = new ilPropertyFormGUI();
1606 $this->form->setForceTopButtons(true);
1607
1608 // selection type
1609 $radg = new ilRadioGroupInputGUI($lng->txt("cont_selection"), "sel_type");
1610 $radg->setValue("page");
1611 $op1 = new ilRadioOption($lng->txt("cont_current_page"), "page");
1612 $radg->addOption($op1);
1613 $op2 = new ilRadioOption($lng->txt("cont_current_chapter"), "chapter");
1614 $radg->addOption($op2);
1615 $op3 = new ilRadioOption($lng->txt("cont_selected_pg_chap"), "selection");
1616 $radg->addOption($op3);
1617
1618 $nl = new ilNestedListInputGUI("", "obj_id");
1619 $this->nl = $nl;
1620 $op3->addSubItem($nl);
1621
1622 $this->form->addItem($radg);
1623
1624 $this->form->addCommandButton("showPrintView", $lng->txt("cont_show_print_view"));
1625 $this->form->setOpenTag(false);
1626 $this->form->setCloseTag(false);
1627
1628 $this->form->setTitle(" ");
1629 $this->form->setFormAction($ilCtrl->getFormAction($this));
1630 }
This class represents a (nested) list of checkboxes (could be extended for radio items,...
This class represents a property form user interface.
This class represents a property in a property form.
This class represents an option in a radio group.
form( $class_path, string $cmd, string $submit_caption="")

References $lng, ILIAS\Repository\form(), and ilLanguage\txt().

+ Here is the call graph for this function:

◆ initScreenHead()

ilLMPresentationGUI::initScreenHead ( string  $a_active_tab = "info")
protected

Definition at line 1359 of file class.ilLMPresentationGUI.php.

1361 : void {
1362 $ilAccess = $this->access;
1363 $ilLocator = $this->locator;
1364
1365 $this->renderPageTitle();
1366
1367 $this->tpl->loadStandardTemplate();
1368 $this->tpl->setTitle($this->getLMPresentationTitle());
1369 $this->tpl->setTitleIcon(ilUtil::getImagePath("standard/icon_lm.svg"));
1370
1371 $this->renderTabs($a_active_tab, 0);
1372
1373 // Full locator, if read permission is given
1374 if ($ilAccess->checkAccess("read", "", $this->requested_ref_id)) {
1375 $this->ilLocator();
1376 } else {
1377 $ilLocator->addRepositoryItems();
1378 $this->tpl->setLocator();
1379 }
1380 }

◆ injectTemplate()

ilLMPresentationGUI::injectTemplate ( ilGlobalTemplateInterface  $tpl)

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

279 : void
280 {
281 $this->tpl = $tpl;
282 }

◆ layout()

ilLMPresentationGUI::layout ( string  $a_xml = "main.xml",
bool  $doShow = true 
)

Definition at line 475 of file class.ilLMPresentationGUI.php.

478 : string {
479 $content = "";
481 $ilUser = $this->user;
482 $layout = $this->determineLayout();
483
484 // xmldocfile is deprecated! Use domxml_open_file instead.
485 // But since using relative pathes with domxml under windows don't work,
486 // we need another solution:
487 $xmlfile = file_get_contents(ILIAS_ABSOLUTE_PATH . "/components/ILIAS/LearningModule/layouts/lm/" . $layout . "/" . $a_xml);
488
489 $error = null;
490 $doc = $this->dom_util->docFromString($xmlfile, $error);
491 $this->layout_doc = $doc;
492
493 // get current frame node
494 $path = (empty($this->requested_frame) || ($this->requested_frame == "_blank"))
495 ? "/ilLayout/ilFrame[1]"
496 : "//ilFrame[@name='" . $this->requested_frame . "']";
497 $nodes = $this->dom_util->path($doc, $path);
498 if (count($nodes) != 1) {
499 throw new ilLMPresentationException("ilLMPresentation: XML File invalid. Found " . count($nodes) . " nodes for " .
500 " path " . $path . " in " . $layout . "/" . $a_xml . ". LM Layout is " . $this->lm->getLayout());
501 }
502 $node = $nodes->item(0);
503
504 // ProcessFrameset
505 // node is frameset, if it has cols or rows attribute
506 $attributes = $this->attrib2arr($node->attributes);
507
508 $this->frames = array();
509
510 // ProcessContentTag
511 if ((empty($attributes["template"]) || !empty($this->requested_obj_type))
512 && ($this->requested_frame != "_blank" || $this->requested_obj_type != "MediaObject")) {
513 // we got a variable content frame (can display different
514 // object types (PageObject, MediaObject, GlossarItem)
515 // and contains elements for them)
516
517 // determine object type
518 if (empty($this->requested_obj_type)) {
519 $obj_type = "PageObject";
520 } else {
521 $obj_type = $this->requested_obj_type;
522 }
523
524 // get object specific node
525 $found = false;
526 foreach ($node->childNodes as $child) {
527 if ($child->nodeName == $obj_type) {
528 $found = true;
529 $attributes = $this->attrib2arr($child->attributes);
530 $node = $child;
531 //echo "<br>2node:".$node->node_name();
532 break;
533 }
534 }
535 if (!$found) {
536 throw new ilLMPresentationException("ilLMPresentation: No template specified for frame '" .
537 $this->requested_frame . "' and object type '" . $obj_type . "'.");
538 }
539 }
540
541 // set style sheets
542 if (!$this->offlineMode()) {
543 $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
544 } else {
545 $style_name = $ilUser->getPref("style") . ".css";
546 $this->tpl->setVariable("LOCATION_STYLESHEET", "./style/" . $style_name);
547 }
548
549 // to make e.g. advanced seletions lists work:
550 // $GLOBALS["tpl"] = $this->tpl;
551
552 foreach ($node->childNodes as $child) {
553 $child_attr = $this->attrib2arr($child->attributes);
554
555 switch ($child->nodeName) {
556 case "ilPage":
557 $this->renderPageTitle();
558 $this->setHeader();
559 $this->addHeaderAction();
560 $content = $this->getContent();
561 $this->ilLMMenu();
562 $content .= $this->ilLMNotes();
563 $additional = $this->ui->renderer()->render($this->additional_content);
564 $this->tpl->setContent($content . $additional);
565 break;
566
567 case "ilGlossary":
568 $this->ilGlossary();
569 break;
570
571 case "ilLMNavigation":
572 // @todo 6.0
573 // $this->ilLMNavigation();
574 break;
575
576 case "ilMedia":
577 $this->media();
578 break;
579
580 case "ilLocator":
581 $this->ilLocator();
582 break;
583
584 case "ilJavaScript":
585 $this->ilJavaScript(
586 $child_attr["inline"],
587 $child_attr["file"],
588 $child_attr["location"]
589 );
590 break;
591
592 case "ilLMMenu":
593 //$this->ilLMMenu();
594 break;
595
596 case "ilLMHead":
597 // @todo 6.0
598 // $this->ilLMHead();
599 break;
600
601 case "ilLMSubMenu":
602 $this->ilLMSubMenu();
603 break;
604
605 case "ilLMNotes":
606 $this->ilLMNotes();
607 break;
608 }
609 }
610
611 $this->addResourceFiles();
612
613 if ($doShow) {
615 } else {
616 $content = $tpl->printToString();
617 }
618
619 return ($content);
620 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilJavaScript(string $a_inline="", string $a_file="", string $a_location="")
attrib2arr(?DOMNamedNodeMap $a_attributes)
ilLMSubMenu()
output learning module submenu
determineLayout()
Determine layout.
static getStyleSheetLocation(string $mode="output", string $a_css_name="")
get full style sheet file name (path inclusive) of current user
printToString()
Use this method to get the finally rendered page as string.
printToStdout(string $part=self::DEFAULT_BLOCK, bool $has_tabs=true, bool $skip_main_menu=false)

◆ media()

ilLMPresentationGUI::media ( )

Definition at line 668 of file class.ilLMPresentationGUI.php.

668 : string
669 {
670 $this->tpl = new ilGlobalTemplate("tpl.fullscreen.html", true, true, "components/ILIAS/LearningModule");
671
672 // set style sheets
673 $this->setContentStyles();
674 $this->setSystemStyle();
675
676 $this->ilMedia();
677 if (!$this->offlineMode()) {
678 $this->tpl->printToStdout();
679 } else {
680 return $this->tpl->printToString();
681 }
682 return "";
683 }

◆ nop()

ilLMPresentationGUI::nop ( )

this dummy function is needed for offline package creation

Definition at line 436 of file class.ilLMPresentationGUI.php.

436 : void
437 {
438 }

◆ observeNoteAction()

ilLMPresentationGUI::observeNoteAction ( int  $a_lm_id,
int  $a_page_id,
string  $a_type,
string  $a_action,
int  $a_note_id 
)

Generate new ilNote and send Notifications to the users informing that there are new comments in the LM.

Definition at line 2298 of file class.ilLMPresentationGUI.php.

2304 : void {
2305 $note = $this->notes->getById($a_note_id);
2306 $text = $note->getText();
2307
2308 $notification = new ilLearningModuleNotification(
2311 $this->lm,
2312 $a_page_id,
2313 $text
2314 );
2315
2316 $notification->send();
2317 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ offlineMode()

ilLMPresentationGUI::offlineMode ( )

checks whether offline content generation is activated

Definition at line 423 of file class.ilLMPresentationGUI.php.

423 : bool
424 {
425 return $this->offline;
426 }

◆ outputInfoScreen()

ilLMPresentationGUI::outputInfoScreen ( )

info screen

Definition at line 1385 of file class.ilLMPresentationGUI.php.

1385 : string
1386 {
1387 $ilAccess = $this->access;
1388
1389 if (!$this->lm->isInfoEnabled()) {
1390 return "";
1391 }
1392
1393 $this->initScreenHead();
1394
1395 $this->lng->loadLanguageModule("meta");
1396
1397 $info = new ilInfoScreenGUI($this->lm_gui);
1398 $info->enablePrivateNotes();
1399 //$info->enableLearningProgress();
1400 $info->enableNews();
1401 if ($ilAccess->checkAccess("write", "", $this->requested_ref_id)) {
1402 $news_set = new ilSetting("news");
1403 $enable_internal_rss = $news_set->get("enable_rss_for_internal");
1404
1405 $info->enableNewsEditing();
1406
1407 if ($enable_internal_rss) {
1408 $info->setBlockProperty("news", "settings", true);
1409 }
1410 }
1411
1412 // show standard meta data section
1413 $info->addMetaDataSections($this->lm->getId(), 0, $this->lm->getType());
1414
1415 $this->lng->loadLanguageModule("copg");
1416 $est_reading_time = $this->reading_time_manager->getReadingTime($this->lm->getId());
1417 if (!is_null($est_reading_time)) {
1418 $info->addProperty(
1419 $this->lng->txt("copg_est_reading_time"),
1420 sprintf($this->lng->txt("copg_x_minutes"), $est_reading_time)
1421 );
1422 }
1423
1424 if ($this->offlineMode()) {
1425 $this->tpl->setContent($info->getHTML());
1426 return $this->tpl->get();
1427 } else {
1428 // forward the command
1429 $this->ctrl->forwardCommand($info);
1430 //$this->tpl->setContent("aa");
1431 $this->tpl->printToStdout();
1432 }
1433 return "";
1434 }
Class ilInfoScreenGUI.
ILIAS Setting Class.
$info
Definition: entry_point.php:21

References $info, ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ page()

ilLMPresentationGUI::page ( )

Definition at line 715 of file class.ilLMPresentationGUI.php.

715 : string
716 {
717 $ilUser = $this->user;
718 $this->tpl = new ilGlobalTemplate("tpl.page_fullscreen.html", true, true, "components/ILIAS/LearningModule");
719 $GLOBALS["tpl"] = $this->tpl;
720 $this->renderPageTitle();
721
722 $this->setContentStyles();
723
724 // set style sheets
725 if (!$this->offlineMode()) {
726 $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
727 } else {
728 $style_name = $ilUser->getPref("style") . ".css";
729 $this->tpl->setVariable("LOCATION_STYLESHEET", "./style/" . $style_name);
730 }
731
732 $this->tpl->setVariable("PAGE_CONTENT", $this->getPageContent());
733 if (!$this->offlineMode()) {
734 $this->tpl->printToStdout();
735 } else {
736 return $this->tpl->get();
737 }
738 return "";
739 }
$GLOBALS["DIC"]
Definition: wac.php:54

References $GLOBALS, and ilUtil\getStyleSheetLocation().

+ Here is the call graph for this function:

◆ redrawHeaderAction()

ilLMPresentationGUI::redrawHeaderAction ( )

Definition at line 809 of file class.ilLMPresentationGUI.php.

809 : void
810 {
811 echo $this->getHeaderAction(true);
812 exit;
813 }
exit

References exit.

◆ refreshToc()

ilLMPresentationGUI::refreshToc ( )

Refresh toc (called if questions have been answered correctly)

Definition at line 2285 of file class.ilLMPresentationGUI.php.

2285 : void
2286 {
2287 $exp = $this->ilTOC();
2288
2289 echo $exp->getHTML() .
2290 "<script>" . $exp->getOnLoadCode() . "</script>";
2291 exit;
2292 }

References exit.

◆ renderPageTitle()

ilLMPresentationGUI::renderPageTitle ( )
protected

Definition at line 2241 of file class.ilLMPresentationGUI.php.

2241 : void
2242 {
2243 $this->tpl->setHeaderPageTitle($this->getLMPresentationTitle());
2244 }

◆ renderRating()

ilLMPresentationGUI::renderRating ( )
protected

Definition at line 1159 of file class.ilLMPresentationGUI.php.

1159 : string
1160 {
1161 // rating
1162 $rating = "";
1163 if ($this->lm->hasRatingPages() && !$this->offlineMode()) {
1164 $rating_gui = new ilRatingGUI();
1165 $rating_gui->setObject($this->lm->getId(), "lm", $this->getCurrentPageId(), "lm");
1166 $rating_gui->setYourRatingText($this->lng->txt("lm_rate_page"));
1167
1168 $this->ctrl->setParameter($this, "pg_id", $this->getCurrentPageId());
1169 $this->tpl->addOnLoadCode("il.LearningModule.setRatingUrl('" .
1170 $this->ctrl->getLinkTarget($this, "updatePageRating", "", true, false) .
1171 "')");
1172 $this->ctrl->setParameter($this, "pg_id", "");
1173
1174 $rating = '<div id="ilrtrpg" style="text-align:right">' .
1175 $rating_gui->getHTML(true, true, "il.LearningModule.saveRating(%rating%);") .
1176 "</div>";
1177 }
1178 return $rating;
1179 }

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ renderTabs()

ilLMPresentationGUI::renderTabs ( string  $active_tab,
int  $current_page_id 
)
protected

Definition at line 2320 of file class.ilLMPresentationGUI.php.

2323 : void {
2324 $menu_editor = new ilLMMenuEditor();
2325 $menu_editor->setObjId($this->lm->getId());
2326
2327 $navigation_renderer = new ilLMMenuRendererGUI(
2328 $this->getService(),
2329 $this->tabs,
2330 $this->toolbar,
2332 $active_tab,
2333 $this->getExportFormat(),
2334 $this->export_all_languages,
2335 $this->lm,
2336 $this->offlineMode(),
2337 $menu_editor,
2338 $this->lang,
2339 $this->ctrl,
2340 $this->access,
2341 $this->user,
2342 $this->lng,
2343 $this->tpl,
2344 function ($additional_content) {
2345 $this->additional_content[] = $additional_content;
2346 }
2347 );
2348 $navigation_renderer->render();
2349 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ resume()

ilLMPresentationGUI::resume ( )
Exceptions
ilLMPresentationException

Definition at line 470 of file class.ilLMPresentationGUI.php.

470 : void
471 {
472 $this->layout();
473 }

◆ saveFrameUrl()

ilLMPresentationGUI::saveFrameUrl ( )

Definition at line 657 of file class.ilLMPresentationGUI.php.

657 : void
658 {
659 $store = new ilSessionIStorage("lm");
660 $store->set("cf_" . $this->lm->getId(), $this->requested_url);
661 }

◆ setContentStyles()

ilLMPresentationGUI::setContentStyles ( )
protected

Set content style.

Definition at line 1092 of file class.ilLMPresentationGUI.php.

1092 : void
1093 {
1094 // content style
1095 $this->content_style_gui->addCss(
1096 $this->tpl,
1097 $this->lm->getRefId()
1098 );
1099 $this->tpl->addCss(ilObjStyleSheet::getSyntaxStylePath());
1100 }

References ilObjStyleSheet\getSyntaxStylePath().

+ Here is the call graph for this function:

◆ setHeader()

ilLMPresentationGUI::setHeader ( )

Definition at line 762 of file class.ilLMPresentationGUI.php.

762 : void
763 {
764 $this->tpl->setTitle($this->getLMPresentationTitle());
765 $this->tpl->setTitleIcon(ilUtil::getImagePath("standard/icon_lm.svg"));
766 }

References ilUtil\getImagePath().

+ Here is the call graph for this function:

◆ setSystemStyle()

ilLMPresentationGUI::setSystemStyle ( )
protected

Set system style.

Definition at line 1105 of file class.ilLMPresentationGUI.php.

1105 : void
1106 {
1107 $this->tpl->addCss(ilUtil::getStyleSheetLocation());
1108 }

References ilUtil\getStyleSheetLocation().

+ Here is the call graph for this function:

◆ showInfoScreen()

ilLMPresentationGUI::showInfoScreen ( )

info screen call from inside learning module

Definition at line 1354 of file class.ilLMPresentationGUI.php.

1354 : void
1355 {
1356 $this->outputInfoScreen();
1357 }

◆ showMessageScreen()

ilLMPresentationGUI::showMessageScreen ( string  $a_content)

Definition at line 2167 of file class.ilLMPresentationGUI.php.

2169 : void {
2170 // content style
2171 $this->setContentStyles();
2172
2173 $tpl = new ilTemplate("tpl.page_message_screen.html", true, true, "components/ILIAS/LearningModule");
2174 $tpl->setVariable("TXT_PAGE_NO_PUBLIC_ACCESS", $a_content);
2175
2176 $this->tpl->setVariable("PAGE_CONTENT", $tpl->get());
2177 }

◆ showNavRestrictionDueToQuestions()

ilLMPresentationGUI::showNavRestrictionDueToQuestions ( )

Show message if navigation to page is not allowed due to unanswered questions.

Definition at line 2199 of file class.ilLMPresentationGUI.php.

2199 : void
2200 {
2201 $this->showMessageScreen($this->lng->txt("cont_no_page_access_unansw_q"));
2202 }
showMessageScreen(string $a_content)

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ showNoPageAccess()

ilLMPresentationGUI::showNoPageAccess ( )

Show info message, if page is not accessible in public area.

Definition at line 2190 of file class.ilLMPresentationGUI.php.

2190 : void
2191 {
2192 $this->showMessageScreen($this->lng->txt("msg_no_page_access"));
2193 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ showNoPublicAccess()

ilLMPresentationGUI::showNoPublicAccess ( )

Show info message, if page is not accessible in public area.

Definition at line 2182 of file class.ilLMPresentationGUI.php.

2182 : void
2183 {
2184 $this->showMessageScreen($this->lng->txt("msg_page_no_public_access"));
2185 }

References ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ showPrintView()

ilLMPresentationGUI::showPrintView ( )

Definition at line 1632 of file class.ilLMPresentationGUI.php.

1632 : void
1633 {
1634 $ilUser = $this->user;
1635 $lng = $this->lng;
1636 $ilCtrl = $this->ctrl;
1638 $header_page_content = "";
1639 $footer_page_content = "";
1640 $chapter_title = "";
1641 $did_chap_page_header = false;
1642
1643 $lom_paths = $this->lom_services->paths();
1644 $lom_data_helper = $this->lom_services->dataHelper();
1645 $lom_cp_helper = $this->lom_services->copyrightHelper();
1646 $lom_reader = $this->lom_services->read($this->lm->getId(), 0, $this->lm->getType());
1647
1648 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1649 return;
1650 }
1651
1652 $this->renderPageTitle();
1653
1655 $lng->txt("back"),
1656 $ilCtrl->getLinkTarget($this, "layout")
1657 );
1658
1659 $c_obj_id = $this->getCurrentPageId();
1660 // set values according to selection
1661 $sel_type = $this->service->getRequest()->getSelectedType();
1662 $sel_obj_ids = $this->service->getRequest()->getSelectedObjIds();
1663 if ($sel_type == "page") {
1664 if (!in_array($c_obj_id, $sel_obj_ids)) {
1665 $sel_obj_ids[] = $c_obj_id;
1666 }
1667 }
1668 if ($sel_type == "chapter" && $c_obj_id > 0) {
1669 $path = $this->lm_tree->getPathFull($c_obj_id);
1670 $chap_id = $path[1]["child"];
1671 if ($chap_id > 0) {
1672 $sel_obj_ids[] = $chap_id;
1673 }
1674 }
1675
1676 $this->setContentStyles();
1677 $this->tpl->addCss(ilObjStyleSheet::getContentPrintStyle());
1678
1679 $tpl = new ilTemplate("tpl.lm_print_view.html", true, true, "components/ILIAS/LearningModule");
1680
1681 // set title header
1682 $this->tpl->setTitle($this->getLMPresentationTitle());
1683
1684 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1685
1686 $act_level = 99999;
1687 $activated = false;
1688
1689 $glossary_links = array();
1690 $output_header = false;
1691 $media_links = array();
1692 $last_page_title = "";
1693
1694 // get header and footer
1695 if ($this->lm->getFooterPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1696 if (ilLMObject::_exists($this->lm->getFooterPage())) {
1697 $page_object_gui = $this->getLMPageGUI($this->lm->getFooterPage());
1698 $page_object_gui->setStyleId(
1699 $this->content_style_domain->getEffectiveStyleId()
1700 );
1701
1702 // determine target frames for internal links
1703 $page_object_gui->setLinkFrame($this->requested_frame);
1704 $page_object_gui->setOutputMode("print");
1705 $page_object_gui->setPresentationTitle("");
1706 $page_object_gui->setFileDownloadLink("#");
1707 $page_object_gui->setFullscreenLink("#");
1708 $page_object_gui->setSourcecodeDownloadScript("#");
1709 $footer_page_content = $page_object_gui->showPage();
1710 }
1711 }
1712 if ($this->lm->getHeaderPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1713 if (ilLMObject::_exists($this->lm->getHeaderPage())) {
1714 $page_object_gui = $this->getLMPageGUI($this->lm->getHeaderPage());
1715 $page_object_gui->setStyleId(
1716 $this->content_style_domain->getEffectiveStyleId()
1717 );
1718
1719 // determine target frames for internal links
1720 $page_object_gui->setLinkFrame($this->requested_frame);
1721 $page_object_gui->setOutputMode("print");
1722 $page_object_gui->setPresentationTitle("");
1723 $page_object_gui->setFileDownloadLink("#");
1724 $page_object_gui->setFullscreenLink("#");
1725 $page_object_gui->setSourcecodeDownloadScript("#");
1726 $header_page_content = $page_object_gui->showPage();
1727 }
1728 }
1729
1730 // add free selected pages
1731 if (count($sel_obj_ids) > 0) {
1732 foreach ($sel_obj_ids as $k) {
1733 if ($k > 0 && !$this->lm_tree->isInTree($k)) {
1734 if (ilLMObject::_lookupType($k) == "pg") {
1735 $nodes[] = array("obj_id" => $k, "type" => "pg", "free" => true);
1736 }
1737 }
1738 }
1739 } else {
1740 $this->tpl->setOnScreenMessage('failure', $lng->txt("cont_print_no_page_selected"), true);
1741 $ilCtrl->redirect($this, "showPrintViewSelection");
1742 }
1743
1744 foreach ($nodes as $node_key => $node) {
1745 // check page activation
1746 $active = ilLMPage::_lookupActive(
1747 $node["obj_id"],
1748 $this->lm->getType(),
1749 (bool) $this->lm_set->get("time_scheduled_page_activation")
1750 );
1751 if ($node["type"] == "pg" && !$active) {
1752 continue;
1753 }
1754
1755 // print all subchapters/subpages if higher chapter
1756 // has been selected
1757 if ($node["depth"] <= $act_level) {
1758 if (in_array($node["obj_id"], $sel_obj_ids)) {
1759 $act_level = $node["depth"];
1760 $activated = true;
1761 } else {
1762 $act_level = 99999;
1763 $activated = false;
1764 }
1765 }
1766 if ($this->lm->getRestrictForwardNavigation()) {
1767 if ($this->getTracker()->hasPredIncorrectAnswers($node["obj_id"])) {
1768 continue;
1769 }
1770 }
1771 if ($activated &&
1773 $this->lm->getRefId(),
1774 $this->lm->getId(),
1775 $node["obj_id"]
1776 )) {
1777 // output learning module header
1778 if ($node["type"] == "du") {
1779 $output_header = true;
1780 }
1781
1782 // output chapter title
1783 if ($node["type"] == "st") {
1784
1785 $chap = new ilStructureObject($this->lm, $node["obj_id"]);
1786 $tpl->setCurrentBlock("print_chapter");
1787
1788 $chapter_title = $chap->_getPresentationTitle(
1789 $node["obj_id"],
1791 $this->lm->isActiveNumbering(),
1792 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1793 false,
1794 0,
1795 $this->lang
1796 );
1798 "CHAP_TITLE",
1799 $chapter_title
1800 );
1801
1802 if ($this->lm->getPageHeader() == ilLMObject::CHAPTER_TITLE) {
1803 if ($nodes[$node_key + 1]["type"] == "pg") {
1805 "CHAP_HEADER",
1806 $header_page_content
1807 );
1808 $did_chap_page_header = true;
1809 }
1810 }
1811
1813 $tpl->setCurrentBlock("print_block");
1815 }
1816
1817 // output page
1818 if ($node["type"] === "pg") {
1819
1820 $tpl->setCurrentBlock("print_item");
1821
1822 // get page
1823 $page_id = $node["obj_id"];
1824 $page_object_gui = $this->getLMPageGUI($page_id);
1825 $page_object = $page_object_gui->getPageObject();
1826 $page_object_gui->setStyleId(
1827 $this->content_style_domain->getEffectiveStyleId()
1828 );
1829
1830 // get lm page
1831 $lm_pg_obj = new ilLMPageObject($this->lm, $page_id);
1832 $lm_pg_obj->setLMId($this->lm->getId());
1833
1834 // determine target frames for internal links
1835 $page_object_gui->setLinkFrame($this->requested_frame);
1836 $page_object_gui->setOutputMode("print");
1837 $page_object_gui->setPresentationTitle("");
1838
1839 // if ($this->lm->getPageHeader() == ilLMObject::PAGE_TITLE || ($node["free"] ?? false) === true) {
1840 if (true) {
1842 $lm_pg_obj->getId(),
1843 $this->lm->getPageHeader(),
1844 $this->lm->isActiveNumbering(),
1845 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1846 false,
1847 0,
1848 $this->lang
1849 );
1850
1851 if ($this->lm->getPageHeader() === ilLMObject::CHAPTER_TITLE) {
1852 // remove the suffic (x/n)
1853 $page_title = trim(substr($page_title, 0, strrpos($page_title, " ")));
1854 }
1855
1856 // prevent page title after chapter title
1857 // that have the same content
1858 if ($this->lm->isActiveNumbering()) {
1859 $chapter_title = trim(substr(
1860 $chapter_title,
1861 strpos($chapter_title, " ")
1862 ));
1863 }
1864
1865 if ($page_title != $chapter_title && $page_title !== $last_page_title) {
1866 $page_object_gui->setPresentationTitle($page_title);
1867 }
1868 $last_page_title = $page_title;
1869 }
1870
1871 // handle header / footer
1872 $hcont = $header_page_content;
1873 $fcont = $footer_page_content;
1874
1875 if ($this->lm->getPageHeader() == ilLMObject::CHAPTER_TITLE) {
1876 if ($did_chap_page_header) {
1877 $hcont = "";
1878 }
1879 if (($nodes[$node_key + 1]["type"] ?? "") == "pg" &&
1880 !($nodes[$node_key + 1]["depth"] <= $act_level
1881 && !in_array($nodes[$node_key + 1]["obj_id"], $sel_obj_ids))) {
1882 $fcont = "";
1883 }
1884 }
1885
1886 $page_object_gui->setFileDownloadLink("#");
1887 $page_object_gui->setFullscreenLink("#");
1888 $page_object_gui->setSourcecodeDownloadScript("#");
1889 $page_content = $page_object_gui->showPage();
1890 if ($this->lm->getPageHeader() != ilLMObject::PAGE_TITLE) {
1892 "CONTENT",
1893 $hcont . $page_content . $fcont
1894 );
1895 } else {
1897 "CONTENT",
1898 $hcont . $page_content . $fcont . "<br />"
1899 );
1900 }
1901 $chapter_title = "";
1903 $tpl->setCurrentBlock("print_block");
1905
1906 // get internal links
1907 $int_links = ilInternalLink::_getTargetsOfSource($this->lm->getType() . ":pg", $node["obj_id"]);
1908
1909 $got_mobs = false;
1910
1911 foreach ($int_links as $key => $link) {
1912 if ($link["type"] == "git" &&
1913 ($link["inst"] == IL_INST_ID || $link["inst"] == 0)) {
1914 $glossary_links[$key] = $link;
1915 }
1916 if ($link["type"] == "mob" &&
1917 ($link["inst"] == IL_INST_ID || $link["inst"] == 0)) {
1918 $got_mobs = true;
1919 $mob_links[$key] = $link;
1920 }
1921 }
1922
1923 // this is not cool because of performance reasons
1924 // unfortunately the int link table does not
1925 // store the target frame (we want to append all linked
1926 // images but not inline images (i.e. mobs with no target
1927 // frame))
1928 if ($got_mobs) {
1929 $page_object->buildDom();
1930 $links = $page_object->getInternalLinks();
1931 $tf = $link["TargetFrame"] ?? "";
1932 foreach ($links as $link) {
1933 if ($link["Type"] === "MediaObject"
1934 && $tf !== ""
1935 && $tf !== "None") {
1936 $media_links[] = $link;
1937 }
1938 }
1939 }
1940 }
1941 }
1942 }
1943
1944 $annex_cnt = 0;
1945 $annexes = array();
1946
1947 // glossary
1948 if (count($glossary_links) > 0 && !$this->lm->isActivePreventGlossaryAppendix()) {
1949 // sort terms
1950 $terms = array();
1951
1952 foreach ($glossary_links as $key => $link) {
1953 $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"]);
1954 $terms[$term . ":" . $key] = array("key" => $key, "link" => $link, "term" => $term);
1955 }
1956 $terms = ilArrayUtil::sortArray($terms, "term", "asc");
1957 //ksort($terms);
1958
1959 foreach ($terms as $t) {
1960 $link = $t["link"];
1961 $key = $t["key"];
1962
1963 try {
1964 // output definition of term
1965 $page_gui = new ilGlossaryDefPageGUI($link["id"]);
1966 $page_gui->setTemplateOutput(false);
1967 $page_gui->setOutputMode("print");
1968
1969 $tpl->setCurrentBlock("definition");
1970 $page_gui->setFileDownloadLink("#");
1971 $page_gui->setFullscreenLink("#");
1972 $page_gui->setSourcecodeDownloadScript("#");
1973 $output = $page_gui->showPage();
1974 $tpl->setVariable("VAL_DEFINITION", $output);
1976
1977 // output term
1978 $tpl->setCurrentBlock("term");
1980 "VAL_TERM",
1981 $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"])
1982 );
1984 } catch (Exception $e) {
1985
1986 }
1987 }
1988
1989 // output glossary header
1990 $annex_cnt++;
1991 $tpl->setCurrentBlock("glossary");
1992 $annex_title = $this->lng->txt("cont_annex") . " " .
1993 chr(64 + $annex_cnt) . ": " . $this->lng->txt("glo");
1994 $tpl->setVariable("TXT_GLOSSARY", $annex_title);
1996
1997 $annexes[] = $annex_title;
1998 }
1999
2000 // referenced images
2001 if (count($media_links) > 0) {
2002 foreach ($media_links as $media) {
2003 if (substr($media["Target"], 0, 4) == "il__") {
2004 $arr = explode("_", $media["Target"]);
2005 $id = $arr[count($arr) - 1];
2006
2007 $med_obj = new ilObjMediaObject($id);
2008 $med_item = $med_obj->getMediaItem("Standard");
2009 if (is_object($med_item)) {
2010 if (is_int(strpos($med_item->getFormat(), "image"))) {
2011 $tpl->setCurrentBlock("ref_image");
2012
2013 // image source
2014 if ($med_item->getLocationType() == "LocalFile") {
2016 "IMG_SOURCE",
2017 ilFileUtils::getWebspaceDir("output") . "/mobs/mm_" . $id .
2018 "/" . $med_item->getLocation()
2019 );
2020 } else {
2022 "IMG_SOURCE",
2023 $med_item->getLocation()
2024 );
2025 }
2026
2027 if ($med_item->getCaption() != "") {
2028 $tpl->setVariable("IMG_TITLE", $med_item->getCaption());
2029 } else {
2030 $tpl->setVariable("IMG_TITLE", $med_obj->getTitle());
2031 }
2033 }
2034 }
2035 }
2036 }
2037
2038 // output glossary header
2039 $annex_cnt++;
2040 $tpl->setCurrentBlock("ref_images");
2041 $annex_title = $this->lng->txt("cont_annex") . " " .
2042 chr(64 + $annex_cnt) . ": " . $this->lng->txt("cont_ref_images");
2043 $tpl->setVariable("TXT_REF_IMAGES", $annex_title);
2045
2046 $annexes[] = $annex_title;
2047 }
2048
2049 // output learning module title and toc
2050 if ($output_header) {
2051 $tpl->setCurrentBlock("print_header");
2052 $tpl->setVariable("LM_TITLE", $this->getLMPresentationTitle());
2053 if ($this->lm->getDescription() != "none") {
2055 "LM_DESCRIPTION",
2056 $lom_reader->firstData($lom_paths->firstDescription())->value()
2057 );
2058 }
2060
2061 // output toc
2062 $nodes2 = $nodes;
2063 foreach ($nodes2 as $node2) {
2064 if ($node2["type"] == "st"
2066 $this->lm->getRefId(),
2067 $this->lm->getId(),
2068 $node2["obj_id"]
2069 )) {
2070 for ($j = 1; $j < $node2["depth"]; $j++) {
2071 $tpl->setCurrentBlock("indent");
2072 $tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.png"));
2074 }
2075 $tpl->setCurrentBlock("toc_entry");
2077 "TXT_TOC_TITLE",
2079 $node2["obj_id"],
2081 $this->lm->isActiveNumbering(),
2082 (bool) $this->lm_set->get("time_scheduled_page_activation"),
2083 false,
2084 0,
2085 $this->lang
2086 )
2087 );
2089 }
2090 }
2091
2092 // annexes
2093 foreach ($annexes as $annex) {
2094 $tpl->setCurrentBlock("indent");
2095 $tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.png"));
2097 $tpl->setCurrentBlock("toc_entry");
2098 $tpl->setVariable("TXT_TOC_TITLE", $annex);
2100 }
2101
2102 $tpl->setCurrentBlock("toc");
2103 $tpl->setVariable("TXT_TOC", $this->lng->txt("cont_toc"));
2105
2106 $tpl->setCurrentBlock("print_start_block");
2108 }
2109
2110 // output author information
2111 $authors = $lom_data_helper->makePresentableAsList(
2112 ", ",
2113 ...$lom_reader->allData($lom_paths->authors())
2114 );
2115 if ($authors != "") {
2116 $this->lng->loadLanguageModule("meta");
2117 $tpl->setCurrentBlock("author");
2118 $tpl->setVariable("TXT_AUTHOR", $this->lng->txt("meta_author"));
2119 $tpl->setVariable("LM_AUTHOR", $authors);
2121 }
2122
2123 // output copyright information
2124 if ($lom_cp_helper->hasPresetCopyright($lom_reader)) {
2125 $copyright = $this->ui->renderer()->render(
2126 $lom_cp_helper->readPresetCopyright($lom_reader)->presentAsUIComponents()
2127 );
2128 } else {
2129 $copyright = $lom_cp_helper->readCustomCopyright($lom_reader);
2130 }
2131 if ($copyright != "") {
2132 $this->lng->loadLanguageModule("meta");
2133 $tpl->setCurrentBlock("copyright");
2134 $tpl->setVariable("TXT_COPYRIGHT", $this->lng->txt("meta_copyright"));
2135 $tpl->setVariable("LM_COPYRIGHT", $copyright);
2137 }
2138 $this->tpl->setContent($tpl->get());
2139 $this->tpl->addOnLoadCode("il.Util.print();");
2140 $this->tpl->printToStdout();
2141 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
static _lookGlossaryTerm(int $term_id)
get glossary term
static _exists(int $a_id)
checks wether a lm content object with specified id exists or not
static _lookupType(int $a_obj_id, int $a_lm_id=0)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getPresentationTitle(int $a_pg_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
presentation title doesn't have to be page title, it may be chapter title + page title or chapter tit...
static _checkPreconditionsOfPage(int $cont_ref_id, int $cont_obj_id, int $page_id)
checks whether the preconditions of a page are fulfilled or not
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setBackTarget(string $a_title, string $a_target, string $a_frame="")
const IL_INST_ID
Definition: constants.php:40
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.

References Vendor\Package\$e, $id, $lng, $path, ilObjContentObject\_checkPreconditionsOfPage(), ilLMObject\_exists(), ilLMPageObject\_getPresentationTitle(), ilStructureObject\_getPresentationTitle(), ilInternalLink\_getTargetsOfSource(), ilGlossaryTerm\_lookGlossaryTerm(), ilPageObject\_lookupActive(), ilLMObject\_lookupType(), ilLMObject\CHAPTER_TITLE, ILIAS\UICore\GlobalTemplate\get(), ilObjStyleSheet\getContentPrintStyle(), ilUtil\getImagePath(), ilFileUtils\getWebspaceDir(), IL_INST_ID, ILIAS\Repository\lng(), ilLMObject\PAGE_TITLE, ILIAS\UICore\GlobalTemplate\parseCurrentBlock(), ilTabsGUI\setBackTarget(), ILIAS\UICore\GlobalTemplate\setCurrentBlock(), ILIAS\UICore\GlobalTemplate\setVariable(), ilArrayUtil\sortArray(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ showPrintViewSelection()

ilLMPresentationGUI::showPrintViewSelection ( )

show selection screen for print view

Definition at line 1439 of file class.ilLMPresentationGUI.php.

1439 : void
1440 {
1441 $ilUser = $this->user;
1442 $lng = $this->lng;
1443
1444 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1445 return;
1446 }
1447
1448 $disabled = false;
1449 $img_alt = "";
1450
1451 $tpl = new ilTemplate("tpl.lm_print_selection.html", true, true, "components/ILIAS/LearningModule");
1452
1453 $this->ctrl->setParameterByClass("illmpresentationgui", "obj_id", $this->requested_obj_id);
1454 $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
1455
1456 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1457 $nodes = $this->filterNonAccessibleNode($nodes);
1458
1460
1461 foreach ($nodes as $node) {
1462 $img_src = "";
1463 $disabled = false;
1464 $img_alt = "";
1465
1466 // check page activation
1467 $active = ilLMPage::_lookupActive(
1468 $node["obj_id"],
1469 $this->lm->getType(),
1470 (bool) $this->lm_set->get("time_scheduled_page_activation")
1471 );
1472
1473 if ($node["type"] == "pg" &&
1474 !$active) {
1475 continue;
1476 }
1477
1478 $text = "";
1479 $img_alt = "";
1480 $checked = false;
1481
1482 switch ($node["type"]) {
1483 // page
1484 case "pg":
1485 $text =
1487 $node["obj_id"],
1488 $this->lm->getPageHeader(),
1489 $this->lm->isActiveNumbering(),
1490 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1491 false,
1492 0,
1493 $this->lang
1494 );
1495
1496 $img_src = ilUtil::getImagePath("standard/icon_pg.svg");
1497 $img_alt = $lng->txt("icon") . " " . $lng->txt("pg");
1498 break;
1499
1500 // learning module
1501 case "du":
1502 $text = $this->getLMPresentationTitle();
1503 $img_src = ilUtil::getImagePath("standard/icon_lm.svg");
1504 $img_alt = $lng->txt("icon") . " " . $lng->txt("obj_lm");
1505 break;
1506
1507 // chapter
1508 case "st":
1509 $text =
1511 $node["obj_id"],
1513 $this->lm->isActiveNumbering(),
1514 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1515 false,
1516 0,
1517 $this->lang
1518 );
1519 $img_src = ilUtil::getImagePath("standard/icon_st.svg");
1520 $img_alt = $lng->txt("icon") . " " . $lng->txt("st");
1521 break;
1522 }
1523
1525 $this->lm->getRefId(),
1526 $this->lm->getId(),
1527 $node["obj_id"]
1528 )) {
1529 $text .= " (" . $this->lng->txt("cont_no_access") . ")";
1530 }
1531
1532 $this->nl->addListNode(
1533 $node["obj_id"],
1534 $text,
1535 $node["parent"],
1536 $checked,
1537 $disabled,
1538 $img_src,
1539 $img_alt
1540 );
1541 }
1542
1543 // check for free page
1544 if ($this->requested_obj_id > 0 && !$this->lm_tree->isInTree($this->requested_obj_id)) {
1545 $text =
1547 $this->requested_obj_id,
1548 $this->lm->getPageHeader(),
1549 $this->lm->isActiveNumbering(),
1550 (bool) $this->lm_set->get("time_scheduled_page_activation"),
1551 false,
1552 0,
1553 $this->lang
1554 );
1555
1556 $img_src = ilUtil::getImagePath("standard/icon_pg.svg");
1558
1559 $checked = true;
1560
1561 $this->nl->addListNode(
1562 $id,
1563 $text,
1564 0,
1565 $checked,
1566 $disabled,
1567 $img_src,
1568 $img_alt
1569 );
1570 }
1571
1572 $f = $this->form->getHTMLAsync();
1573
1574 $tpl->setVariable("ITEM_SELECTION", $f);
1575
1576 $modal = $this->ui->factory()->modal()->roundtrip(
1577 $this->lng->txt("cont_print_view"),
1578 $this->ui->factory()->legacy()->content($tpl->get())
1579 );
1580 echo $this->ui->renderer()->render($modal);
1581 exit();
1582 }

References Vendor\Package\$f, $id, $lng, ilObjContentObject\_checkPreconditionsOfPage(), ilLMPageObject\_getPresentationTitle(), ilStructureObject\_getPresentationTitle(), ilPageObject\_lookupActive(), ilLMObject\CHAPTER_TITLE, ILIAS\Repository\ctrl(), exit, ILIAS\Repository\form(), ILIAS\UICore\GlobalTemplate\get(), ilUtil\getImagePath(), ILIAS\Repository\lng(), ILIAS\UICore\GlobalTemplate\setVariable(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ updatePageRating()

ilLMPresentationGUI::updatePageRating ( )

Definition at line 1181 of file class.ilLMPresentationGUI.php.

1181 : void
1182 {
1183 $ilUser = $this->user;
1184 $pg_id = $this->service->getRequest()->getPgId();
1185 if (!$this->ctrl->isAsynch() || !$pg_id) {
1186 exit();
1187 }
1188
1189 $rating = $this->service->getRequest()->getRating();
1190 if ($rating) {
1192 $this->lm->getId(),
1193 "lm",
1194 $pg_id,
1195 "lm",
1196 $ilUser->getId(),
1197 $rating
1198 );
1199 } else {
1201 $this->lm->getId(),
1202 "lm",
1203 $pg_id,
1204 "lm",
1205 $ilUser->getId()
1206 );
1207 }
1208
1209 $rating = new ilRatingGUI();
1210 $rating->setObject($this->lm->getId(), "lm", $pg_id, "lm");
1211 $rating->setYourRatingText($this->lng->txt("lm_rate_page"));
1212
1213 echo $rating->getHTML(true, true, "il.LearningModule.saveRating(%rating%);");
1214
1215 echo $this->tpl->getOnLoadCodeForAsynch();
1216 exit();
1217 }
static resetRatingForUserAndObject(int $a_obj_id, string $a_obj_type, int $a_sub_obj_id, string $a_sub_obj_type, int $a_user_id)
Reset rating for a user and an object.
static writeRatingForUserAndObject(int $a_obj_id, string $a_obj_type, ?int $a_sub_obj_id, ?string $a_sub_obj_type, int $a_user_id, int $a_rating, int $a_category_id=0)
Write rating for a user and an object.

References ILIAS\Repository\ctrl(), exit, ILIAS\Repository\lng(), ilRating\resetRatingForUserAndObject(), and ilRating\writeRatingForUserAndObject().

+ Here is the call graph for this function:

Field Documentation

◆ $abstract

bool ilLMPresentationGUI::$abstract = false
protected

Definition at line 92 of file class.ilLMPresentationGUI.php.

◆ $access

ilAccessHandler ilLMPresentationGUI::$access
protected

Definition at line 56 of file class.ilLMPresentationGUI.php.

◆ $additional_content

array ilLMPresentationGUI::$additional_content = []
protected

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

◆ $chapter_has_no_active_page

bool ilLMPresentationGUI::$chapter_has_no_active_page = false

Definition at line 72 of file class.ilLMPresentationGUI.php.

◆ $content_style_domain

ILIAS Style Content Object ObjectFacade ilLMPresentationGUI::$content_style_domain
protected

Definition at line 94 of file class.ilLMPresentationGUI.php.

◆ $content_style_gui

ILIAS Style Content GUIService ilLMPresentationGUI::$content_style_gui
protected

Definition at line 95 of file class.ilLMPresentationGUI.php.

◆ $cs

ILIAS Style Content Service ilLMPresentationGUI::$cs = null
protected

Definition at line 96 of file class.ilLMPresentationGUI.php.

◆ $ctrl

ilCtrl ilLMPresentationGUI::$ctrl
protected

Definition at line 54 of file class.ilLMPresentationGUI.php.

◆ $current_page_id

int ilLMPresentationGUI::$current_page_id = 0
protected

Definition at line 69 of file class.ilLMPresentationGUI.php.

◆ $deactivated_page

bool ilLMPresentationGUI::$deactivated_page = false

Definition at line 73 of file class.ilLMPresentationGUI.php.

◆ $dom_util

ILIAS COPage Dom DomUtil ilLMPresentationGUI::$dom_util
protected

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

◆ $embed_mode

bool ilLMPresentationGUI::$embed_mode = false
protected

Definition at line 68 of file class.ilLMPresentationGUI.php.

Referenced by __construct().

◆ $export_all_languages

bool ilLMPresentationGUI::$export_all_languages = false
protected

Definition at line 71 of file class.ilLMPresentationGUI.php.

◆ $export_format

string ilLMPresentationGUI::$export_format
protected

Definition at line 49 of file class.ilLMPresentationGUI.php.

◆ $fill_on_load_code

bool ilLMPresentationGUI::$fill_on_load_code
protected

Definition at line 46 of file class.ilLMPresentationGUI.php.

◆ $focus_id

int ilLMPresentationGUI::$focus_id = 0
protected

Definition at line 70 of file class.ilLMPresentationGUI.php.

◆ $form

ilPropertyFormGUI ilLMPresentationGUI::$form
protected

Definition at line 51 of file class.ilLMPresentationGUI.php.

◆ $frames

array ilLMPresentationGUI::$frames
protected

Definition at line 48 of file class.ilLMPresentationGUI.php.

◆ $global_screen

ILIAS GlobalScreen Services ilLMPresentationGUI::$global_screen
protected

Definition at line 36 of file class.ilLMPresentationGUI.php.

◆ $help

ilHelpGUI ilLMPresentationGUI::$help
protected

Definition at line 60 of file class.ilLMPresentationGUI.php.

◆ $lang

string ilLMPresentationGUI::$lang

Definition at line 50 of file class.ilLMPresentationGUI.php.

◆ $layout_doc

DOMDocument ilLMPresentationGUI::$layout_doc

Definition at line 65 of file class.ilLMPresentationGUI.php.

◆ $linker

ilLMPresentationLinker ilLMPresentationGUI::$linker
protected

Definition at line 82 of file class.ilLMPresentationGUI.php.

◆ $lm

ilObjLearningModule ilLMPresentationGUI::$lm
protected

Definition at line 62 of file class.ilLMPresentationGUI.php.

◆ $lm_gui

ilObjLearningModuleGUI ilLMPresentationGUI::$lm_gui
protected

Definition at line 45 of file class.ilLMPresentationGUI.php.

◆ $lm_set

ilSetting ilLMPresentationGUI::$lm_set
protected

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

◆ $lm_tree

ilLMTree ilLMPresentationGUI::$lm_tree
protected

Definition at line 47 of file class.ilLMPresentationGUI.php.

◆ $lng

ilLanguage ilLMPresentationGUI::$lng

Definition at line 64 of file class.ilLMPresentationGUI.php.

Referenced by __construct().

◆ $locator

ilLocatorGUI ilLMPresentationGUI::$locator
protected

Definition at line 58 of file class.ilLMPresentationGUI.php.

◆ $lom_services

LOMServices ilLMPresentationGUI::$lom_services
protected

Definition at line 61 of file class.ilLMPresentationGUI.php.

◆ $nav_history

ilNavigationHistory ilLMPresentationGUI::$nav_history
protected

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

◆ $nl

ilNestedListInputGUI ilLMPresentationGUI::$nl
protected

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

◆ $notes

ILIAS Notes DomainService ilLMPresentationGUI::$notes
protected

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

◆ $notes_gui

ILIAS Notes GUIService ilLMPresentationGUI::$notes_gui
protected

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

◆ $offline

bool ilLMPresentationGUI::$offline

Definition at line 66 of file class.ilLMPresentationGUI.php.

◆ $offline_directory

string ilLMPresentationGUI::$offline_directory

Definition at line 67 of file class.ilLMPresentationGUI.php.

◆ $ot

Translations ilLMPresentationGUI::$ot
protected

Definition at line 93 of file class.ilLMPresentationGUI.php.

◆ $rbacsystem

ilRbacSystem ilLMPresentationGUI::$rbacsystem
protected

Definition at line 53 of file class.ilLMPresentationGUI.php.

Referenced by __construct().

◆ $reading_time_manager

ILIAS LearningModule ReadingTime ReadingTimeManager ilLMPresentationGUI::$reading_time_manager
protected

Definition at line 38 of file class.ilLMPresentationGUI.php.

◆ $requested_back_pg

string ilLMPresentationGUI::$requested_back_pg
protected

Definition at line 74 of file class.ilLMPresentationGUI.php.

◆ $requested_cmd

string ilLMPresentationGUI::$requested_cmd = ""
protected

Definition at line 87 of file class.ilLMPresentationGUI.php.

◆ $requested_focus_return

string ilLMPresentationGUI::$requested_focus_return
protected

Definition at line 76 of file class.ilLMPresentationGUI.php.

◆ $requested_frame

string ilLMPresentationGUI::$requested_frame
protected

Definition at line 81 of file class.ilLMPresentationGUI.php.

◆ $requested_mob_id

int ilLMPresentationGUI::$requested_mob_id = 0
protected

Definition at line 90 of file class.ilLMPresentationGUI.php.

◆ $requested_notification_switch

int ilLMPresentationGUI::$requested_notification_switch = 0
protected

Definition at line 91 of file class.ilLMPresentationGUI.php.

◆ $requested_obj_id

int ilLMPresentationGUI::$requested_obj_id
protected

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

Referenced by __construct().

◆ $requested_obj_type

string ilLMPresentationGUI::$requested_obj_type
protected

Definition at line 79 of file class.ilLMPresentationGUI.php.

◆ $requested_pg_id

int ilLMPresentationGUI::$requested_pg_id = 0
protected

Definition at line 88 of file class.ilLMPresentationGUI.php.

◆ $requested_pg_type

string ilLMPresentationGUI::$requested_pg_type = ""
protected

Definition at line 89 of file class.ilLMPresentationGUI.php.

◆ $requested_ref_id

int ilLMPresentationGUI::$requested_ref_id
protected

Definition at line 77 of file class.ilLMPresentationGUI.php.

◆ $requested_search_string

string ilLMPresentationGUI::$requested_search_string
protected

Definition at line 75 of file class.ilLMPresentationGUI.php.

◆ $requested_transl

string ilLMPresentationGUI::$requested_transl
protected

Definition at line 80 of file class.ilLMPresentationGUI.php.

◆ $requested_type

string ilLMPresentationGUI::$requested_type
protected

Definition at line 40 of file class.ilLMPresentationGUI.php.

◆ $requested_url

string ilLMPresentationGUI::$requested_url
protected

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

◆ $service

ilLMPresentationService ilLMPresentationGUI::$service
protected

Definition at line 83 of file class.ilLMPresentationGUI.php.

◆ $settings

ilSetting ilLMPresentationGUI::$settings
protected

Definition at line 57 of file class.ilLMPresentationGUI.php.

◆ $tabs

ilTabsGUI ilLMPresentationGUI::$tabs
protected

Definition at line 42 of file class.ilLMPresentationGUI.php.

◆ $toolbar

ilToolbarGUI ilLMPresentationGUI::$toolbar
protected

Definition at line 85 of file class.ilLMPresentationGUI.php.

◆ $tpl

ilGlobalTemplateInterface ilLMPresentationGUI::$tpl

Definition at line 63 of file class.ilLMPresentationGUI.php.

◆ $tracker

ilLMTracker ilLMPresentationGUI::$tracker
protected

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

◆ $tree

ilTree ilLMPresentationGUI::$tree
protected

Definition at line 59 of file class.ilLMPresentationGUI.php.

◆ $ui

ILIAS DI UIServices ilLMPresentationGUI::$ui
protected

Definition at line 84 of file class.ilLMPresentationGUI.php.

◆ $user

ilObjUser ilLMPresentationGUI::$user
protected

Definition at line 52 of file class.ilLMPresentationGUI.php.

◆ $xsl

ILIAS COPage Xsl XslManager ilLMPresentationGUI::$xsl
protected

Definition at line 34 of file class.ilLMPresentationGUI.php.


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