82         $this->chapter_has_no_active_page = $service->
getNavigationStatus()->isChapterWithoutActivePage();
    89         $this->requested_frame = $service->
getRequest()->getFrame();
    98         $ilHelp->setScreenId(
"content");
    99         $ilHelp->setSubScreenId(
"content");
   106         $status = self::STATUS_ACCESS;
   109         if ($requested_page_lm != $this->lm->getId()) {
   110             $status = self::STATUS_NO_ACCESS;
   116             $this->lm->getPublicAccessMode() == 
'selected') {
   118                 $status = self::STATUS_NO_PUBLIC_ACCESS;
   124             $status = self::STATUS_FAILED_PRECONDITIONS;
   129         if (!$this->offline) {
   130             if ($this->lm->getRestrictForwardNavigation()) {
   131                 if ($this->tracker->hasPredIncorrectAnswers($this->current_page)) {
   132                     $status = self::STATUS_CORRECT_ANSWER_MISSING;
   138         if ($this->chapter_has_no_active_page &&
   140             $status = self::STATUS_NO_PAGE_IN_CHAPTER;
   143         if ($this->deactivated_page) {
   144             $status = self::STATUS_DEACTIVATED_PAGE;
   147         if ($this->current_page == 0) {
   148             $status = self::STATUS_NO_PAGE_FOUND;
   158         if ($this->search_string != 
"" && !$this->offline) {
   161             $search_string = $cache->getQuery();
   164             if (is_array($search_string)) {
   165                 $search_string = $search_string[
"lom_content"];
   171             $words = $p->getQuotedWords();
   172             if (is_array($words)) {
   173                 foreach ($words as $w) {
   174                     ilTextHighlighterGUI::highlight(
"ilLMPageContent", $w);
   181         int $a_head_foot_page_id = 0
   190             case self::STATUS_NO_ACCESS:
   193             case self::STATUS_NO_PUBLIC_ACCESS:
   196             case self::STATUS_FAILED_PRECONDITIONS:
   199             case self::STATUS_CORRECT_ANSWER_MISSING:
   202             case self::STATUS_NO_PAGE_IN_CHAPTER:
   205             case self::STATUS_DEACTIVATED_PAGE:
   208             case self::STATUS_NO_PAGE_FOUND:
   213         if ($a_head_foot_page_id == 0) {
   217             $page_id = $a_head_foot_page_id;
   225         $this->parent_gui->basicPageGuiInit($page_object_gui);
   227         $page_object = $page_object_gui->getPageObject();
   228         $page_object->buildDom();
   229         $page_object->registerOfflineHandler($this);
   231         $page_object_gui->setTemplateOutput(
false);
   237         $page_object_gui->setPageLinker($this->linker);
   241         $lm_pg_obj->setLMId($this->lm->getId());
   244         $page_object_gui->setLinkFrame($this->requested_frame);
   247         if ($page_id == 0 || ($page_id != $this->lm->getHeaderPage() &&
   248                 $page_id != $this->lm->getFooterPage())) {
   249             $page_object_gui->setPresentationTitle(
   252                     $this->lm->getPageHeader(),
   253                     $this->lm->isActiveNumbering(),
   254                     (bool) $this->lm_set->get(
"time_scheduled_page_activation"),
   262             if ($page_id != 0 && !$this->offline) {
   263                 $this->tracker->trackAccess($page_id, $ilUser->getId());
   266             $page_object_gui->setEnabledPageFocus(
false);
   267             $page_object_gui->getPageConfig()->setEnableSelfAssessment(
false);
   271         $page_object_gui->setLinkParams(
"ref_id=" . $this->lm->getRefId());
   272         $page_object_gui->setTemplateTargetVar(
"PAGE_CONTENT");
   276         $ret = $page_object_gui->presentation($page_object_gui->getOutputMode());
   279         if ($this->lm->getHeaderPage() > 0 &&
   280             $page_id != $this->lm->getHeaderPage() &&
   281             ($page_id == 0 || $page_id != $this->lm->getFooterPage())) {
   283                 $head = $this->
render($this->lm->getHeaderPage());
   288         if ($this->lm->getFooterPage() > 0 &&
   289             $page_id != $this->lm->getFooterPage() &&
   290             ($page_id == 0 || $page_id != $this->lm->getHeaderPage())) {
   292                 $foot = $this->
render($this->lm->getFooterPage());
   295         return $head . $focus_mess . $ret . $foot;
   301             $page_gui = 
new ilLMPageGUI($a_id, 0, 
false, $this->lang, $this->concrete_lang);
   306                 $page_gui = 
new ilLMPageGUI($a_id, 0, 
false, 
"", $this->concrete_lang);
   309         if ($this->offline) {
   321         $directory = $this->parent_gui->getOfflineDirectory() . 
"/codefiles/" . $page_id . 
"/" . $paragraph_id;
   323         $file = $directory . 
"/" . $title;
   324         if (!($fp = fopen($file, 
"w+"))) {
   325             die(
"<strong>Error</strong>: Could not open \"" . $file . 
"\" for writing" .
   326                 " in <strong>" . __FILE__ . 
"</strong> on line <strong>" . __LINE__ . 
"</strong><br />");
   336         if ($this->focus_id > 0) {
   337             $path = $this->lm_tree->getPathId($this->current_page);
   340             if (!in_array($this->focus_id, 
$path)) {
   342                     "tpl.out_of_focus_message.html",
   345                     "Modules/LearningModule"   347                 $mtpl->setVariable(
"MESSAGE", $this->
lng->txt(
"cont_out_of_focus_message"));
   348                 $mtpl->setVariable(
"TXT_SHOW_CONTENT", $this->
lng->txt(
"cont_show_content_after_focus"));
   350                 if ($this->requested_focus_return == 0 || 
ilObject::_lookupType((
int) $this->requested_focus_return, 
true) != 
"crs") {
   351                     $mtpl->setVariable(
"TXT_BACK_BEGINNING", $this->
lng->txt(
"cont_to_focus_beginning"));
   352                     $this->
ctrl->setParameter($this->parent_gui, 
"obj_id", $this->focus_id);
   353                     $mtpl->setVariable(
"LINK_BACK_TO_BEGINNING", $this->
ctrl->getLinkTarget($this->parent_gui, 
"layout"));
   354                     $this->
ctrl->setParameter($this->parent_gui, 
"obj_id", $this->requested_obj_id);
   356                     $mtpl->setVariable(
"TXT_BACK_BEGINNING", $this->
lng->txt(
"cont_to_focus_return_crs"));
   357                     $mtpl->setVariable(
"LINK_BACK_TO_BEGINNING", ilLink::_getLink($this->requested_focus_return));
   360                 $this->
ctrl->setParameter($this->parent_gui, 
"focus_id", null);
   361                 $mtpl->setVariable(
"LINK_SHOW_CONTENT", $this->
ctrl->getLinkTarget($this->parent_gui, 
"layout"));
   362                 $this->
ctrl->setParameter($this->parent_gui, 
"focus_id", $this->requested_obj_id);
   364                 $focus_mess = $mtpl->get();
   366                 $succ_page_id = $this->navigation_status->getSuccessorPageId();
   368                 if ($succ_page_id > 0) {
   369                     $path2 = $this->lm_tree->getPathId($succ_page_id);
   371                 if ($succ_page_id == 0 || !in_array($this->focus_id, $path2)) {
   373                         "tpl.out_of_focus_message.html",
   376                         "Modules/LearningModule"   378                     $mtpl->setVariable(
"MESSAGE", $this->
lng->txt(
"cont_out_of_focus_message_last_page"));
   379                     $mtpl->setVariable(
"TXT_SHOW_CONTENT", $this->
lng->txt(
"cont_show_content_after_focus"));
   381                     if ($this->requested_focus_return == 0 || 
ilObject::_lookupType($this->requested_focus_return, 
true) != 
"crs") {
   382                         $mtpl->setVariable(
"TXT_BACK_BEGINNING", $this->
lng->txt(
"cont_to_focus_beginning"));
   383                         $this->
ctrl->setParameter($this->parent_gui, 
"obj_id", $this->focus_id);
   384                         $mtpl->setVariable(
"LINK_BACK_TO_BEGINNING", $this->
ctrl->getLinkTarget($this->parent_gui, 
"layout"));
   385                         $this->
ctrl->setParameter($this->parent_gui, 
"obj_id", $this->requested_obj_id);
   387                         $mtpl->setVariable(
"TXT_BACK_BEGINNING", $this->
lng->txt(
"cont_to_focus_return_crs"));
   388                         $mtpl->setVariable(
"LINK_BACK_TO_BEGINNING", ilLink::_getLink($this->requested_focus_return));
   391                     $this->
ctrl->setParameter($this->parent_gui, 
"focus_id", null);
   392                     $mtpl->setVariable(
"LINK_SHOW_CONTENT", $this->
ctrl->getLinkTarget($this->parent_gui, 
"layout"));
   393                     $this->
ctrl->setParameter($this->parent_gui, 
"focus_id", $this->requested_obj_id);
   395                     $focus_mess = $mtpl->get();
   417         $tpl = 
new ilTemplate(
"tpl.page_message_screen.html", 
true, 
true, 
"Modules/LearningModule");
   418         $tpl->setVariable(
"TXT_PAGE_NO_PUBLIC_ACCESS", $a_content);
   446             "tpl.no_content_message.html",
   449             "Modules/LearningModule"   451         $mtpl->setVariable(
"MESSAGE", $this->
lng->txt(
"cont_no_page_in_chapter"));
   470             "tpl.no_content_message.html",
   473             "Modules/LearningModule"   475         $m = $this->
lng->txt(
"cont_page_currently_deactivated");
   477         if ($act_data[
"show_activation_info"] &&
   479             $m .= 
"<p>" . sprintf(
   480                 $this->
lng->txt(
"cont_page_activation_on"),
   487         $mtpl->setVariable(
"MESSAGE", $m);
   505         $ptpl = 
new ilTemplate(
"tpl.page_preconditions.html", 
true, 
true, 
"Modules/LearningModule");
   508         foreach ($conds as $cond) {
   509             $obj_link = ilLink::_getLink($cond[
"trigger_ref_id"]);
   510             $ptpl->setCurrentBlock(
"condition");
   512             $ptpl->setVariable(
"LINK_ITEM", $obj_link);
   513             if ($cond[
"operator"] == 
"passed") {
   514                 $cond_str = $this->
lng->txt(
"passed");
   516                 $cond_str = $this->
lng->txt(
"condition_" . $cond[
"operator"]);
   518             $ptpl->setVariable(
"VAL_CONDITION", $cond_str . 
" " . $cond[
"value"]);
   519             $ptpl->parseCurrentBlock();
   523             "TXT_MISSING_PRECONDITIONS",
   525                 $this->
lng->txt(
"cont_missing_preconditions"),
   529         $ptpl->setVariable(
"TXT_ITEM", $this->
lng->txt(
"object"));
   530         $ptpl->setVariable(
"TXT_CONDITION", $this->
lng->txt(
"condition"));
   533         $parent = $this->lm_tree->getParentId($topchap);
   534         $childs = $this->lm_tree->getChildsByType($parent, 
"st");
   537         foreach ($childs as $child) {
   538             if ($child[
"child"] == $topchap) {
   541             if ($i++ == ($j + 1)) {
   542                 $succ_node = $this->lm_tree->fetchSuccessorNode($child[
"child"], 
"pg");
   545         if ($succ_node != 
"") {
   546             $link = 
"<br /><a href=\"" .
   547                 $this->linker->getLink(
"layout", $succ_node[
"obj_id"], $this->requested_frame) .
   548                 "\">" . $this->
lng->txt(
"cont_skip_chapter") . 
"</a>";
   549             $ptpl->setVariable(
"LINK_SKIP_CHAPTER", $link);
 
static _getMissingPreconditionsOfPage(int $cont_ref_id, int $cont_obj_id, int $page_id)
gets all missing preconditions of page 
 
const STATUS_NO_PAGE_IN_CHAPTER
 
static _isPagePublic(int $a_node_id, bool $a_check_public_mode=false)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
renderNoPageAccess()
Render info message, if page is not accessible in public area. 
 
renderNoPageInChapterMessage()
Render no page in chapter message. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
ilLMPresentationLinker $linker
 
static _getInstance(int $a_usr_id)
 
renderMessageScreen(string $a_content)
Render message screen. 
 
renderNavRestrictionDueToQuestions()
Render message if navigation to page is not allowed due to unanswered questions. 
 
int $requested_focus_return
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
 
static _lookupActivationData(int $a_id, string $a_parent_type, string $a_lang="-")
Lookup activation data. 
 
const STATUS_CORRECT_ANSWER_MISSING
 
render(int $a_head_foot_page_id=0)
 
static _updateLastAccess(int $a_user_id, int $a_lm_ref_id, int $a_page_id)
 
static makeDirParents(string $a_dir)
Create a new directory and all parent directories. 
 
const STATUS_FAILED_PRECONDITIONS
 
static now()
Return current timestamp in Y-m-d H:i:s format. 
 
static _lookupTitle(int $a_obj_id)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
ilLMNavigationStatus $navigation_status
 
bool $chapter_has_no_active_page
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static _lookupTitle(int $obj_id)
 
renderPreconditionsOfPage()
Render preconditions of the page. 
 
static _checkPreconditionsOfPage(int $cont_ref_id, int $cont_obj_id, int $page_id)
checks whether the preconditions of a page are fulfilled or not 
 
const STATUS_DEACTIVATED_PAGE
 
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
setScreenIdComponent(string $a_comp)
 
Extension of ilPageObjectGUI for learning modules. 
 
ilLMPresentationGUI $parent_gui
 
handleCodeParagraph(int $page_id, int $paragraph_id, string $title, string $text)
 
static getInstance(int $obj_id)
 
renderDeactivatedPageMessage()
 
static lookupParentId(int $a_id, string $a_type)
 
getSettings()
Get learning module settings. 
 
renderNoPageFoundMessage()
Render no page found message. 
 
__construct(ilLMPresentationService $service, ilLMPresentationGUI $parent_gui, ilLanguage $lng, ilCtrl $ctrl, ilAccessHandler $access, ilObjUser $user, ilHelpGUI $help, int $requested_obj_id)
 
static _exists(int $a_id)
checks wether a lm content object with specified id exists or not 
 
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...
 
static _lookupType(int $a_obj_id, int $a_lm_id=0)
 
const STATUS_NO_PUBLIC_ACCESS
 
renderNoPublicAccess()
Render info message, if page is not accessible in public area. 
 
static _lookupType(int $id, bool $reference=false)
 
const STATUS_NO_PAGE_FOUND
 
static _getMissingPreconditionsTopChapter(int $cont_obj_ref_id, int $cont_obj_id, int $page_id)
get top chapter of page for that any precondition is missing 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
Main service init and factory. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...