34 protected \ILIAS\COPage\Xsl\XslManager
$xsl;
37 protected \ILIAS\Notes\DomainService
$notes;
84 protected \ILIAS\DI\UIServices
$ui;
99 string $a_export_format =
"",
100 bool $a_all_languages =
false,
101 string $a_export_dir =
"",
102 bool $claim_repo_context =
true,
103 ?array $query_params =
null,
108 $this->offline = ($a_export_format !=
"");
109 $this->export_all_languages = $a_all_languages;
110 $this->export_format = $a_export_format;
111 $this->offline_directory = $a_export_dir;
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();
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();
128 $ilCtrl =
$DIC->ctrl();
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"));
141 $this->cs =
$DIC->contentStyle();
147 if ($this->lm->getOfflineStatus()) {
152 if ($claim_repo_context) {
153 $DIC->globalScreen()->tool()->context()->claim()->repository();
156 if (!$ilCtrl->isAsynch()) {
159 if ($this->service->getPresentationStatus()->isTocNecessary()) {
160 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
166 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
173 $ilCtrl->setParameter($this,
"embed_mode", 1);
176 "ref_id" => $this->lm->getRefId(),
179 $DIC->globalScreen()->tool()->context()->current()->addAdditionalData(
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();
210 ?array $query_params =
null,
219 $this->export_all_languages,
220 $this->export_format,
225 $post = is_null($query_params)
229 $request =
$DIC->learningModule()
238 $this->requested_obj_type = $request->getObjType();
239 $this->requested_ref_id = $request->getRefId();
240 $this->requested_transl = $request->getTranslation();
241 $this->requested_obj_id = $request->getObjId();
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();
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();
260 if ($request->getEmbedMode()) {
261 $this->embed_mode =
true;
265 $this->lang = $this->service->getPresentationStatus()->getLang();
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());
286 return $this->service->getTracker();
296 $ilNavigationHistory = $this->nav_history;
297 $ilAccess = $this->access;
299 $ilCtrl = $this->ctrl;
300 $ilUser = $this->user;
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)))) {
310 $next_class = $this->
ctrl->getNextClass($this);
311 $cmd = $this->
ctrl->getCmd(
"layout");
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);
318 switch ($next_class) {
320 $ret = $this->layout();
323 case "ilinfoscreengui":
324 $ret = $this->outputInfoScreen();
327 case "ilcommonactiondispatchergui":
329 $gui->enableCommentsSettings(
false);
330 $this->
ctrl->forwardCommand($gui);
334 $page_gui = $this->getLMPageGUI($this->requested_obj_id);
335 $this->basicPageGuiInit($page_gui);
336 $ret = $ilCtrl->forwardCommand($page_gui);
339 case "ilassgenfeedbackpagegui":
342 $ret = $ilCtrl->forwardCommand($page_gui);
345 case "ilglossarydefpagegui":
349 $this->basicPageGuiInit($page_gui);
350 $ret = $ilCtrl->forwardCommand($page_gui);
353 case "illearningprogressgui":
354 $this->initScreenHead(
"learning_progress");
357 $this->requested_ref_id,
360 $this->
ctrl->forwardCommand($new_gui);
363 if ($this->
ctrl->getCmd() !==
"editManual") {
364 $this->tpl->printToStdout();
370 $rating_gui->setObject($this->lm->getId(),
"lm", $this->requested_obj_id,
"lm");
371 $this->
ctrl->forwardCommand($rating_gui);
375 if ($this->requested_notification_switch > 0) {
376 switch ($this->requested_notification_switch) {
380 $this->
user->getId(),
389 $this->
user->getId(),
398 $this->
user->getId(),
399 $this->getCurrentPageId(),
407 $this->
user->getId(),
408 $this->getCurrentPageId(),
413 $ilCtrl->redirect($this,
"layout");
415 $ret = $this->$cmd();
425 return $this->offline;
430 return $this->export_format;
436 public function nop(): void
440 public function attrib2arr(?DOMNamedNodeMap $a_attributes): array
443 if (!is_null($a_attributes)) {
444 foreach ($a_attributes as $attribute) {
445 $attr[$attribute->name] = $attribute->value;
456 return $this->frames;
476 string $a_xml =
"main.xml",
481 $ilUser = $this->user;
482 $layout = $this->determineLayout();
487 $xmlfile = file_get_contents(ILIAS_ABSOLUTE_PATH .
"/components/ILIAS/LearningModule/layouts/lm/" . $layout .
"/" . $a_xml);
490 $doc = $this->dom_util->docFromString($xmlfile, $error);
491 $this->layout_doc = $doc;
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) {
500 " path " .
$path .
" in " . $layout .
"/" . $a_xml .
". LM Layout is " . $this->lm->getLayout());
502 $node = $nodes->item(0);
506 $attributes = $this->attrib2arr($node->attributes);
508 $this->frames = array();
511 if ((empty($attributes[
"template"]) || !empty($this->requested_obj_type))
512 && ($this->requested_frame !=
"_blank" || $this->requested_obj_type !=
"MediaObject")) {
518 if (empty($this->requested_obj_type)) {
519 $obj_type =
"PageObject";
521 $obj_type = $this->requested_obj_type;
526 foreach ($node->childNodes as $child) {
527 if ($child->nodeName == $obj_type) {
529 $attributes = $this->attrib2arr($child->attributes);
537 $this->requested_frame .
"' and object type '" . $obj_type .
"'.");
542 if (!$this->offlineMode()) {
545 $style_name = $ilUser->getPref(
"style") .
".css";
546 $this->tpl->setVariable(
"LOCATION_STYLESHEET",
"./style/" . $style_name);
549 foreach ($node->childNodes as $child) {
550 $child_attr = $this->attrib2arr($child->attributes);
552 switch ($child->nodeName) {
554 $this->renderPageTitle();
556 $this->addHeaderAction();
559 $content .= $this->ilLMNotes();
560 $additional = $this->
ui->renderer()->render($this->additional_content);
561 $this->tpl->setContent($content . $additional);
568 case "ilLMNavigation":
583 $child_attr[
"inline"],
585 $child_attr[
"location"]
599 $this->ilLMSubMenu();
608 $this->addResourceFiles();
624 if (!$this->offlineMode()) {
628 $this->tpl->addJavaScript(
"assets/js/LearningModule.js");
631 if ($this->requested_frame ==
"") {
633 $last_frame_url = $store->get(
"cf_" . $this->lm->getId());
634 if ($last_frame_url !=
"") {
635 $this->tpl->addOnLoadCode(
"il.LearningModule.setLastFrameUrl('" . $last_frame_url .
"', 'center_bottom');");
638 $this->tpl->addOnLoadCode(
"il.LearningModule.setSaveUrl('" .
639 $this->
ctrl->getLinkTarget($this,
"saveFrameUrl",
"",
false,
false) .
"');
640 il.LearningModule.openInitFrames();
643 $this->tpl->addOnLoadCode(
"il.LearningModule.setTocRefreshUrl('" .
644 $this->
ctrl->getLinkTarget($this,
"refreshToc",
"",
false,
false) .
"');
656 $store->set(
"cf_" . $this->lm->getId(), $this->requested_url);
661 return $this->media();
666 $this->tpl =
new ilGlobalTemplate(
"tpl.fullscreen.html",
true,
true,
"components/ILIAS/LearningModule");
669 $this->setContentStyles();
670 $this->setSystemStyle();
673 if (!$this->offlineMode()) {
674 $this->tpl->printToStdout();
676 return $this->tpl->printToString();
683 $this->tpl =
new ilGlobalTemplate(
"tpl.glossary_term_output.html",
true,
true,
"components/ILIAS/LearningModule");
684 $this->renderPageTitle();
692 $this->setContentStyles();
693 $this->setSystemStyle();
697 $js = $this->global_screen->layout()->meta()->getJs();
698 foreach ($js->getItemsInOrderOfDelivery() as $item) {
699 $this->tpl->addJavaScript($item->getContent());
702 if (!$this->offlineMode()) {
703 $this->tpl->printToStdout();
705 return $this->tpl->printToString();
713 $ilUser = $this->user;
714 $this->tpl =
new ilGlobalTemplate(
"tpl.page_fullscreen.html",
true,
true,
"components/ILIAS/LearningModule");
716 $this->renderPageTitle();
718 $this->setContentStyles();
721 if (!$this->offlineMode()) {
724 $style_name = $ilUser->getPref(
"style") .
".css";
725 $this->tpl->setVariable(
"LOCATION_STYLESHEET",
"./style/" . $style_name);
728 $this->tpl->setVariable(
"PAGE_CONTENT", $this->getPageContent());
729 if (!$this->offlineMode()) {
730 $this->tpl->printToStdout();
732 return $this->tpl->get();
743 $exp = $fac->getExplorer($this->service,
"ilTOC");
744 $exp->handleCommand();
750 return $this->service->getPresentationStatus()->getLMPresentationTitle();
755 $this->renderTabs(
"content", $this->getCurrentPageId());
760 $this->tpl->setTitle($this->getLMPresentationTitle());
769 $rbacsystem = $this->rbacsystem;
770 if ($this->
abstract) {
775 $tpl_menu =
new ilTemplate(
"tpl.lm_sub_menu.html",
true,
true,
"components/ILIAS/LearningModule");
777 $pg_id = $this->getCurrentPageId();
783 if (!$this->offlineMode()) {
784 if ($rbacsystem->
checkAccess(
"write", $this->requested_ref_id)) {
785 $tpl_menu->setCurrentBlock(
"edit_page");
786 $page_id = $this->getCurrentPageId();
787 $tpl_menu->setVariable(
789 ILIAS_HTTP_PATH .
"/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
790 "&obj_id=" . $page_id .
"&to_page=1"
792 $tpl_menu->setVariable(
"EDIT_TXT", $this->
lng->txt(
"edit_page"));
793 $tpl_menu->parseCurrentBlock();
796 $page_id = $this->getCurrentPageId();
799 $this->tpl->setPermanentLink(
"pg",
null, $page_id .
"_" . $this->lm->getRefId());
802 $this->tpl->setVariable(
"SUBMENU", $tpl_menu->get());
807 echo $this->getHeaderAction(
true);
814 $this->tpl->setHeaderActionMenu($this->getHeaderAction());
818 bool $a_redraw =
false
820 if ($this->offline) {
823 $ilAccess = $this->access;
827 $lm_id = $this->lm->getId();
828 $pg_id = $this->getCurrentPageId();
830 $this->
lng->loadLanguageModule(
"content");
835 $this->lm->getType(),
836 $this->lm->getRefId(),
839 $dispatcher->setSubObject(
"pg", $this->getCurrentPageId());
841 $this->
ctrl->setParameter($this,
"embed_mode", (
int) $this->embed_mode);
842 $this->
ctrl->setParameterByClass(
"ilcommentgui",
"embed_mode", (
int) $this->embed_mode);
843 $this->
ctrl->setParameterByClass(
"iltagginggui",
"embed_mode", (
int) $this->embed_mode);
845 $this->
ctrl->getLinkTarget($this,
"redrawHeaderAction",
"",
true),
847 $this->ctrl->getLinkTargetByClass(
848 array(
"ilcommonactiondispatchergui",
"iltagginggui"),
857 $lg = $dispatcher->initHeaderAction();
859 $lg->enableNotes(
true);
860 if (!$this->embed_mode) {
861 $lg->enableComments($this->lm->publicNotes(),
false);
865 if ($this->lm->hasRating() && !$this->offlineMode()) {
868 $this->
lng->txt(
"lm_rating"),
870 array(
"ilcommonactiondispatchergui",
"ilratinggui"),
878 $this->
ctrl->setParameter($this,
"ntf", 1);
880 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_deactivate_lm");
886 $this->
lng->txt(
"cont_notification_activated")
889 $this->
ctrl->setParameter($this,
"ntf", 2);
890 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_activate_lm");
893 $this->
ctrl->setParameter($this,
"ntf", 3);
894 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_deactivate_page");
899 $this->
lng->txt(
"cont_page_notification_activated")
902 $this->
ctrl->setParameter($this,
"ntf", 4);
903 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_activate_page");
908 $this->
lng->txt(
"cont_notification_deactivated")
912 $this->
ctrl->setParameter($this,
"ntf",
"");
915 if (!$this->offline) {
916 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id)) {
917 if ($this->getCurrentPageId() <= 0) {
918 $link = $this->
ctrl->getLinkTargetByClass([
"ilLMEditorGUI",
"ilobjlearningmodulegui"],
"chapters");
920 $link = ILIAS_HTTP_PATH .
"/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
921 "&obj_id=" . $this->getCurrentPageId() .
"&to_page=1";
923 $lg->addCustomCommand($link,
"edit_page");
928 return $lg->getHeaderAction($this->tpl);
931 return $lg->getHeaderAction() .
941 $ilAccess = $this->access;
945 if ($this->offlineMode()) {
954 if (!$this->lm->publicNotes()) {
958 $next_class = $this->
ctrl->getNextClass($this);
960 $pg_id = $this->getCurrentPageId();
965 $notes_gui = $this->notes_gui->getCommentsGUI($this->lm->getId(), $this->getCurrentPageId(),
"pg");
966 $notes_gui->setUseObjectTitleHeader(
false);
968 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id) &&
970 $notes_gui->enablePublicNotesDeletion(
true);
973 $this->
ctrl->setParameter($this,
"frame", $this->requested_frame);
974 $this->
ctrl->setParameter($this,
"obj_id", $this->requested_obj_id);
976 $notes_gui->enablePrivateNotes();
977 if ($this->lm->publicNotes()) {
978 $notes_gui->enablePublicNotes();
981 $callback = array($this,
"observeNoteAction");
982 $notes_gui->addObserver($callback);
984 if ($next_class ==
"ilcommentgui") {
985 $html = $this->
ctrl->forwardCommand($notes_gui);
987 $html = $notes_gui->getListHTML();
995 $ltiview =
$DIC[
"lti"];
996 $ilLocator = $this->locator;
998 if (empty($this->requested_obj_id)) {
999 $a_id = $this->lm_tree->getRootId();
1001 $a_id = $this->requested_obj_id;
1004 if (!$this->lm->cleanFrames()) {
1005 $frame_param = $this->requested_frame;
1007 } elseif (!$this->offlineMode()) {
1012 $frame_target =
"_top";
1015 if (!$this->offlineMode()) {
1016 $ilLocator->addRepositoryItems();
1018 $ilLocator->setOffline(
true);
1021 if ($this->lm_tree->isInTree($a_id)) {
1022 $path = $this->lm_tree->getPathFull($a_id);
1024 foreach (
$path as $key => $row) {
1025 if ($row[
"type"] !=
"pg") {
1026 if ($row[
"child"] != $this->lm_tree->getRootId()) {
1027 $ilLocator->addItem(
1031 $this->lm->isActiveNumbering(),
1032 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1037 $this->linker->getLink(
"layout", $row[
"child"], $frame_param,
"StructureObject"),
1041 $ilLocator->addItem(
1042 $this->getLMPresentationTitle(),
1043 $this->linker->getLink(
"layout", 0, $frame_param),
1045 $this->requested_ref_id
1051 $ilLocator->addItem(
1052 $this->getLMPresentationTitle(),
1053 $this->linker->getLink(
"layout", 0, $this->requested_frame)
1058 $ilLocator->addItem(
1059 $lm_obj->getTitle(),
1060 $this->linker->getLink(
"layout", $a_id, $frame_param),
1065 $this->tpl->setLocator();
1073 return $this->service->getNavigationStatus()->getCurrentPage();
1082 if ($this->offlineMode()) {
1083 $this->content_style_gui->addExportCss(
1087 $this->content_style_gui->addCss(
1089 $this->lm->getRefId()
1104 bool $skip_nav =
false
1106 $this->fill_on_load_code =
true;
1107 $this->setContentStyles();
1109 $tpl =
new ilTemplate(
"tpl.lm_content.html",
true,
true,
"components/ILIAS/LearningModule/Presentation");
1118 $this->requested_obj_id,
1119 $this->requested_back_pg,
1120 $this->requested_frame,
1125 $navigation_renderer->renderTop();
1129 $tpl->
setVariable(
"PAGE_CONTENT", $this->getPageContent());
1130 $tpl->
setVariable(
"RATING", $this->renderRating());
1146 $this->requested_obj_id
1149 return $content_renderer->render();
1156 if ($this->lm->hasRatingPages() && !$this->offlineMode()) {
1158 $rating_gui->setObject($this->lm->getId(),
"lm", $this->getCurrentPageId(),
"lm");
1159 $rating_gui->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1161 $this->
ctrl->setParameter($this,
"pg_id", $this->getCurrentPageId());
1162 $this->tpl->addOnLoadCode(
"il.LearningModule.setRatingUrl('" .
1163 $this->
ctrl->getLinkTarget($this,
"updatePageRating",
"",
true,
false) .
1165 $this->
ctrl->setParameter($this,
"pg_id",
"");
1167 $rating =
'<div id="ilrtrpg" style="text-align:right">' .
1168 $rating_gui->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);") .
1176 $ilUser = $this->user;
1177 $pg_id = $this->service->getRequest()->getPgId();
1178 if (!$this->
ctrl->isAsynch() || !$pg_id) {
1182 $rating = $this->service->getRequest()->getRating();
1203 $rating->setObject($this->lm->getId(),
"lm", $pg_id,
"lm");
1204 $rating->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1206 echo $rating->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);");
1208 echo $this->tpl->getOnLoadCodeForAsynch();
1215 $this->content_style_domain->getEffectiveStyleId()
1217 if (!$this->offlineMode()) {
1219 $this->fill_on_load_code =
true;
1223 $this->fill_on_load_code =
false;
1225 if (!$this->offlineMode()) {
1226 $this->
ctrl->setParameter($this,
"obj_id", $this->getCurrentPageId());
1230 "sourcecodeDownload",
1231 $this->getCurrentPageId()
1233 if (!$this->offlineMode()) {
1234 $this->
ctrl->setParameter($this,
"obj_id", $this->requested_obj_id);
1242 $ilCtrl = $this->ctrl;
1247 $this->setContentStyles();
1249 $term_gui->setPageLinker($this->linker);
1251 $term_gui->setOfflineDirectory($this->getOfflineDirectory());
1252 if (!$this->offlineMode()) {
1253 $ilCtrl->setParameter($this,
"pg_type",
"glo");
1255 $term_gui->output($this->offlineMode(), $this->tpl);
1257 if (!$this->offlineMode()) {
1258 $ilCtrl->setParameter($this,
"pg_type",
"");
1265 $this->setContentStyles();
1267 $this->renderPageTitle();
1269 $this->tpl->setCurrentBlock(
"ilMedia");
1271 $link_xml = $this->linker->getLinkXML($med_links);
1274 if (!empty($this->requested_pg_id)) {
1275 $pg_obj = $this->getLMPage($this->requested_pg_id, $this->requested_pg_type);
1276 $pg_obj->buildDom();
1281 $xml .= $pg_obj->getMediaAliasElement($this->requested_mob_id);
1292 if (!$this->offlineMode()) {
1298 $mode = ($this->requested_cmd ==
"fullscreen")
1301 $enlarge_path =
ilUtil::getImagePath(
"media/enlarge.svg",
false,
"output", $this->offlineMode());
1303 $this->linker->getLink(
"fullscreen");
1304 $params = array(
'mode' => $mode,
1305 'enlarge_path' => $enlarge_path,
1306 'link_params' =>
"ref_id=" . $this->lm->getRefId(),
1307 'fullscreen_link' => $fullscreen_link,
1309 'ref_id' => $this->lm->getRefId(),
1310 'pg_frame' => $pg_frame,
1311 'webspace_path' => $wb_path
1313 $output = $this->xsl->process($xml,
$params);
1316 $this->tpl->setVariable(
"MEDIA_CONTENT", $output);
1323 string $a_inline =
"",
1324 string $a_file =
"",
1325 string $a_location =
""
1327 if ($a_inline !=
"") {
1328 $js_tpl =
new ilTemplate($a_inline,
true,
false, $a_location);
1329 $js = $js_tpl->get();
1330 $this->tpl->setVariable(
"INLINE_JS", $js);
1341 $this->
ctrl->redirectByClass(ilInfoScreenGUI::class,
"showSummary");
1349 $this->outputInfoScreen();
1353 string $a_active_tab =
"info"
1355 $ilAccess = $this->
access;
1356 $ilLocator = $this->locator;
1358 $this->renderPageTitle();
1360 $this->tpl->loadStandardTemplate();
1361 $this->tpl->setTitle($this->getLMPresentationTitle());
1364 $this->renderTabs($a_active_tab, 0);
1367 if ($ilAccess->checkAccess(
"read",
"", $this->requested_ref_id)) {
1370 $ilLocator->addRepositoryItems();
1371 $this->tpl->setLocator();
1380 $ilAccess = $this->access;
1382 if (!$this->lm->isInfoEnabled()) {
1386 $this->initScreenHead();
1388 $this->
lng->loadLanguageModule(
"meta");
1391 $info->enablePrivateNotes();
1393 $info->enableNews();
1394 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id)) {
1396 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1398 $info->enableNewsEditing();
1400 if ($enable_internal_rss) {
1401 $info->setBlockProperty(
"news",
"settings",
true);
1406 $info->addMetaDataSections($this->lm->getId(), 0, $this->lm->getType());
1408 $this->
lng->loadLanguageModule(
"copg");
1409 $est_reading_time = $this->reading_time_manager->getReadingTime($this->lm->getId());
1410 if (!is_null($est_reading_time)) {
1412 $this->
lng->txt(
"copg_est_reading_time"),
1413 sprintf($this->
lng->txt(
"copg_x_minutes"), $est_reading_time)
1417 if ($this->offlineMode()) {
1418 $this->tpl->setContent(
$info->getHTML());
1419 return $this->tpl->get();
1424 $this->tpl->printToStdout();
1434 $ilUser = $this->user;
1437 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1444 $tpl =
new ilTemplate(
"tpl.lm_print_selection.html",
true,
true,
"components/ILIAS/LearningModule");
1446 $this->
ctrl->setParameterByClass(
"illmpresentationgui",
"obj_id", $this->requested_obj_id);
1449 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1450 $nodes = $this->filterNonAccessibleNode($nodes);
1452 $this->initPrintViewSelectionForm();
1454 foreach ($nodes as $node) {
1462 $this->lm->getType(),
1463 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1466 if ($node[
"type"] ==
"pg" &&
1475 switch ($node[
"type"]) {
1481 $this->lm->getPageHeader(),
1482 $this->lm->isActiveNumbering(),
1483 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1490 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"pg");
1495 $text = $this->getLMPresentationTitle();
1497 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"obj_lm");
1506 $this->lm->isActiveNumbering(),
1507 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1513 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"st");
1518 $this->lm->getRefId(),
1522 $text .=
" (" . $this->
lng->txt(
"cont_no_access") .
")";
1525 $this->nl->addListNode(
1537 if ($this->requested_obj_id > 0 && !$this->lm_tree->isInTree($this->requested_obj_id)) {
1540 $this->requested_obj_id,
1541 $this->lm->getPageHeader(),
1542 $this->lm->isActiveNumbering(),
1543 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1550 $id = $this->requested_obj_id;
1554 $this->nl->addListNode(
1565 $f = $this->
form->getHTMLAsync();
1569 $modal = $this->
ui->factory()->modal()->roundtrip(
1570 $this->
lng->txt(
"cont_print_view"),
1571 $this->ui->factory()->legacy()->content($tpl->
get())
1573 echo $this->
ui->renderer()->render($modal);
1580 $tracker = $this->getTracker();
1583 if (!$this->offlineMode()) {
1584 if ($this->lm->getRestrictForwardNavigation()) {
1585 $nodes = array_filter($nodes,
function ($node) use ($tracker) {
1596 $ilCtrl = $this->ctrl;
1599 $this->
form->setForceTopButtons(
true);
1603 $radg->setValue(
"page");
1605 $radg->addOption($op1);
1607 $radg->addOption($op2);
1609 $radg->addOption($op3);
1613 $op3->addSubItem($nl);
1615 $this->
form->addItem($radg);
1617 $this->
form->addCommandButton(
"showPrintView", $lng->
txt(
"cont_show_print_view"));
1618 $this->
form->setOpenTag(
false);
1619 $this->
form->setCloseTag(
false);
1621 $this->
form->setTitle(
" ");
1622 $this->
form->setFormAction($ilCtrl->getFormAction($this));
1627 $ilUser = $this->user;
1629 $ilCtrl = $this->ctrl;
1630 $tabs = $this->tabs;
1631 $header_page_content =
"";
1632 $footer_page_content =
"";
1633 $chapter_title =
"";
1634 $did_chap_page_header =
false;
1636 $lom_paths = $this->lom_services->paths();
1637 $lom_data_helper = $this->lom_services->dataHelper();
1638 $lom_cp_helper = $this->lom_services->copyrightHelper();
1639 $lom_reader = $this->lom_services->read($this->lm->getId(), 0, $this->lm->getType());
1641 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1645 $this->renderPageTitle();
1649 $ilCtrl->getLinkTarget($this,
"layout")
1652 $c_obj_id = $this->getCurrentPageId();
1654 $sel_type = $this->service->getRequest()->getSelectedType();
1655 $sel_obj_ids = $this->service->getRequest()->getSelectedObjIds();
1656 if ($sel_type ==
"page") {
1657 if (!in_array($c_obj_id, $sel_obj_ids)) {
1658 $sel_obj_ids[] = $c_obj_id;
1661 if ($sel_type ==
"chapter" && $c_obj_id > 0) {
1662 $path = $this->lm_tree->getPathFull($c_obj_id);
1663 $chap_id =
$path[1][
"child"];
1665 $sel_obj_ids[] = $chap_id;
1669 $this->setContentStyles();
1672 $tpl =
new ilTemplate(
"tpl.lm_print_view.html",
true,
true,
"components/ILIAS/LearningModule");
1675 $this->tpl->setTitle($this->getLMPresentationTitle());
1677 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1682 $glossary_links = array();
1683 $output_header =
false;
1684 $media_links = array();
1685 $last_page_title =
"";
1688 if ($this->lm->getFooterPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1690 $page_object_gui = $this->getLMPageGUI($this->lm->getFooterPage());
1691 $page_object_gui->setStyleId(
1692 $this->content_style_domain->getEffectiveStyleId()
1696 $page_object_gui->setLinkFrame($this->requested_frame);
1697 $page_object_gui->setOutputMode(
"print");
1698 $page_object_gui->setPresentationTitle(
"");
1699 $page_object_gui->setFileDownloadLink(
"#");
1700 $page_object_gui->setFullscreenLink(
"#");
1701 $page_object_gui->setSourcecodeDownloadScript(
"#");
1702 $footer_page_content = $page_object_gui->showPage();
1705 if ($this->lm->getHeaderPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1707 $page_object_gui = $this->getLMPageGUI($this->lm->getHeaderPage());
1708 $page_object_gui->setStyleId(
1709 $this->content_style_domain->getEffectiveStyleId()
1713 $page_object_gui->setLinkFrame($this->requested_frame);
1714 $page_object_gui->setOutputMode(
"print");
1715 $page_object_gui->setPresentationTitle(
"");
1716 $page_object_gui->setFileDownloadLink(
"#");
1717 $page_object_gui->setFullscreenLink(
"#");
1718 $page_object_gui->setSourcecodeDownloadScript(
"#");
1719 $header_page_content = $page_object_gui->showPage();
1724 if (count($sel_obj_ids) > 0) {
1725 foreach ($sel_obj_ids as $k) {
1726 if ($k > 0 && !$this->lm_tree->isInTree($k)) {
1728 $nodes[] = array(
"obj_id" => $k,
"type" =>
"pg",
"free" =>
true);
1733 $this->tpl->setOnScreenMessage(
'failure',
$lng->txt(
"cont_print_no_page_selected"),
true);
1734 $ilCtrl->redirect($this,
"showPrintViewSelection");
1737 foreach ($nodes as $node_key => $node) {
1741 $this->lm->getType(),
1742 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1744 if ($node[
"type"] ==
"pg" && !$active) {
1750 if (($node[
"depth"] ?? 0) <= $act_level) {
1751 if (in_array($node[
"obj_id"], $sel_obj_ids)) {
1752 $act_level = $node[
"depth"] ?? 0;
1759 if ($this->lm->getRestrictForwardNavigation()) {
1760 if ($this->getTracker()->hasPredIncorrectAnswers($node[
"obj_id"])) {
1766 $this->lm->getRefId(),
1771 if ($node[
"type"] ==
"du") {
1772 $output_header =
true;
1776 if ($node[
"type"] ==
"st") {
1781 $chapter_title = $chap->_getPresentationTitle(
1784 $this->lm->isActiveNumbering(),
1785 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1796 if ($nodes[$node_key + 1][
"type"] ==
"pg") {
1799 $header_page_content
1801 $did_chap_page_header =
true;
1811 if ($node[
"type"] ===
"pg") {
1816 $page_id = $node[
"obj_id"];
1817 $page_object_gui = $this->getLMPageGUI($page_id);
1818 $page_object = $page_object_gui->getPageObject();
1819 $page_object_gui->setStyleId(
1820 $this->content_style_domain->getEffectiveStyleId()
1825 $lm_pg_obj->setLMId($this->lm->getId());
1828 $page_object_gui->setLinkFrame($this->requested_frame);
1829 $page_object_gui->setOutputMode(
"print");
1830 $page_object_gui->setPresentationTitle(
"");
1835 $lm_pg_obj->getId(),
1836 $this->lm->getPageHeader(),
1837 $this->lm->isActiveNumbering(),
1838 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1846 $page_title = trim(substr($page_title, 0, strrpos($page_title,
" ")));
1851 if ($this->lm->isActiveNumbering()) {
1852 $chapter_title = trim(substr(
1854 strpos($chapter_title,
" ")
1858 if ($page_title != $chapter_title && $page_title !== $last_page_title) {
1859 $page_object_gui->setPresentationTitle($page_title);
1861 $last_page_title = $page_title;
1865 $hcont = $header_page_content;
1866 $fcont = $footer_page_content;
1869 if ($did_chap_page_header) {
1872 if (($nodes[$node_key + 1][
"type"] ??
"") ==
"pg" &&
1873 !($nodes[$node_key + 1][
"depth"] <= $act_level
1874 && !in_array($nodes[$node_key + 1][
"obj_id"], $sel_obj_ids))) {
1879 $page_object_gui->setFileDownloadLink(
"#");
1880 $page_object_gui->setFullscreenLink(
"#");
1881 $page_object_gui->setSourcecodeDownloadScript(
"#");
1882 $page_content = $page_object_gui->showPage();
1886 $hcont . $page_content . $fcont
1891 $hcont . $page_content . $fcont .
"<br />"
1894 $chapter_title =
"";
1904 foreach ($int_links as $key => $link) {
1905 if ($link[
"type"] ==
"git" &&
1906 ($link[
"inst"] ==
IL_INST_ID || $link[
"inst"] == 0)) {
1907 $glossary_links[$key] = $link;
1909 if ($link[
"type"] ==
"mob" &&
1910 ($link[
"inst"] ==
IL_INST_ID || $link[
"inst"] == 0)) {
1912 $mob_links[$key] = $link;
1922 $page_object->buildDom();
1923 $links = $page_object->getInternalLinks();
1924 $tf = $link[
"TargetFrame"] ??
"";
1925 foreach ($links as $link) {
1926 if ($link[
"Type"] ===
"MediaObject"
1928 && $tf !==
"None") {
1929 $media_links[] = $link;
1941 if (count($glossary_links) > 0 && !$this->lm->isActivePreventGlossaryAppendix()) {
1945 foreach ($glossary_links as $key => $link) {
1947 $terms[$term .
":" . $key] = array(
"key" => $key,
"link" => $link,
"term" => $term);
1952 foreach ($terms as $t) {
1959 $page_gui->setTemplateOutput(
false);
1960 $page_gui->setOutputMode(
"print");
1963 $page_gui->setFileDownloadLink(
"#");
1964 $page_gui->setFullscreenLink(
"#");
1965 $page_gui->setSourcecodeDownloadScript(
"#");
1966 $output = $page_gui->showPage();
1977 }
catch (Exception
$e) {
1985 $annex_title = $this->
lng->txt(
"cont_annex") .
" " .
1986 chr(64 + $annex_cnt) .
": " . $this->
lng->txt(
"glo");
1990 $annexes[] = $annex_title;
1994 if (count($media_links) > 0) {
1995 foreach ($media_links as $media) {
1996 if (substr($media[
"Target"], 0, 4) ==
"il__") {
1997 $arr = explode(
"_", $media[
"Target"]);
1998 $id = $arr[count($arr) - 1];
2001 $med_item = $med_obj->getMediaItem(
"Standard");
2002 if (is_object($med_item)) {
2003 if (is_int(strpos($med_item->getFormat(),
"image"))) {
2007 if ($med_item->getLocationType() ==
"LocalFile") {
2011 "/" . $med_item->getLocation()
2016 $med_item->getLocation()
2020 if ($med_item->getCaption() !=
"") {
2021 $tpl->
setVariable(
"IMG_TITLE", $med_item->getCaption());
2023 $tpl->
setVariable(
"IMG_TITLE", $med_obj->getTitle());
2034 $annex_title = $this->
lng->txt(
"cont_annex") .
" " .
2035 chr(64 + $annex_cnt) .
": " . $this->
lng->txt(
"cont_ref_images");
2036 $tpl->
setVariable(
"TXT_REF_IMAGES", $annex_title);
2039 $annexes[] = $annex_title;
2043 if ($output_header) {
2045 $tpl->
setVariable(
"LM_TITLE", $this->getLMPresentationTitle());
2046 if ($this->lm->getDescription() !=
"none") {
2049 $lom_reader->firstData($lom_paths->firstDescription())->value()
2056 foreach ($nodes2 as $node2) {
2057 if ($node2[
"type"] ==
"st"
2059 $this->lm->getRefId(),
2063 for ($j = 1; $j < $node2[
"depth"]; $j++) {
2074 $this->lm->isActiveNumbering(),
2075 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
2086 foreach ($annexes as $annex) {
2104 $authors = $lom_data_helper->makePresentableAsList(
2106 ...$lom_reader->allData($lom_paths->authors())
2108 if ($authors !=
"") {
2109 $this->
lng->loadLanguageModule(
"meta");
2117 if ($lom_cp_helper->hasPresetCopyright($lom_reader)) {
2118 $copyright = $this->
ui->renderer()->render(
2119 $lom_cp_helper->readPresetCopyright($lom_reader)->presentAsUIComponents()
2122 $copyright = $lom_cp_helper->readCustomCopyright($lom_reader);
2124 if ($copyright !=
"") {
2125 $this->
lng->loadLanguageModule(
"meta");
2127 $tpl->
setVariable(
"TXT_COPYRIGHT", $this->
lng->txt(
"meta_copyright"));
2131 $this->tpl->setContent($tpl->
get());
2132 $this->tpl->addOnLoadCode(
"il.Util.print();");
2133 $this->tpl->printToStdout();
2141 $page_gui = $this->getLMPageGUI($this->getCurrentPageId());
2142 $page_gui->downloadFile();
2154 int $a_return_ref_id
2156 return "ilias.php?baseClass=ilLMPresentationGUI&ref_id=" . $a_ref_id .
"&obj_id=" . $a_obj_id .
"&focus_id=" .
2157 $a_obj_id .
"&focus_return=" . $a_return_ref_id;
2164 $this->setContentStyles();
2166 $tpl =
new ilTemplate(
"tpl.page_message_screen.html",
true,
true,
"components/ILIAS/LearningModule");
2167 $tpl->
setVariable(
"TXT_PAGE_NO_PUBLIC_ACCESS", $a_content);
2169 $this->tpl->setVariable(
"PAGE_CONTENT", $tpl->
get());
2177 $this->showMessageScreen($this->
lng->txt(
"msg_page_no_public_access"));
2185 $this->showMessageScreen($this->
lng->txt(
"msg_no_page_access"));
2194 $this->showMessageScreen($this->
lng->txt(
"cont_no_page_access_unansw_q"));
2199 if (!$this->offlineMode()) {
2200 return $this->
ctrl->getLinkTarget($this,
"");
2208 return $this->offline_directory;
2221 $directory = $this->getOfflineDirectory() .
"/codefiles/" . $page_id .
"/" . $paragraph_id;
2223 $file = $directory .
"/" . $title;
2224 if (!($fp = fopen($file,
"w+"))) {
2225 die(
"<strong>Error</strong>: Could not open \"" . $file .
"\" for writing" .
2226 " in <strong>" . __FILE__ .
"</strong> on line <strong>" . __LINE__ .
"</strong><br />");
2236 $this->tpl->setHeaderPageTitle($this->getLMPresentationTitle());
2241 $concrete_lang = $this->service->getPresentationStatus()->getConcreteLang();
2243 return new ilLMPageGUI($a_id, 0,
false, $this->lang, $concrete_lang);
2246 return new ilLMPageGUI($a_id, 0,
false, $this->ot->getDefaultLanguage(), $concrete_lang);
2248 return new ilLMPageGUI($a_id, 0,
false,
"", $concrete_lang);
2255 $type = ($a_type ==
"mep")
2259 $lang = $this->lang;
2263 $lang = $this->ot->getDefaultLanguage();
2271 return new ilLMPage($a_id, 0, $lang);
2280 $exp = $this->ilTOC();
2282 echo $exp->getHTML() .
2283 "<script>" . $exp->getOnLoadCode() .
"</script>";
2298 $note = $this->notes->getById($a_note_id);
2299 $text = $note->getText();
2309 $notification->send();
2315 int $current_page_id
2318 $menu_editor->
setObjId($this->lm->getId());
2326 $this->getExportFormat(),
2327 $this->export_all_languages,
2329 $this->offlineMode(),
2337 function ($additional_content) {
2338 $this->additional_content[] = $additional_content;
2341 $navigation_renderer->
render();
2349 $this->addResourceFiles();
2350 switch ($pars[
"cmd"]) {
2352 $tpl =
new ilTemplate(
"tpl.embedded_view.html",
true,
true,
"components/ILIAS/LearningModule");
2353 $tpl->
setVariable(
"HEAD_ACTION", $this->getHeaderAction());
2354 $tpl->
setVariable(
"PAGE_RATING", $this->renderRating());
2356 $tpl->
setVariable(
"COMMENTS", $this->ilLMNotes());
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Class handles translation mode for an object.
static addCss()
Add required css.
static addJavaScript(?ilGlobalTemplate $main_tpl=null)
Add javascript files that are necessary to run accordion.
static sortArray(array $array, string $a_array_sortby_key, string $a_array_sortorder="asc", bool $a_numeric=false, bool $a_keep_keys=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilCommonActionDispatcherGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilCtrl provides processing control methods.
static makeDirParents(string $a_dir)
Create a new directory and all parent directories.
static getWebspaceDir(string $mode="filesystem")
get webspace directory
special template class to simplify handling of ITX/PEAR
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...
static _lookGlossaryTerm(int $term_id)
get glossary term
static _getTargetsOfSource(string $a_source_type, int $a_source_id, string $a_source_lang="-")
Get all targets of a source object (e.g., a page)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getInstance(ilObjLearningModule $a_content_obj, int $a_id=0, bool $a_halt=true)
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)
Extension of ilPageObjectGUI for learning modules.
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...
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 ilLMPresentationGUI GUI class for learning module presentation.
layout(string $a_xml="main.xml", bool $doShow=true)
ilObjLearningModuleGUI $lm_gui
ilJavaScript(string $a_inline="", string $a_file="", string $a_location="")
getUnsafeGetCommands()
This method must return a list of unsafe GET commands.
initByRequest(?array $query_params=null, bool $embed_mode=false)
Init services and this class by request params.
offlineMode()
checks whether offline content generation is activated
getLMPage(int $a_id, string $a_type="")
ilLMNotes()
output notes of page
ILIAS Style Content Service $cs
ILIAS LearningModule ReadingTime ReadingTimeManager $reading_time_manager
getCurrentPageId()
Get the current page id.
filterNonAccessibleNode(array $nodes)
initPrintViewSelectionForm()
renderTabs(string $active_tab, int $current_page_id)
string $requested_focus_return
ilGlobalTemplateInterface $tpl
ilLMPresentationService $service
getContent(bool $skip_nav=false)
int $requested_notification_switch
showMessageScreen(string $a_content)
nop()
this dummy function is needed for offline package creation
downloadFile()
download file of file lists
ILIAS COPage Dom DomUtil $dom_util
ILIAS Style Content Object ObjectFacade $content_style_domain
getSourcecodeDownloadLink()
getSafePostCommands()
This method must return a list of safe POST commands.
string $requested_search_string
ilLMPresentationLinker $linker
getHeaderAction(bool $a_redraw=false)
showNavRestrictionDueToQuestions()
Show message if navigation to page is not allowed due to unanswered questions.
showInfoScreen()
info screen call from inside learning module
getCurrentFrameSet()
get frames of current frame set
attrib2arr(?DOMNamedNodeMap $a_attributes)
showPrintViewSelection()
show selection screen for print view
ILIAS GlobalScreen Services $global_screen
bool $export_all_languages
ilLMSubMenu()
output learning module submenu
setContentStyles()
Set content style.
initScreenHead(string $a_active_tab="info")
setSystemStyle()
Set system style.
LOMServices $lom_services
string $requested_pg_type
array $additional_content
basicPageGuiInit(\ilPageObjectGUI $a_page_gui)
outputInfoScreen()
info screen
ILIAS Notes GUIService $notes_gui
string $requested_back_pg
handleCodeParagraph(int $page_id, int $paragraph_id, string $title, string $text)
store paragraph into file directory files/codefile_$pg_id_$paragraph_id/downloadtitle
determineLayout()
Determine layout.
ILIAS COPage Xsl XslManager $xsl
infoScreen()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
ILIAS Style Content GUIService $content_style_gui
getHTML(array $pars)
Get HTML (called by kiosk mode through ilCtrl)
ilNavigationHistory $nav_history
string $requested_obj_type
getFocusLink(int $a_ref_id, int $a_obj_id, int $a_return_ref_id)
Get focused link (used in learning objectives courses)
bool $chapter_has_no_active_page
refreshToc()
Refresh toc (called if questions have been answered correctly)
showNoPageAccess()
Show info message, if page is not accessible in public area.
string $offline_directory
ILIAS Notes DomainService $notes
injectTemplate(ilGlobalTemplateInterface $tpl)
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 ...
showNoPublicAccess()
Show info message, if page is not accessible in public area.
__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)
Learning module presentation linker.
Main service init and factory.
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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
hasPredIncorrectAnswers(int $a_obj_id, bool $a_ignore_unlock=false)
Has predecessing incorrect answers.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
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...
Last visited history for repository items.
static hasOptOut(int $obj_id)
Is opt out (disable notification) allowed?
static setNotification(int $type, int $user_id, int $id, bool $status=true)
Set notification status for object and user.
static hasNotification(int $type, int $user_id, int $id)
Check notification status for object and user.
static _checkPreconditionsOfPage(int $cont_ref_id, int $cont_obj_id, int $page_id)
checks whether the preconditions of a page are fulfilled or not
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...
static getContentPrintStyle()
static getSyntaxStylePath()
static prepareJsLinks(string $redraw_url, string $notes_url, string $tags_url, ?ilGlobalTemplateInterface $tpl=null)
Insert js/ajax links into template.
setStyleId(int $a_styleid)
setOutputMode(string $a_mode=self::PRESENTATION)
setOfflineDirectory(string $offdir)
setSourcecodeDownloadScript(string $script_name)
setFullscreenLink(string $a_fullscreen_link)
setFileDownloadLink(string $a_download_link)
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.
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
This class represents an option in a radio group.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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.
class ilRbacSystem system function like checkAccess, addActiveRole ... Supporting system functions ar...
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 ...
Session based immediate storage.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
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)
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="")
special template class to simplify handling of ITX/PEAR
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
static getStyleSheetLocation(string $mode="output", string $a_css_name="")
get full style sheet file name (path inclusive) of current user
static initjQuery(?ilGlobalTemplateInterface $a_tpl=null)
inits and adds the jQuery JS-File to the global or a passed template
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
printToString()
Use this method to get the finally rendered page as string.
setVariable(string $variable, $value='')
Sets the given variable to the given value.
parseCurrentBlock(string $block_name=self::DEFAULT_BLOCK)
Parses the given block.
setCurrentBlock(string $part=self::DEFAULT_BLOCK)
Sets the template to the given block.
getOnLoadCodeForAsynch()
Get js onload code for ajax calls.
get(string $part=self::DEFAULT_BLOCK)
Renders the given block and returns the html string.
printToStdout(string $part=self::DEFAULT_BLOCK, bool $has_tabs=true, bool $skip_main_menu=false)
Interface ilAccessHandler This interface combines all available interfaces which can be called via gl...
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...
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
getService(string &$path)
form(?array $class_path, string $cmd, string $submit_caption="")
if(!file_exists('../ilias.ini.php'))