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()) {
1017 if ($ltiview->isActive()) {
1020 $ilLocator->addRepositoryItems();
1023 $ilLocator->setOffline(
true);
1026 if ($this->lm_tree->isInTree($a_id)) {
1027 $path = $this->lm_tree->getPathFull($a_id);
1029 foreach (
$path as $key => $row) {
1030 if ($row[
"type"] !=
"pg") {
1031 if ($row[
"child"] != $this->lm_tree->getRootId()) {
1032 $ilLocator->addItem(
1037 $this->lm->isActiveNumbering(),
1038 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1046 $this->linker->getLink(
"layout", $row[
"child"], $frame_param,
"StructureObject"),
1050 $ilLocator->addItem(
1052 $this->linker->getLink(
"layout", 0, $frame_param),
1054 $this->requested_ref_id
1060 $ilLocator->addItem(
1061 $this->getLMPresentationTitle(),
1062 $this->linker->getLink(
"layout", 0, $this->requested_frame)
1067 $ilLocator->addItem(
1068 $lm_obj->getTitle(),
1069 $this->linker->getLink(
"layout", $a_id, $frame_param),
1074 $this->tpl->setLocator();
1082 return $this->service->getNavigationStatus()->getCurrentPage();
1091 $this->content_style_gui->addCss(
1093 $this->lm->getRefId()
1107 bool $skip_nav =
false
1109 $this->fill_on_load_code =
true;
1110 $this->setContentStyles();
1112 $tpl =
new ilTemplate(
"tpl.lm_content.html",
true,
true,
"components/ILIAS/LearningModule/Presentation");
1121 $this->requested_obj_id,
1122 $this->requested_back_pg,
1123 $this->requested_frame,
1128 $navigation_renderer->renderTop();
1132 $tpl->
setVariable(
"PAGE_CONTENT", $this->getPageContent());
1133 $tpl->
setVariable(
"RATING", $this->renderRating());
1149 $this->requested_obj_id
1152 return $content_renderer->render();
1159 if ($this->lm->hasRatingPages() && !$this->offlineMode()) {
1161 $rating_gui->setObject($this->lm->getId(),
"lm", $this->getCurrentPageId(),
"lm");
1162 $rating_gui->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1164 $this->
ctrl->setParameter($this,
"pg_id", $this->getCurrentPageId());
1165 $this->tpl->addOnLoadCode(
"il.LearningModule.setRatingUrl('" .
1166 $this->
ctrl->getLinkTarget($this,
"updatePageRating",
"",
true,
false) .
1168 $this->
ctrl->setParameter($this,
"pg_id",
"");
1170 $rating =
'<div id="ilrtrpg" style="text-align:right">' .
1171 $rating_gui->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);") .
1179 $ilUser = $this->user;
1180 $pg_id = $this->service->getRequest()->getPgId();
1181 if (!$this->
ctrl->isAsynch() || !$pg_id) {
1185 $rating = $this->service->getRequest()->getRating();
1206 $rating->setObject($this->lm->getId(),
"lm", $pg_id,
"lm");
1207 $rating->setYourRatingText($this->
lng->txt(
"lm_rate_page"));
1209 echo $rating->getHTML(
true,
true,
"il.LearningModule.saveRating(%rating%);");
1211 echo $this->tpl->getOnLoadCodeForAsynch();
1218 $this->content_style_domain->getEffectiveStyleId()
1220 if (!$this->offlineMode()) {
1222 $this->fill_on_load_code =
true;
1226 $this->fill_on_load_code =
false;
1228 if (!$this->offlineMode()) {
1229 $this->
ctrl->setParameter($this,
"obj_id", $this->getCurrentPageId());
1233 "sourcecodeDownload",
1234 $this->getCurrentPageId()
1236 if (!$this->offlineMode()) {
1237 $this->
ctrl->setParameter($this,
"obj_id", $this->requested_obj_id);
1245 $ilCtrl = $this->ctrl;
1250 $this->setContentStyles();
1252 $term_gui->setPageLinker($this->linker);
1254 $term_gui->setOfflineDirectory($this->getOfflineDirectory());
1255 if (!$this->offlineMode()) {
1256 $ilCtrl->setParameter($this,
"pg_type",
"glo");
1258 $term_gui->output($this->offlineMode(), $this->tpl);
1260 if (!$this->offlineMode()) {
1261 $ilCtrl->setParameter($this,
"pg_type",
"");
1268 $this->setContentStyles();
1270 $this->renderPageTitle();
1272 $this->tpl->setCurrentBlock(
"ilMedia");
1274 $link_xml = $this->linker->getLinkXML($med_links);
1277 if (!empty($this->requested_pg_id)) {
1278 $pg_obj = $this->getLMPage($this->requested_pg_id, $this->requested_pg_type);
1279 $pg_obj->buildDom();
1284 $xml .= $pg_obj->getMediaAliasElement($this->requested_mob_id);
1295 if (!$this->offlineMode()) {
1301 $mode = ($this->requested_cmd ==
"fullscreen")
1304 $enlarge_path =
ilUtil::getImagePath(
"media/enlarge.svg",
false,
"output", $this->offlineMode());
1306 $this->linker->getLink(
"fullscreen");
1307 $params = array(
'mode' => $mode,
1308 'enlarge_path' => $enlarge_path,
1309 'link_params' =>
"ref_id=" . $this->lm->getRefId(),
1310 'fullscreen_link' => $fullscreen_link,
1312 'ref_id' => $this->lm->getRefId(),
1313 'pg_frame' => $pg_frame,
1314 'webspace_path' => $wb_path
1316 $output = $this->xsl->process($xml,
$params);
1319 $this->tpl->setVariable(
"MEDIA_CONTENT", $output);
1326 string $a_inline =
"",
1327 string $a_file =
"",
1328 string $a_location =
""
1330 if ($a_inline !=
"") {
1331 $js_tpl =
new ilTemplate($a_inline,
true,
false, $a_location);
1332 $js = $js_tpl->get();
1333 $this->tpl->setVariable(
"INLINE_JS", $js);
1344 $this->
ctrl->redirectByClass(ilInfoScreenGUI::class,
"showSummary");
1352 $this->outputInfoScreen();
1356 string $a_active_tab =
"info"
1358 $ilAccess = $this->
access;
1359 $ilLocator = $this->locator;
1361 $this->renderPageTitle();
1363 $this->tpl->loadStandardTemplate();
1364 $this->tpl->setTitle($this->getLMPresentationTitle());
1367 $this->renderTabs($a_active_tab, 0);
1370 if ($ilAccess->checkAccess(
"read",
"", $this->requested_ref_id)) {
1373 $ilLocator->addRepositoryItems();
1374 $this->tpl->setLocator();
1383 $ilAccess = $this->access;
1385 if (!$this->lm->isInfoEnabled()) {
1389 $this->initScreenHead();
1391 $this->
lng->loadLanguageModule(
"meta");
1394 $info->enablePrivateNotes();
1396 $info->enableNews();
1397 if ($ilAccess->checkAccess(
"write",
"", $this->requested_ref_id)) {
1399 $enable_internal_rss = $news_set->get(
"enable_rss_for_internal");
1401 $info->enableNewsEditing();
1403 if ($enable_internal_rss) {
1404 $info->setBlockProperty(
"news",
"settings",
true);
1409 $info->addMetaDataSections($this->lm->getId(), 0, $this->lm->getType());
1411 $this->
lng->loadLanguageModule(
"copg");
1412 $est_reading_time = $this->reading_time_manager->getReadingTime($this->lm->getId());
1413 if (!is_null($est_reading_time)) {
1415 $this->
lng->txt(
"copg_est_reading_time"),
1416 sprintf($this->
lng->txt(
"copg_x_minutes"), $est_reading_time)
1420 if ($this->offlineMode()) {
1421 $this->tpl->setContent(
$info->getHTML());
1422 return $this->tpl->get();
1427 $this->tpl->printToStdout();
1437 $ilUser = $this->user;
1440 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1447 $tpl =
new ilTemplate(
"tpl.lm_print_selection.html",
true,
true,
"components/ILIAS/LearningModule");
1449 $this->
ctrl->setParameterByClass(
"illmpresentationgui",
"obj_id", $this->requested_obj_id);
1452 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1453 $nodes = $this->filterNonAccessibleNode($nodes);
1455 $this->initPrintViewSelectionForm();
1457 foreach ($nodes as $node) {
1465 $this->lm->getType(),
1466 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1469 if ($node[
"type"] ==
"pg" &&
1478 switch ($node[
"type"]) {
1484 $this->lm->getPageHeader(),
1485 $this->lm->isActiveNumbering(),
1486 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1493 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"pg");
1498 $text = $this->getLMPresentationTitle();
1500 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"obj_lm");
1509 $this->lm->isActiveNumbering(),
1510 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1516 $img_alt =
$lng->txt(
"icon") .
" " .
$lng->txt(
"st");
1521 $this->lm->getRefId(),
1525 $text .=
" (" . $this->
lng->txt(
"cont_no_access") .
")";
1528 $this->nl->addListNode(
1540 if ($this->requested_obj_id > 0 && !$this->lm_tree->isInTree($this->requested_obj_id)) {
1543 $this->requested_obj_id,
1544 $this->lm->getPageHeader(),
1545 $this->lm->isActiveNumbering(),
1546 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1553 $id = $this->requested_obj_id;
1557 $this->nl->addListNode(
1568 $f = $this->
form->getHTMLAsync();
1572 $modal = $this->
ui->factory()->modal()->roundtrip(
1573 $this->
lng->txt(
"cont_print_view"),
1574 $this->ui->factory()->legacy()->content($tpl->
get())
1576 echo $this->
ui->renderer()->render($modal);
1583 $tracker = $this->getTracker();
1586 if (!$this->offlineMode()) {
1587 if ($this->lm->getRestrictForwardNavigation()) {
1588 $nodes = array_filter($nodes,
function ($node) use ($tracker) {
1599 $ilCtrl = $this->ctrl;
1602 $this->
form->setForceTopButtons(
true);
1606 $radg->setValue(
"page");
1608 $radg->addOption($op1);
1610 $radg->addOption($op2);
1612 $radg->addOption($op3);
1616 $op3->addSubItem($nl);
1618 $this->
form->addItem($radg);
1620 $this->
form->addCommandButton(
"showPrintView", $lng->
txt(
"cont_show_print_view"));
1621 $this->
form->setOpenTag(
false);
1622 $this->
form->setCloseTag(
false);
1624 $this->
form->setTitle(
" ");
1625 $this->
form->setFormAction($ilCtrl->getFormAction($this));
1630 $ilUser = $this->user;
1632 $ilCtrl = $this->ctrl;
1633 $tabs = $this->tabs;
1634 $header_page_content =
"";
1635 $footer_page_content =
"";
1636 $chapter_title =
"";
1637 $did_chap_page_header =
false;
1639 $lom_paths = $this->lom_services->paths();
1640 $lom_data_helper = $this->lom_services->dataHelper();
1641 $lom_cp_helper = $this->lom_services->copyrightHelper();
1642 $lom_reader = $this->lom_services->read($this->lm->getId(), 0, $this->lm->getType());
1644 if (!$this->lm->isActivePrintView() || !$this->lm->isActiveLMMenu()) {
1648 $this->renderPageTitle();
1652 $ilCtrl->getLinkTarget($this,
"layout")
1655 $c_obj_id = $this->getCurrentPageId();
1657 $sel_type = $this->service->getRequest()->getSelectedType();
1658 $sel_obj_ids = $this->service->getRequest()->getSelectedObjIds();
1659 if ($sel_type ==
"page") {
1660 if (!in_array($c_obj_id, $sel_obj_ids)) {
1661 $sel_obj_ids[] = $c_obj_id;
1664 if ($sel_type ==
"chapter" && $c_obj_id > 0) {
1665 $path = $this->lm_tree->getPathFull($c_obj_id);
1666 $chap_id =
$path[1][
"child"];
1668 $sel_obj_ids[] = $chap_id;
1672 $this->setContentStyles();
1675 $tpl =
new ilTemplate(
"tpl.lm_print_view.html",
true,
true,
"components/ILIAS/LearningModule");
1678 $this->tpl->setTitle($this->getLMPresentationTitle());
1680 $nodes = $this->lm_tree->getSubTree($this->lm_tree->getNodeData($this->lm_tree->getRootId()));
1685 $glossary_links = array();
1686 $output_header =
false;
1687 $media_links = array();
1688 $last_page_title =
"";
1691 if ($this->lm->getFooterPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1693 $page_object_gui = $this->getLMPageGUI($this->lm->getFooterPage());
1694 $page_object_gui->setStyleId(
1695 $this->content_style_domain->getEffectiveStyleId()
1699 $page_object_gui->setLinkFrame($this->requested_frame);
1700 $page_object_gui->setOutputMode(
"print");
1701 $page_object_gui->setPresentationTitle(
"");
1702 $page_object_gui->setFileDownloadLink(
"#");
1703 $page_object_gui->setFullscreenLink(
"#");
1704 $page_object_gui->setSourcecodeDownloadScript(
"#");
1705 $footer_page_content = $page_object_gui->showPage();
1708 if ($this->lm->getHeaderPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) {
1710 $page_object_gui = $this->getLMPageGUI($this->lm->getHeaderPage());
1711 $page_object_gui->setStyleId(
1712 $this->content_style_domain->getEffectiveStyleId()
1716 $page_object_gui->setLinkFrame($this->requested_frame);
1717 $page_object_gui->setOutputMode(
"print");
1718 $page_object_gui->setPresentationTitle(
"");
1719 $page_object_gui->setFileDownloadLink(
"#");
1720 $page_object_gui->setFullscreenLink(
"#");
1721 $page_object_gui->setSourcecodeDownloadScript(
"#");
1722 $header_page_content = $page_object_gui->showPage();
1727 if (count($sel_obj_ids) > 0) {
1728 foreach ($sel_obj_ids as $k) {
1729 if ($k > 0 && !$this->lm_tree->isInTree($k)) {
1731 $nodes[] = array(
"obj_id" => $k,
"type" =>
"pg",
"free" =>
true);
1736 $this->tpl->setOnScreenMessage(
'failure',
$lng->txt(
"cont_print_no_page_selected"),
true);
1737 $ilCtrl->redirect($this,
"showPrintViewSelection");
1740 foreach ($nodes as $node_key => $node) {
1744 $this->lm->getType(),
1745 (
bool) $this->lm_set->get(
"time_scheduled_page_activation")
1747 if ($node[
"type"] ==
"pg" && !$active) {
1753 if ($node[
"depth"] <= $act_level) {
1754 if (in_array($node[
"obj_id"], $sel_obj_ids)) {
1755 $act_level = $node[
"depth"];
1762 if ($this->lm->getRestrictForwardNavigation()) {
1763 if ($this->getTracker()->hasPredIncorrectAnswers($node[
"obj_id"])) {
1769 $this->lm->getRefId(),
1774 if ($node[
"type"] ==
"du") {
1775 $output_header =
true;
1779 if ($node[
"type"] ==
"st") {
1784 $chapter_title = $chap->_getPresentationTitle(
1787 $this->lm->isActiveNumbering(),
1788 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1799 if ($nodes[$node_key + 1][
"type"] ==
"pg") {
1802 $header_page_content
1804 $did_chap_page_header =
true;
1814 if ($node[
"type"] ===
"pg") {
1819 $page_id = $node[
"obj_id"];
1820 $page_object_gui = $this->getLMPageGUI($page_id);
1821 $page_object = $page_object_gui->getPageObject();
1822 $page_object_gui->setStyleId(
1823 $this->content_style_domain->getEffectiveStyleId()
1828 $lm_pg_obj->setLMId($this->lm->getId());
1831 $page_object_gui->setLinkFrame($this->requested_frame);
1832 $page_object_gui->setOutputMode(
"print");
1833 $page_object_gui->setPresentationTitle(
"");
1838 $lm_pg_obj->getId(),
1839 $this->lm->getPageHeader(),
1840 $this->lm->isActiveNumbering(),
1841 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
1849 $page_title = trim(substr($page_title, 0, strrpos($page_title,
" ")));
1854 if ($this->lm->isActiveNumbering()) {
1855 $chapter_title = trim(substr(
1857 strpos($chapter_title,
" ")
1861 if ($page_title != $chapter_title && $page_title !== $last_page_title) {
1862 $page_object_gui->setPresentationTitle($page_title);
1864 $last_page_title = $page_title;
1868 $hcont = $header_page_content;
1869 $fcont = $footer_page_content;
1872 if ($did_chap_page_header) {
1875 if (($nodes[$node_key + 1][
"type"] ??
"") ==
"pg" &&
1876 !($nodes[$node_key + 1][
"depth"] <= $act_level
1877 && !in_array($nodes[$node_key + 1][
"obj_id"], $sel_obj_ids))) {
1882 $page_object_gui->setFileDownloadLink(
"#");
1883 $page_object_gui->setFullscreenLink(
"#");
1884 $page_object_gui->setSourcecodeDownloadScript(
"#");
1885 $page_content = $page_object_gui->showPage();
1889 $hcont . $page_content . $fcont
1894 $hcont . $page_content . $fcont .
"<br />"
1897 $chapter_title =
"";
1907 foreach ($int_links as $key => $link) {
1908 if ($link[
"type"] ==
"git" &&
1909 ($link[
"inst"] ==
IL_INST_ID || $link[
"inst"] == 0)) {
1910 $glossary_links[$key] = $link;
1912 if ($link[
"type"] ==
"mob" &&
1913 ($link[
"inst"] ==
IL_INST_ID || $link[
"inst"] == 0)) {
1915 $mob_links[$key] = $link;
1925 $page_object->buildDom();
1926 $links = $page_object->getInternalLinks();
1927 $tf = $link[
"TargetFrame"] ??
"";
1928 foreach ($links as $link) {
1929 if ($link[
"Type"] ===
"MediaObject"
1931 && $tf !==
"None") {
1932 $media_links[] = $link;
1944 if (count($glossary_links) > 0 && !$this->lm->isActivePreventGlossaryAppendix()) {
1948 foreach ($glossary_links as $key => $link) {
1950 $terms[$term .
":" . $key] = array(
"key" => $key,
"link" => $link,
"term" => $term);
1955 foreach ($terms as $t) {
1962 $page_gui->setTemplateOutput(
false);
1963 $page_gui->setOutputMode(
"print");
1966 $page_gui->setFileDownloadLink(
"#");
1967 $page_gui->setFullscreenLink(
"#");
1968 $page_gui->setSourcecodeDownloadScript(
"#");
1969 $output = $page_gui->showPage();
1980 }
catch (Exception
$e) {
1988 $annex_title = $this->
lng->txt(
"cont_annex") .
" " .
1989 chr(64 + $annex_cnt) .
": " . $this->
lng->txt(
"glo");
1993 $annexes[] = $annex_title;
1997 if (count($media_links) > 0) {
1998 foreach ($media_links as $media) {
1999 if (substr($media[
"Target"], 0, 4) ==
"il__") {
2000 $arr = explode(
"_", $media[
"Target"]);
2001 $id = $arr[count($arr) - 1];
2004 $med_item = $med_obj->getMediaItem(
"Standard");
2005 if (is_object($med_item)) {
2006 if (is_int(strpos($med_item->getFormat(),
"image"))) {
2010 if ($med_item->getLocationType() ==
"LocalFile") {
2014 "/" . $med_item->getLocation()
2019 $med_item->getLocation()
2023 if ($med_item->getCaption() !=
"") {
2024 $tpl->
setVariable(
"IMG_TITLE", $med_item->getCaption());
2026 $tpl->
setVariable(
"IMG_TITLE", $med_obj->getTitle());
2037 $annex_title = $this->
lng->txt(
"cont_annex") .
" " .
2038 chr(64 + $annex_cnt) .
": " . $this->
lng->txt(
"cont_ref_images");
2039 $tpl->
setVariable(
"TXT_REF_IMAGES", $annex_title);
2042 $annexes[] = $annex_title;
2046 if ($output_header) {
2048 $tpl->
setVariable(
"LM_TITLE", $this->getLMPresentationTitle());
2049 if ($this->lm->getDescription() !=
"none") {
2052 $lom_reader->firstData($lom_paths->firstDescription())->value()
2059 foreach ($nodes2 as $node2) {
2060 if ($node2[
"type"] ==
"st"
2062 $this->lm->getRefId(),
2066 for ($j = 1; $j < $node2[
"depth"]; $j++) {
2077 $this->lm->isActiveNumbering(),
2078 (
bool) $this->lm_set->get(
"time_scheduled_page_activation"),
2089 foreach ($annexes as $annex) {
2107 $authors = $lom_data_helper->makePresentableAsList(
2109 ...$lom_reader->allData($lom_paths->authors())
2111 if ($authors !=
"") {
2112 $this->
lng->loadLanguageModule(
"meta");
2120 if ($lom_cp_helper->hasPresetCopyright($lom_reader)) {
2121 $copyright = $this->
ui->renderer()->render(
2122 $lom_cp_helper->readPresetCopyright($lom_reader)->presentAsUIComponents()
2125 $copyright = $lom_cp_helper->readCustomCopyright($lom_reader);
2127 if ($copyright !=
"") {
2128 $this->
lng->loadLanguageModule(
"meta");
2130 $tpl->
setVariable(
"TXT_COPYRIGHT", $this->
lng->txt(
"meta_copyright"));
2134 $this->tpl->setContent($tpl->
get());
2135 $this->tpl->addOnLoadCode(
"il.Util.print();");
2136 $this->tpl->printToStdout();
2144 $page_gui = $this->getLMPageGUI($this->getCurrentPageId());
2145 $page_gui->downloadFile();
2157 int $a_return_ref_id
2159 return "ilias.php?baseClass=ilLMPresentationGUI&ref_id=" . $a_ref_id .
"&obj_id=" . $a_obj_id .
"&focus_id=" .
2160 $a_obj_id .
"&focus_return=" . $a_return_ref_id;
2167 $this->setContentStyles();
2169 $tpl =
new ilTemplate(
"tpl.page_message_screen.html",
true,
true,
"components/ILIAS/LearningModule");
2170 $tpl->
setVariable(
"TXT_PAGE_NO_PUBLIC_ACCESS", $a_content);
2172 $this->tpl->setVariable(
"PAGE_CONTENT", $tpl->
get());
2180 $this->showMessageScreen($this->
lng->txt(
"msg_page_no_public_access"));
2188 $this->showMessageScreen($this->
lng->txt(
"msg_no_page_access"));
2197 $this->showMessageScreen($this->
lng->txt(
"cont_no_page_access_unansw_q"));
2202 if (!$this->offlineMode()) {
2203 return $this->
ctrl->getLinkTarget($this,
"");
2211 return $this->offline_directory;
2224 $directory = $this->getOfflineDirectory() .
"/codefiles/" . $page_id .
"/" . $paragraph_id;
2226 $file = $directory .
"/" . $title;
2227 if (!($fp = fopen($file,
"w+"))) {
2228 die(
"<strong>Error</strong>: Could not open \"" . $file .
"\" for writing" .
2229 " in <strong>" . __FILE__ .
"</strong> on line <strong>" . __LINE__ .
"</strong><br />");
2239 $this->tpl->setHeaderPageTitle($this->getLMPresentationTitle());
2244 $concrete_lang = $this->service->getPresentationStatus()->getConcreteLang();
2246 return new ilLMPageGUI($a_id, 0,
false, $this->lang, $concrete_lang);
2249 return new ilLMPageGUI($a_id, 0,
false, $this->ot->getDefaultLanguage(), $concrete_lang);
2251 return new ilLMPageGUI($a_id, 0,
false,
"", $concrete_lang);
2258 $type = ($a_type ==
"mep")
2262 $lang = $this->lang;
2266 $lang = $this->ot->getDefaultLanguage();
2274 return new ilLMPage($a_id, 0, $lang);
2283 $exp = $this->ilTOC();
2285 echo $exp->getHTML() .
2286 "<script>" . $exp->getOnLoadCode() .
"</script>";
2301 $note = $this->notes->getById($a_note_id);
2302 $text = $note->getText();
2312 $notification->send();
2318 int $current_page_id
2321 $menu_editor->
setObjId($this->lm->getId());
2329 $this->getExportFormat(),
2330 $this->export_all_languages,
2332 $this->offlineMode(),
2340 function ($additional_content) {
2341 $this->additional_content[] = $additional_content;
2344 $navigation_renderer->
render();
2352 $this->addResourceFiles();
2353 switch ($pars[
"cmd"]) {
2355 $tpl =
new ilTemplate(
"tpl.embedded_view.html",
true,
true,
"components/ILIAS/LearningModule");
2356 $tpl->
setVariable(
"HEAD_ACTION", $this->getHeaderAction());
2357 $tpl->
setVariable(
"PAGE_RATING", $this->renderRating());
2359 $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 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'))