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);
552 foreach ($node->childNodes as $child) {
553 $child_attr = $this->attrib2arr($child->attributes);
555 switch ($child->nodeName) {
557 $this->renderPageTitle();
559 $this->addHeaderAction();
562 $content .= $this->ilLMNotes();
563 $additional = $this->
ui->renderer()->render($this->additional_content);
564 $this->tpl->setContent($content . $additional);
571 case "ilLMNavigation":
586 $child_attr[
"inline"],
588 $child_attr[
"location"]
602 $this->ilLMSubMenu();
611 $this->addResourceFiles();
627 if (!$this->offlineMode()) {
631 $this->tpl->addJavaScript(
"assets/js/LearningModule.js");
634 if ($this->requested_frame ==
"") {
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');");
641 $this->tpl->addOnLoadCode(
"il.LearningModule.setSaveUrl('" .
642 $this->
ctrl->getLinkTarget($this,
"saveFrameUrl",
"",
false,
false) .
"');
643 il.LearningModule.openInitFrames();
646 $this->tpl->addOnLoadCode(
"il.LearningModule.setTocRefreshUrl('" .
647 $this->
ctrl->getLinkTarget($this,
"refreshToc",
"",
false,
false) .
"');
660 $store->set(
"cf_" . $this->lm->getId(), $this->requested_url);
665 return $this->media();
670 $this->tpl =
new ilGlobalTemplate(
"tpl.fullscreen.html",
true,
true,
"components/ILIAS/LearningModule");
673 $this->setContentStyles();
674 $this->setSystemStyle();
677 if (!$this->offlineMode()) {
678 $this->tpl->printToStdout();
680 return $this->tpl->printToString();
687 $this->tpl =
new ilGlobalTemplate(
"tpl.glossary_term_output.html",
true,
true,
"components/ILIAS/LearningModule");
688 $this->renderPageTitle();
696 $this->setContentStyles();
697 $this->setSystemStyle();
701 $js = $this->global_screen->layout()->meta()->getJs();
702 foreach ($js->getItemsInOrderOfDelivery() as $item) {
703 $this->tpl->addJavaScript($item->getContent());
706 if (!$this->offlineMode()) {
707 $this->tpl->printToStdout();
709 return $this->tpl->printToString();
717 $ilUser = $this->user;
718 $this->tpl =
new ilGlobalTemplate(
"tpl.page_fullscreen.html",
true,
true,
"components/ILIAS/LearningModule");
720 $this->renderPageTitle();
722 $this->setContentStyles();
725 if (!$this->offlineMode()) {
728 $style_name = $ilUser->getPref(
"style") .
".css";
729 $this->tpl->setVariable(
"LOCATION_STYLESHEET",
"./style/" . $style_name);
732 $this->tpl->setVariable(
"PAGE_CONTENT", $this->getPageContent());
733 if (!$this->offlineMode()) {
734 $this->tpl->printToStdout();
736 return $this->tpl->get();
747 $exp = $fac->getExplorer($this->service,
"ilTOC");
748 $exp->handleCommand();
754 return $this->service->getPresentationStatus()->getLMPresentationTitle();
759 $this->renderTabs(
"content", $this->getCurrentPageId());
764 $this->tpl->setTitle($this->getLMPresentationTitle());
773 $rbacsystem = $this->rbacsystem;
774 if ($this->
abstract) {
779 $tpl_menu =
new ilTemplate(
"tpl.lm_sub_menu.html",
true,
true,
"components/ILIAS/LearningModule");
781 $pg_id = $this->getCurrentPageId();
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(
793 ILIAS_HTTP_PATH .
"/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
794 "&obj_id=" . $page_id .
"&to_page=1"
796 $tpl_menu->setVariable(
"EDIT_TXT", $this->
lng->txt(
"edit_page"));
797 $tpl_menu->parseCurrentBlock();
800 $page_id = $this->getCurrentPageId();
803 $this->tpl->setPermanentLink(
"pg",
null, $page_id .
"_" . $this->lm->getRefId());
806 $this->tpl->setVariable(
"SUBMENU", $tpl_menu->get());
811 echo $this->getHeaderAction(
true);
818 $this->tpl->setHeaderActionMenu($this->getHeaderAction());
822 bool $a_redraw =
false
824 if ($this->offline) {
827 $ilAccess = $this->access;
831 $lm_id = $this->lm->getId();
832 $pg_id = $this->getCurrentPageId();
834 $this->
lng->loadLanguageModule(
"content");
839 $this->lm->getType(),
840 $this->lm->getRefId(),
843 $dispatcher->setSubObject(
"pg", $this->getCurrentPageId());
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),
851 $this->ctrl->getLinkTargetByClass(
852 array(
"ilcommonactiondispatchergui",
"iltagginggui"),
861 $lg = $dispatcher->initHeaderAction();
863 $lg->enableNotes(
true);
864 if (!$this->embed_mode) {
865 $lg->enableComments($this->lm->publicNotes(),
false);
869 if ($this->lm->hasRating() && !$this->offlineMode()) {
872 $this->
lng->txt(
"lm_rating"),
874 array(
"ilcommonactiondispatchergui",
"ilratinggui"),
882 $this->
ctrl->setParameter($this,
"ntf", 1);
884 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_deactivate_lm");
890 $this->
lng->txt(
"cont_notification_activated")
893 $this->
ctrl->setParameter($this,
"ntf", 2);
894 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_activate_lm");
897 $this->
ctrl->setParameter($this,
"ntf", 3);
898 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_deactivate_page");
903 $this->
lng->txt(
"cont_page_notification_activated")
906 $this->
ctrl->setParameter($this,
"ntf", 4);
907 $lg->addCustomCommand($this->
ctrl->getLinkTarget($this),
"cont_notification_activate_page");
912 $this->
lng->txt(
"cont_notification_deactivated")
916 $this->
ctrl->setParameter($this,
"ntf",
"");
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");
924 $link = ILIAS_HTTP_PATH .
"/ilias.php?baseClass=ilLMEditorGUI&ref_id=" . $this->requested_ref_id .
925 "&obj_id=" . $this->getCurrentPageId() .
"&to_page=1";
927 $lg->addCustomCommand($link,
"edit_page");
932 return $lg->getHeaderAction($this->tpl);
935 return $lg->getHeaderAction() .
945 $ilAccess = $this->access;
949 if ($this->offlineMode()) {
958 if (!$this->lm->publicNotes()) {
962 $next_class = $this->
ctrl->getNextClass($this);
964 $pg_id = $this->getCurrentPageId();
969 $notes_gui = $this->notes_gui->getCommentsGUI($this->lm->getId(), $this->getCurrentPageId(),
"pg");
970 $notes_gui->setUseObjectTitleHeader(
false);
972 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id) &&
974 $notes_gui->enablePublicNotesDeletion(
true);
977 $this->
ctrl->setParameter($this,
"frame", $this->requested_frame);
978 $this->
ctrl->setParameter($this,
"obj_id", $this->requested_obj_id);
980 $notes_gui->enablePrivateNotes();
981 if ($this->lm->publicNotes()) {
982 $notes_gui->enablePublicNotes();
985 $callback = array($this,
"observeNoteAction");
986 $notes_gui->addObserver($callback);
988 if ($next_class ==
"ilcommentgui") {
989 $html = $this->
ctrl->forwardCommand($notes_gui);
991 $html = $notes_gui->getListHTML();
999 $ltiview =
$DIC[
"lti"];
1000 $ilLocator = $this->locator;
1002 if (empty($this->requested_obj_id)) {
1003 $a_id = $this->lm_tree->getRootId();
1005 $a_id = $this->requested_obj_id;
1008 if (!$this->lm->cleanFrames()) {
1009 $frame_param = $this->requested_frame;
1011 } elseif (!$this->offlineMode()) {
1016 $frame_target =
"_top";
1019 if (!$this->offlineMode()) {
1021 if ($ltiview->isActive()) {
1024 $ilLocator->addRepositoryItems();
1027 $ilLocator->setOffline(
true);
1030 if ($this->lm_tree->isInTree($a_id)) {
1031 $path = $this->lm_tree->getPathFull($a_id);
1033 foreach (
$path as $key => $row) {
1034 if ($row[
"type"] !=
"pg") {
1035 if ($row[
"child"] != $this->lm_tree->getRootId()) {
1036 $ilLocator->addItem(
1041 $this->lm->isActiveNumbering(),
1042 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1050 $this->linker->getLink(
"layout", $row[
"child"], $frame_param,
"StructureObject"),
1054 $ilLocator->addItem(
1056 $this->linker->getLink(
"layout", 0, $frame_param),
1058 $this->requested_ref_id
1064 $ilLocator->addItem(
1065 $this->getLMPresentationTitle(),
1066 $this->linker->getLink(
"layout", 0, $this->requested_frame)
1071 $ilLocator->addItem(
1072 $lm_obj->getTitle(),
1073 $this->linker->getLink(
"layout", $a_id, $frame_param),
1078 $this->tpl->setLocator();
1086 return $this->service->getNavigationStatus()->getCurrentPage();
1095 $this->content_style_gui->addCss(
1097 $this->lm->getRefId()
1111 bool $skip_nav =
false
1113 $this->fill_on_load_code =
true;
1114 $this->setContentStyles();
1116 $tpl =
new ilTemplate(
"tpl.lm_content.html",
true,
true,
"components/ILIAS/LearningModule/Presentation");
1125 $this->requested_obj_id,
1126 $this->requested_back_pg,
1127 $this->requested_frame,
1132 $navigation_renderer->renderTop();
1136 $tpl->
setVariable(
"PAGE_CONTENT", $this->getPageContent());
1137 $tpl->
setVariable(
"RATING", $this->renderRating());
1153 $this->requested_obj_id
1156 return $content_renderer->render();
1163 if ($this->lm->hasRatingPages() && !$this->offlineMode()) {
1165 $rating_gui->setObject($this->lm->getId(),
"lm", $this->getCurrentPageId(),
"lm");
1166 $rating_gui->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1168 $this->
ctrl->setParameter($this,
"pg_id", $this->getCurrentPageId());
1169 $this->tpl->addOnLoadCode(
"il.LearningModule.setRatingUrl('" .
1170 $this->
ctrl->getLinkTarget($this,
"updatePageRating",
"",
true,
false) .
1172 $this->
ctrl->setParameter($this,
"pg_id",
"");
1174 $rating =
'<div id="ilrtrpg" style="text-align:right">' .
1175 $rating_gui->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);") .
1183 $ilUser = $this->user;
1184 $pg_id = $this->service->getRequest()->getPgId();
1185 if (!$this->
ctrl->isAsynch() || !$pg_id) {
1189 $rating = $this->service->getRequest()->getRating();
1210 $rating->setObject($this->lm->getId(),
"lm", $pg_id,
"lm");
1211 $rating->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1213 echo $rating->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);");
1215 echo $this->tpl->getOnLoadCodeForAsynch();
1222 $this->content_style_domain->getEffectiveStyleId()
1224 if (!$this->offlineMode()) {
1226 $this->fill_on_load_code =
true;
1230 $this->fill_on_load_code =
false;
1232 if (!$this->offlineMode()) {
1233 $this->
ctrl->setParameter($this,
"obj_id", $this->getCurrentPageId());
1237 "sourcecodeDownload",
1238 $this->getCurrentPageId()
1240 if (!$this->offlineMode()) {
1241 $this->
ctrl->setParameter($this,
"obj_id", $this->requested_obj_id);
1249 $ilCtrl = $this->ctrl;
1254 $this->setContentStyles();
1256 $term_gui->setPageLinker($this->linker);
1258 $term_gui->setOfflineDirectory($this->getOfflineDirectory());
1259 if (!$this->offlineMode()) {
1260 $ilCtrl->setParameter($this,
"pg_type",
"glo");
1262 $term_gui->output($this->offlineMode(), $this->tpl);
1264 if (!$this->offlineMode()) {
1265 $ilCtrl->setParameter($this,
"pg_type",
"");
1272 $this->setContentStyles();
1274 $this->renderPageTitle();
1276 $this->tpl->setCurrentBlock(
"ilMedia");
1278 $link_xml = $this->linker->getLinkXML($med_links);
1281 if (!empty($this->requested_pg_id)) {
1282 $pg_obj = $this->getLMPage($this->requested_pg_id, $this->requested_pg_type);
1283 $pg_obj->buildDom();
1288 $xml .= $pg_obj->getMediaAliasElement($this->requested_mob_id);
1299 if (!$this->offlineMode()) {
1305 $mode = ($this->requested_cmd ==
"fullscreen")
1308 $enlarge_path =
ilUtil::getImagePath(
"media/enlarge.svg",
false,
"output", $this->offlineMode());
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,
1316 'ref_id' => $this->lm->getRefId(),
1317 'pg_frame' => $pg_frame,
1318 'webspace_path' => $wb_path
1320 $output = $this->xsl->process($xml,
$params);
1323 $this->tpl->setVariable(
"MEDIA_CONTENT", $output);
1330 string $a_inline =
"",
1331 string $a_file =
"",
1332 string $a_location =
""
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);
1348 $this->
ctrl->redirectByClass(ilInfoScreenGUI::class,
"showSummary");
1356 $this->outputInfoScreen();
1360 string $a_active_tab =
"info"
1362 $ilAccess = $this->
access;
1363 $ilLocator = $this->locator;
1365 $this->renderPageTitle();
1367 $this->tpl->loadStandardTemplate();
1368 $this->tpl->setTitle($this->getLMPresentationTitle());
1371 $this->renderTabs($a_active_tab, 0);
1374 if ($ilAccess->checkAccess(
"read",
"", $this->requested_ref_id)) {
1377 $ilLocator->addRepositoryItems();
1378 $this->tpl->setLocator();
1387 $ilAccess = $this->access;
1389 if (!$this->lm->isInfoEnabled()) {
1393 $this->initScreenHead();
1395 $this->
lng->loadLanguageModule(
"meta");
1398 $info->enablePrivateNotes();
1400 $info->enableNews();
1401 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id)) {
1403 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1405 $info->enableNewsEditing();
1407 if ($enable_internal_rss) {
1408 $info->setBlockProperty(
"news",
"settings",
true);
1413 $info->addMetaDataSections($this->lm->getId(), 0, $this->lm->getType());
1415 $this->
lng->loadLanguageModule(
"copg");
1416 $est_reading_time = $this->reading_time_manager->getReadingTime($this->lm->getId());
1417 if (!is_null($est_reading_time)) {
1419 $this->
lng->txt(
"copg_est_reading_time"),
1420 sprintf($this->
lng->txt(
"copg_x_minutes"), $est_reading_time)
1424 if ($this->offlineMode()) {
1425 $this->tpl->setContent(
$info->getHTML());
1426 return $this->tpl->get();
1431 $this->tpl->printToStdout();
1441 $ilUser = $this->user;
1444 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1451 $tpl =
new ilTemplate(
"tpl.lm_print_selection.html",
true,
true,
"components/ILIAS/LearningModule");
1453 $this->
ctrl->setParameterByClass(
"illmpresentationgui",
"obj_id", $this->requested_obj_id);
1456 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1457 $nodes = $this->filterNonAccessibleNode($nodes);
1459 $this->initPrintViewSelectionForm();
1461 foreach ($nodes as $node) {
1469 $this->lm->getType(),
1470 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1473 if ($node[
"type"] ==
"pg" &&
1482 switch ($node[
"type"]) {
1488 $this->lm->getPageHeader(),
1489 $this->lm->isActiveNumbering(),
1490 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1497 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"pg");
1502 $text = $this->getLMPresentationTitle();
1504 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"obj_lm");
1513 $this->lm->isActiveNumbering(),
1514 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1520 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"st");
1525 $this->lm->getRefId(),
1529 $text .=
" (" . $this->
lng->txt(
"cont_no_access") .
")";
1532 $this->nl->addListNode(
1544 if ($this->requested_obj_id > 0 && !$this->lm_tree->isInTree($this->requested_obj_id)) {
1547 $this->requested_obj_id,
1548 $this->lm->getPageHeader(),
1549 $this->lm->isActiveNumbering(),
1550 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1557 $id = $this->requested_obj_id;
1561 $this->nl->addListNode(
1572 $f = $this->
form->getHTMLAsync();
1576 $modal = $this->
ui->factory()->modal()->roundtrip(
1577 $this->
lng->txt(
"cont_print_view"),
1578 $this->ui->factory()->legacy()->content($tpl->
get())
1580 echo $this->
ui->renderer()->render($modal);
1587 $tracker = $this->getTracker();
1590 if (!$this->offlineMode()) {
1591 if ($this->lm->getRestrictForwardNavigation()) {
1592 $nodes = array_filter($nodes,
function ($node) use ($tracker) {
1603 $ilCtrl = $this->ctrl;
1606 $this->
form->setForceTopButtons(
true);
1610 $radg->setValue(
"page");
1612 $radg->addOption($op1);
1614 $radg->addOption($op2);
1616 $radg->addOption($op3);
1620 $op3->addSubItem($nl);
1622 $this->
form->addItem($radg);
1624 $this->
form->addCommandButton(
"showPrintView", $lng->
txt(
"cont_show_print_view"));
1625 $this->
form->setOpenTag(
false);
1626 $this->
form->setCloseTag(
false);
1628 $this->
form->setTitle(
" ");
1629 $this->
form->setFormAction($ilCtrl->getFormAction($this));
1634 $ilUser = $this->user;
1636 $ilCtrl = $this->ctrl;
1637 $tabs = $this->tabs;
1638 $header_page_content =
"";
1639 $footer_page_content =
"";
1640 $chapter_title =
"";
1641 $did_chap_page_header =
false;
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());
1648 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1652 $this->renderPageTitle();
1656 $ilCtrl->getLinkTarget($this,
"layout")
1659 $c_obj_id = $this->getCurrentPageId();
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;
1668 if ($sel_type ==
"chapter" && $c_obj_id > 0) {
1669 $path = $this->lm_tree->getPathFull($c_obj_id);
1670 $chap_id =
$path[1][
"child"];
1672 $sel_obj_ids[] = $chap_id;
1676 $this->setContentStyles();
1679 $tpl =
new ilTemplate(
"tpl.lm_print_view.html",
true,
true,
"components/ILIAS/LearningModule");
1682 $this->tpl->setTitle($this->getLMPresentationTitle());
1684 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1689 $glossary_links = array();
1690 $output_header =
false;
1691 $media_links = array();
1692 $last_page_title =
"";
1695 if ($this->lm->getFooterPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1697 $page_object_gui = $this->getLMPageGUI($this->lm->getFooterPage());
1698 $page_object_gui->setStyleId(
1699 $this->content_style_domain->getEffectiveStyleId()
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();
1712 if ($this->lm->getHeaderPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1714 $page_object_gui = $this->getLMPageGUI($this->lm->getHeaderPage());
1715 $page_object_gui->setStyleId(
1716 $this->content_style_domain->getEffectiveStyleId()
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();
1731 if (count($sel_obj_ids) > 0) {
1732 foreach ($sel_obj_ids as $k) {
1733 if ($k > 0 && !$this->lm_tree->isInTree($k)) {
1735 $nodes[] = array(
"obj_id" => $k,
"type" =>
"pg",
"free" =>
true);
1740 $this->tpl->setOnScreenMessage(
'failure',
$lng->txt(
"cont_print_no_page_selected"),
true);
1741 $ilCtrl->redirect($this,
"showPrintViewSelection");
1744 foreach ($nodes as $node_key => $node) {
1748 $this->lm->getType(),
1749 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1751 if ($node[
"type"] ==
"pg" && !$active) {
1757 if ($node[
"depth"] <= $act_level) {
1758 if (in_array($node[
"obj_id"], $sel_obj_ids)) {
1759 $act_level = $node[
"depth"];
1766 if ($this->lm->getRestrictForwardNavigation()) {
1767 if ($this->getTracker()->hasPredIncorrectAnswers($node[
"obj_id"])) {
1773 $this->lm->getRefId(),
1778 if ($node[
"type"] ==
"du") {
1779 $output_header =
true;
1783 if ($node[
"type"] ==
"st") {
1788 $chapter_title = $chap->_getPresentationTitle(
1791 $this->lm->isActiveNumbering(),
1792 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1803 if ($nodes[$node_key + 1][
"type"] ==
"pg") {
1806 $header_page_content
1808 $did_chap_page_header =
true;
1818 if ($node[
"type"] ===
"pg") {
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()
1832 $lm_pg_obj->setLMId($this->lm->getId());
1835 $page_object_gui->setLinkFrame($this->requested_frame);
1836 $page_object_gui->setOutputMode(
"print");
1837 $page_object_gui->setPresentationTitle(
"");
1842 $lm_pg_obj->getId(),
1843 $this->lm->getPageHeader(),
1844 $this->lm->isActiveNumbering(),
1845 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1853 $page_title = trim(substr($page_title, 0, strrpos($page_title,
" ")));
1858 if ($this->lm->isActiveNumbering()) {
1859 $chapter_title = trim(substr(
1861 strpos($chapter_title,
" ")
1865 if ($page_title != $chapter_title && $page_title !== $last_page_title) {
1866 $page_object_gui->setPresentationTitle($page_title);
1868 $last_page_title = $page_title;
1872 $hcont = $header_page_content;
1873 $fcont = $footer_page_content;
1876 if ($did_chap_page_header) {
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))) {
1886 $page_object_gui->setFileDownloadLink(
"#");
1887 $page_object_gui->setFullscreenLink(
"#");
1888 $page_object_gui->setSourcecodeDownloadScript(
"#");
1889 $page_content = $page_object_gui->showPage();
1893 $hcont . $page_content . $fcont
1898 $hcont . $page_content . $fcont .
"<br />"
1901 $chapter_title =
"";
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;
1916 if ($link[
"type"] ==
"mob" &&
1917 ($link[
"inst"] ==
IL_INST_ID || $link[
"inst"] == 0)) {
1919 $mob_links[$key] = $link;
1929 $page_object->buildDom();
1930 $links = $page_object->getInternalLinks();
1931 $tf = $link[
"TargetFrame"] ??
"";
1932 foreach ($links as $link) {
1933 if ($link[
"Type"] ===
"MediaObject"
1935 && $tf !==
"None") {
1936 $media_links[] = $link;
1948 if (count($glossary_links) > 0 && !$this->lm->isActivePreventGlossaryAppendix()) {
1952 foreach ($glossary_links as $key => $link) {
1954 $terms[$term .
":" . $key] = array(
"key" => $key,
"link" => $link,
"term" => $term);
1959 foreach ($terms as $t) {
1966 $page_gui->setTemplateOutput(
false);
1967 $page_gui->setOutputMode(
"print");
1970 $page_gui->setFileDownloadLink(
"#");
1971 $page_gui->setFullscreenLink(
"#");
1972 $page_gui->setSourcecodeDownloadScript(
"#");
1973 $output = $page_gui->showPage();
1984 }
catch (Exception
$e) {
1992 $annex_title = $this->
lng->txt(
"cont_annex") .
" " .
1993 chr(64 + $annex_cnt) .
": " . $this->
lng->txt(
"glo");
1997 $annexes[] = $annex_title;
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];
2008 $med_item = $med_obj->getMediaItem(
"Standard");
2009 if (is_object($med_item)) {
2010 if (is_int(strpos($med_item->getFormat(),
"image"))) {
2014 if ($med_item->getLocationType() ==
"LocalFile") {
2018 "/" . $med_item->getLocation()
2023 $med_item->getLocation()
2027 if ($med_item->getCaption() !=
"") {
2028 $tpl->
setVariable(
"IMG_TITLE", $med_item->getCaption());
2030 $tpl->
setVariable(
"IMG_TITLE", $med_obj->getTitle());
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);
2046 $annexes[] = $annex_title;
2050 if ($output_header) {
2052 $tpl->
setVariable(
"LM_TITLE", $this->getLMPresentationTitle());
2053 if ($this->lm->getDescription() !=
"none") {
2056 $lom_reader->firstData($lom_paths->firstDescription())->value()
2063 foreach ($nodes2 as $node2) {
2064 if ($node2[
"type"] ==
"st"
2066 $this->lm->getRefId(),
2070 for ($j = 1; $j < $node2[
"depth"]; $j++) {
2081 $this->lm->isActiveNumbering(),
2082 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
2093 foreach ($annexes as $annex) {
2111 $authors = $lom_data_helper->makePresentableAsList(
2113 ...$lom_reader->allData($lom_paths->authors())
2115 if ($authors !=
"") {
2116 $this->
lng->loadLanguageModule(
"meta");
2124 if ($lom_cp_helper->hasPresetCopyright($lom_reader)) {
2125 $copyright = $this->
ui->renderer()->render(
2126 $lom_cp_helper->readPresetCopyright($lom_reader)->presentAsUIComponents()
2129 $copyright = $lom_cp_helper->readCustomCopyright($lom_reader);
2131 if ($copyright !=
"") {
2132 $this->
lng->loadLanguageModule(
"meta");
2134 $tpl->
setVariable(
"TXT_COPYRIGHT", $this->
lng->txt(
"meta_copyright"));
2138 $this->tpl->setContent($tpl->
get());
2139 $this->tpl->addOnLoadCode(
"il.Util.print();");
2140 $this->tpl->printToStdout();
2148 $page_gui = $this->getLMPageGUI($this->getCurrentPageId());
2149 $page_gui->downloadFile();
2161 int $a_return_ref_id
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;
2171 $this->setContentStyles();
2173 $tpl =
new ilTemplate(
"tpl.page_message_screen.html",
true,
true,
"components/ILIAS/LearningModule");
2174 $tpl->
setVariable(
"TXT_PAGE_NO_PUBLIC_ACCESS", $a_content);
2176 $this->tpl->setVariable(
"PAGE_CONTENT", $tpl->
get());
2184 $this->showMessageScreen($this->
lng->txt(
"msg_page_no_public_access"));
2192 $this->showMessageScreen($this->
lng->txt(
"msg_no_page_access"));
2201 $this->showMessageScreen($this->
lng->txt(
"cont_no_page_access_unansw_q"));
2206 if (!$this->offlineMode()) {
2207 return $this->
ctrl->getLinkTarget($this,
"");
2215 return $this->offline_directory;
2228 $directory = $this->getOfflineDirectory() .
"/codefiles/" . $page_id .
"/" . $paragraph_id;
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 />");
2243 $this->tpl->setHeaderPageTitle($this->getLMPresentationTitle());
2248 $concrete_lang = $this->service->getPresentationStatus()->getConcreteLang();
2250 return new ilLMPageGUI($a_id, 0,
false, $this->lang, $concrete_lang);
2253 return new ilLMPageGUI($a_id, 0,
false, $this->ot->getDefaultLanguage(), $concrete_lang);
2255 return new ilLMPageGUI($a_id, 0,
false,
"", $concrete_lang);
2262 $type = ($a_type ==
"mep")
2270 $lang = $this->ot->getDefaultLanguage();
2287 $exp = $this->ilTOC();
2289 echo $exp->getHTML() .
2290 "<script>" . $exp->getOnLoadCode() .
"</script>";
2305 $note = $this->notes->getById($a_note_id);
2306 $text = $note->getText();
2316 $notification->send();
2322 int $current_page_id
2325 $menu_editor->
setObjId($this->lm->getId());
2333 $this->getExportFormat(),
2334 $this->export_all_languages,
2336 $this->offlineMode(),
2344 function ($additional_content) {
2345 $this->additional_content[] = $additional_content;
2348 $navigation_renderer->
render();
2356 $this->addResourceFiles();
2357 switch ($pars[
"cmd"]) {
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());
2363 $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.
static shortenTextExtended(string $a_str, int $a_len, bool $a_dots=false, bool $a_next_blank=false, bool $a_keep_extension=false)
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 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
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( $class_path, string $cmd, string $submit_caption="")
if(!file_exists('../ilias.ini.php'))