/** * standard implementation for title, maybe overwritten by derived classes */ function buildTitle($a_title, $a_id, $a_type) { if ($a_type == "st") { return ilStructureObject::_getPresentationTitle($a_id, $this->lm_obj->isActiveNumbering(), false, $this->lm_obj->getId(), $this->lang); } if ($this->lm_obj->getTOCMode() == "chapters" || $a_type != "pg") { return $a_title; } else { if ($a_type == "pg") { return ilLMPageObject::_getPresentationTitle($a_id, $this->lm_obj->getPageHeader(), $this->lm_obj->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), true, $this->lm_obj->getId(), $this->lang); } } }
/** * Get affective title * * @param * @return */ static function _getPresentationTitle($a_node, $a_mode = IL_PAGE_TITLE, $a_include_numbers = false, $a_time_scheduled_activation = false, $a_force_content = false, $a_lm_id = 0, $a_lang = "-") { if ($a_lang == "") { $a_lang = "-"; } if ($a_node["type"] == "st") { return ilStructureObject::_getPresentationTitle($a_node["child"], $a_include_numbers, $a_time_scheduled_activation, $a_lm_id, $a_lang); } else { return ilLMPageObject::_getPresentationTitle($a_node["child"], $a_mode, $a_include_numbers, $a_time_scheduled_activation, $a_force_content, $a_lm_id, $a_lang); } }
function subchap() { global $tree, $ilCtrl, $lng, $ilUser; $this->setTabs(); $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.structure_edit.html", "Modules/LearningModule"); $num = 0; $this->tpl->setCurrentBlock("form"); $this->ctrl->setParameter($this, "backcmd", "subchap"); $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("HEADER_TEXT", $this->lng->txt("cont_subchapters")); $this->tpl->setVariable("CHECKBOX_TOP", IL_FIRST_NODE); $cnt = 0; $childs = $this->tree->getChilds($this->obj->getId()); foreach ($childs as $child) { if ($child["type"] != "st") { continue; } $this->tpl->setCurrentBlock("table_row"); // color changing $css_row = ilUtil::switchColor($cnt++, "tblrow1", "tblrow2"); // checkbox $this->tpl->setVariable("CHECKBOX_ID", $child["obj_id"]); $this->tpl->setVariable("CSS_ROW", $css_row); $this->tpl->setVariable("IMG_OBJ", ilUtil::getImagePath("icon_st.png")); // type $this->ctrl->setParameterByClass("ilStructureObjectGUI", "obj_id", $child["obj_id"]); $link = $this->ctrl->getLinkTargetByClass("ilStructureObjectGUI", "view"); $this->tpl->setVariable("LINK_TARGET", $link); // title $this->tpl->setVariable("TEXT_CONTENT", ilStructureObject::_getPresentationTitle($child["obj_id"], $this->content_object->isActiveNumbering())); $this->tpl->parseCurrentBlock(); } if ($cnt == 0) { $this->tpl->setCurrentBlock("notfound"); $this->tpl->setVariable("NUM_COLS", 3); $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found")); $this->tpl->parseCurrentBlock(); } //else //{ // SHOW VALID ACTIONS $this->tpl->setVariable("NUM_COLS", 3); $acts = array("delete" => "delete", "cutChapter" => "cut", "copyChapter" => "copyChapter"); if ($ilUser->clipboardHasObjectsOfType("st")) { $acts["pasteChapter"] = "pasteChapter"; } $this->showActions($acts); //} // SHOW POSSIBLE SUB OBJECTS $this->tpl->setVariable("NUM_COLS", 3); //$this->showPossibleSubObjects("st"); $subobj = array("st"); $opts = ilUtil::formSelect(12, "new_type", $subobj); //$this->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.png")); $this->tpl->setCurrentBlock("add_object"); $this->tpl->setVariable("SELECT_OBJTYPE", $opts); //$this->tpl->setVariable("FORMACTION_OBJ_ADD", "adm_object.php?cmd=create&ref_id=".$_GET["ref_id"]); $this->tpl->setVariable("BTN_NAME", "create"); $this->tpl->setVariable("TXT_ADD", $this->lng->txt("insert")); $this->tpl->parseCurrentBlock(); //$this->tpl->setVariable("NUM_COLS", 2); //$this->showPossibleSubObjects("st"); $this->tpl->setCurrentBlock("form"); $this->tpl->parseCurrentBlock(); $ilCtrl->setParameter($this, "obj_id", $_GET["obj_id"]); }
/** * presentation title doesn't have to be page title, it may be * chapter title + page title or chapter title only, depending on settings * * @param string $a_mode IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER */ function _getPresentationTitle($a_pg_id, $a_mode = IL_CHAPTER_TITLE, $a_include_numbers = false, $a_time_scheduled_activation = false, $a_force_content = false) { global $ilDB; // select $query = "SELECT * FROM lm_data WHERE obj_id = " . $ilDB->quote($a_pg_id, "integer"); $pg_set = $ilDB->query($query); $pg_rec = $ilDB->fetchAssoc($pg_set); if ($a_mode == IL_NO_HEADER && !$a_force_content) { return ""; } $tree = new ilTree($pg_rec["lm_id"]); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); if ($a_mode == IL_PAGE_TITLE) { $nr = ""; return $nr . $pg_rec["title"]; } if ($tree->isInTree($pg_rec["obj_id"])) { $pred_node = $tree->fetchPredecessorNode($pg_rec["obj_id"], "st"); $childs = $tree->getChildsByType($pred_node["obj_id"], "pg"); $cnt_str = ""; if (count($childs) > 1) { $cnt = 0; foreach ($childs as $child) { include_once "./Services/COPage/classes/class.ilPageObject.php"; $active = ilPageObject::_lookupActive($child["obj_id"], ilObject::_lookupType($pg_rec["lm_id"]), $a_time_scheduled_activation); if (!$active) { $act_data = ilPageObject::_lookupActivationData((int) $child["obj_id"], ilObject::_lookupType($pg_rec["lm_id"])); if ($act_data["show_activation_info"] && ilUtil::now() < $act_data["activation_start"]) { $active = true; } } if ($child["type"] != "pg" || $active) { $cnt++; } if ($child["obj_id"] == $pg_rec["obj_id"]) { $cur_cnt = $cnt; } } if ($cnt > 1) { $cnt_str = " (" . $cur_cnt . "/" . $cnt . ")"; } } require_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; //$struct_obj =& new ilStructureObject($pred_node["obj_id"]); //return $struct_obj->getTitle(); return ilStructureObject::_getPresentationTitle($pred_node["obj_id"], $a_include_numbers) . $cnt_str; //return $pred_node["title"].$cnt_str; } else { return $pg_rec["title"]; } }
/** * presentation title doesn't have to be page title, it may be * chapter title + page title or chapter title only, depending on settings * * @param string $a_mode IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER */ static function _getPresentationTitle($a_pg_id, $a_mode = IL_CHAPTER_TITLE, $a_include_numbers = false, $a_time_scheduled_activation = false, $a_force_content = false, $a_lm_id = 0, $a_lang = "-") { if ($a_mode == IL_NO_HEADER && !$a_force_content) { return ""; } if ($a_lm_id == 0) { $a_lm_id = ilLMObject::_lookupContObjID($a_pg_id); } if ($a_lm_id == 0) { return ""; } // this is optimized when ilLMObject::preloadDataByLM is invoked (e.g. done in ilLMExplorerGUI) $title = ilLMObject::_lookupTitle($a_pg_id); // this is also optimized since ilObjectTranslation re-uses instances for one lm include_once "./Services/Object/classes/class.ilObjectTranslation.php"; $ot = ilObjectTranslation::getInstance($a_lm_id); $languages = $ot->getLanguages(); if ($a_lang != "-" && $ot->getContentActivated() && isset($languages[$a_lang])) { include_once "./Modules/LearningModule/classes/class.ilLMObjTranslation.php"; $lmobjtrans = new ilLMObjTranslation($a_pg_id, $a_lang); if ($lmobjtrans->getTitle() != "") { $title = $lmobjtrans->getTitle(); } } if ($a_mode == IL_PAGE_TITLE) { return $title; } include_once "./Modules/LearningModule/classes/class.ilLMTree.php"; $tree = ilLMTree::getInstance($a_lm_id); if ($tree->isInTree($a_pg_id)) { $pred_node = $tree->fetchPredecessorNode($a_pg_id, "st"); $childs = $tree->getChildsByType($pred_node["obj_id"], "pg"); $cnt_str = ""; if (count($childs) > 1) { $cnt = 0; foreach ($childs as $child) { include_once "./Modules/LearningModule/classes/class.ilLMPage.php"; $active = ilLMPage::_lookupActive($child["obj_id"], ilObject::_lookupType($a_lm_id), $a_time_scheduled_activation); if (!$active) { $act_data = ilLMPage::_lookupActivationData((int) $child["obj_id"], ilObject::_lookupType($a_lm_id)); if ($act_data["show_activation_info"] && ilUtil::now() < $act_data["activation_start"]) { $active = true; } } if ($child["type"] != "pg" || $active) { $cnt++; } if ($child["obj_id"] == $a_pg_id) { $cur_cnt = $cnt; } } if ($cnt > 1) { $cnt_str = " (" . $cur_cnt . "/" . $cnt . ")"; } } require_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; //$struct_obj =& new ilStructureObject($pred_node["obj_id"]); //return $struct_obj->getTitle(); return ilStructureObject::_getPresentationTitle($pred_node["obj_id"], $a_include_numbers, false, 0, $a_lang) . $cnt_str; //return $pred_node["title"].$cnt_str; } else { return $title; } }
/** * show print view */ function showPrintView() { global $ilUser, $lng, $ilCtrl; include_once "./Modules/LearningModule/classes/class.ilLMPage.php"; if (!$this->lm->isActivePrintView()) { return; } $this->renderPageTitle(); $c_obj_id = $this->getCurrentPageId(); // set values according to selection if ($_POST["sel_type"] == "page") { if (!is_array($_POST["obj_id"]) || !in_array($c_obj_id, $_POST["obj_id"])) { $_POST["obj_id"][] = $c_obj_id; } } if ($_POST["sel_type"] == "chapter" && $c_obj_id > 0) { $path = $this->lm_tree->getPathFull($c_obj_id); $chap_id = $path[1]["child"]; if ($chap_id > 0) { $_POST["obj_id"][] = $chap_id; } } //var_dump($_GET); //var_dump($_POST); // set style sheets if (!$this->offlineMode()) { $this->tpl->setVariable("LOCATION_STYLESHEET", ilObjStyleSheet::getContentPrintStyle()); } else { $style_name = $ilUser->getPref("style") . ".css"; $this->tpl->setVariable("LOCATION_STYLESHEET", "./style/" . $style_name); } // content style $this->tpl->setCurrentBlock("ContentStyle"); if (!$this->offlineMode()) { $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath($this->lm->getStyleSheetId())); } else { $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", "content_style/content.css"); } $this->tpl->parseCurrentBlock(); // syntax style $this->tpl->setCurrentBlock("SyntaxStyle"); $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath()); $this->tpl->parseCurrentBlock(); //$this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $this->tpl->addBlockFile("CONTENT", "content", "tpl.lm_print_view.html", true); // set title header $this->tpl->setVariable("HEADER", $this->lm->getTitle()); $nodes = $this->lm_tree->getSubtree($this->lm_tree->getNodeData($this->lm_tree->getRootId())); include_once "./Modules/LearningModule/classes/class.ilLMPageGUI.php"; include_once "./Modules/LearningModule/classes/class.ilLMPageObject.php"; include_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; $act_level = 99999; $activated = false; $glossary_links = array(); $output_header = false; $media_links = array(); // get header and footer if ($this->lm->getFooterPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) { if (ilLMObject::_exists($this->lm->getFooterPage())) { $page_object_gui = $this->getLMPageGUI($this->lm->getFooterPage()); include_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $page_object_gui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId($this->lm->getStyleSheetId(), "lm")); // determine target frames for internal links $page_object_gui->setLinkFrame($_GET["frame"]); $page_object_gui->setOutputMode("print"); $page_object_gui->setPresentationTitle(""); $page_object_gui->setFileDownloadLink("#"); $page_object_gui->setFullscreenLink("#"); $page_object_gui->setSourceCodeDownloadScript("#"); $footer_page_content = $page_object_gui->showPage(); } } if ($this->lm->getHeaderPage() > 0 && !$this->lm->getHideHeaderFooterPrint()) { if (ilLMObject::_exists($this->lm->getHeaderPage())) { $page_object_gui = $this->getLMPageGUI($this->lm->getHeaderPage()); include_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $page_object_gui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId($this->lm->getStyleSheetId(), "lm")); // determine target frames for internal links $page_object_gui->setLinkFrame($_GET["frame"]); $page_object_gui->setOutputMode("print"); $page_object_gui->setPresentationTitle(""); $page_object_gui->setFileDownloadLink("#"); $page_object_gui->setFullscreenLink("#"); $page_object_gui->setSourceCodeDownloadScript("#"); $header_page_content = $page_object_gui->showPage(); } } // add free selected pages if (is_array($_POST["obj_id"])) { foreach ($_POST["obj_id"] as $k) { if ($k > 0 && !$this->lm_tree->isInTree($k)) { if (ilLMObject::_lookupType($k) == "pg") { $nodes[] = array("obj_id" => $k, "type" => "pg", "free" => true); } } } } else { ilUtil::sendFailure($lng->txt("cont_print_no_page_selected"), true); $ilCtrl->redirect($this, "showPrintViewSelection"); } foreach ($nodes as $node_key => $node) { // check page activation $active = ilLMPage::_lookupActive($node["obj_id"], $this->lm->getType(), $this->lm_set->get("time_scheduled_page_activation")); if ($node["type"] == "pg" && !$active) { continue; } // print all subchapters/subpages if higher chapter // has been selected if ($node["depth"] <= $act_level) { if (is_array($_POST["obj_id"]) && in_array($node["obj_id"], $_POST["obj_id"])) { $act_level = $node["depth"]; $activated = true; } else { $act_level = 99999; $activated = false; } } if ($activated && ilObjContentObject::_checkPreconditionsOfPage($this->lm->getRefId(), $this->lm->getId(), $node["obj_id"])) { // output learning module header if ($node["type"] == "du") { $output_header = true; } // output chapter title if ($node["type"] == "st") { if (($ilUser->getId() == ANONYMOUS_USER_ID || $this->needs_to_be_purchased) && $this->lm_gui->object->getPublicAccessMode() == "selected") { if (!ilLMObject::_isPagePublic($node["obj_id"])) { continue; } } $chap = new ilStructureObject($this->lm, $node["obj_id"]); $this->tpl->setCurrentBlock("print_chapter"); $chapter_title = $chap->_getPresentationTitle($node["obj_id"], $this->lm->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), 0, $this->lang); $this->tpl->setVariable("CHAP_TITLE", $chapter_title); if ($this->lm->getPageHeader() == IL_CHAPTER_TITLE) { if ($nodes[$node_key + 1]["type"] == "pg") { $this->tpl->setVariable("CHAP_HEADER", $header_page_content); $did_chap_page_header = true; } } $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("print_block"); $this->tpl->parseCurrentBlock(); } // output page if ($node["type"] == "pg") { if (($ilUser->getId() == ANONYMOUS_USER_ID || $this->needs_to_be_purchased) && $this->lm_gui->object->getPublicAccessMode() == "selected") { if (!ilLMObject::_isPagePublic($node["obj_id"])) { continue; } } $this->tpl->setCurrentBlock("print_item"); // get page $page_id = $node["obj_id"]; $page_object_gui = $this->getLMPageGUI($page_id); $page_object = $page_object_gui->getPageObject(); include_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $page_object_gui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId($this->lm->getStyleSheetId(), "lm")); // get lm page $lm_pg_obj = new ilLMPageObject($this->lm, $page_id); $lm_pg_obj->setLMId($this->lm->getId()); // determine target frames for internal links $page_object_gui->setLinkFrame($_GET["frame"]); $page_object_gui->setOutputMode("print"); $page_object_gui->setPresentationTitle(""); if ($this->lm->getPageHeader() == IL_PAGE_TITLE || $node["free"] === true) { $page_title = ilLMPageObject::_getPresentationTitle($lm_pg_obj->getId(), $this->lm->getPageHeader(), $this->lm->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), false, 0, $this->lang); // prevent page title after chapter title // that have the same content if ($this->lm->isActiveNumbering()) { $chapter_title = trim(substr($chapter_title, strpos($chapter_title, " "))); } if ($page_title != $chapter_title) { $page_object_gui->setPresentationTitle($page_title); } } // handle header / footer $hcont = $header_page_content; $fcont = $footer_page_content; if ($this->lm->getPageHeader() == IL_CHAPTER_TITLE) { if ($did_chap_page_header) { $hcont = ""; } if ($nodes[$node_key + 1]["type"] == "pg" && !($nodes[$node_key + 1]["depth"] <= $act_level && !in_array($nodes[$node_key + 1]["obj_id"], $_POST["obj_id"]))) { $fcont = ""; } } $page_object_gui->setFileDownloadLink("#"); $page_object_gui->setFullscreenLink("#"); $page_object_gui->setSourceCodeDownloadScript("#"); $page_content = $page_object_gui->showPage(); if ($this->lm->getPageHeader() != IL_PAGE_TITLE) { $this->tpl->setVariable("CONTENT", $hcont . $page_content . $fcont); } else { $this->tpl->setVariable("CONTENT", $hcont . $page_content . $fcont . "<br />"); } $chapter_title = ""; $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("print_block"); $this->tpl->parseCurrentBlock(); // get internal links $int_links = ilInternalLink::_getTargetsOfSource($this->lm->getType() . ":pg", $node["obj_id"]); $got_mobs = false; foreach ($int_links as $key => $link) { if ($link["type"] == "git" && ($link["inst"] == IL_INST_ID || $link["inst"] == 0)) { $glossary_links[$key] = $link; } if ($link["type"] == "mob" && ($link["inst"] == IL_INST_ID || $link["inst"] == 0)) { $got_mobs = true; $mob_links[$key] = $link; } } // this is not cool because of performance reasons // unfortunately the int link table does not // store the target frame (we want to append all linked // images but not inline images (i.e. mobs with no target // frame)) if ($got_mobs) { $page_object->buildDom(); $links = $page_object->getInternalLinks(); foreach ($links as $link) { if ($link["Type"] == "MediaObject" && $link["TargetFrame"] != "" && $link["TargetFrame"] != "None") { $media_links[] = $link; } } } } } } $annex_cnt = 0; $annexes = array(); // glossary if (count($glossary_links) > 0 && !$this->lm->isActivePreventGlossaryAppendix()) { include_once "./Modules/Glossary/classes/class.ilGlossaryTerm.php"; include_once "./Modules/Glossary/classes/class.ilGlossaryDefinition.php"; // sort terms $terms = array(); foreach ($glossary_links as $key => $link) { $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"]); $terms[$term . ":" . $key] = array("key" => $key, "link" => $link, "term" => $term); } $terms = ilUtil::sortArray($terms, "term", "asc"); //ksort($terms); foreach ($terms as $t) { $link = $t["link"]; $key = $t["key"]; $defs = ilGlossaryDefinition::getDefinitionList($link["id"]); $def_cnt = 1; // output all definitions of term foreach ($defs as $def) { // definition + number, if more than 1 definition if (count($defs) > 1) { $this->tpl->setCurrentBlock("def_title"); $this->tpl->setVariable("TXT_DEFINITION", $this->lng->txt("cont_definition") . " " . $def_cnt++); $this->tpl->parseCurrentBlock(); } include_once "./Modules/Glossary/classes/class.ilGlossaryDefPageGUI.php"; $page_gui = new ilGlossaryDefPageGUI($def["id"]); $page_gui->setTemplateOutput(false); $page_gui->setOutputMode("print"); $this->tpl->setCurrentBlock("definition"); $page_gui->setFileDownloadLink("#"); $page_gui->setFullscreenLink("#"); $page_gui->setSourceCodeDownloadScript("#"); $output = $page_gui->showPage(); $this->tpl->setVariable("VAL_DEFINITION", $output); $this->tpl->parseCurrentBlock(); } // output term $this->tpl->setCurrentBlock("term"); $this->tpl->setVariable("VAL_TERM", $term = ilGlossaryTerm::_lookGlossaryTerm($link["id"])); $this->tpl->parseCurrentBlock(); } // output glossary header $annex_cnt++; $this->tpl->setCurrentBlock("glossary"); $annex_title = $this->lng->txt("cont_annex") . " " . chr(64 + $annex_cnt) . ": " . $this->lng->txt("glo"); $this->tpl->setVariable("TXT_GLOSSARY", $annex_title); $this->tpl->parseCurrentBlock(); $annexes[] = $annex_title; } // referenced images if (count($media_links) > 0) { include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php"; include_once "./Services/MediaObjects/classes/class.ilMediaItem.php"; foreach ($media_links as $media) { if (substr($media["Target"], 0, 4) == "il__") { $arr = explode("_", $media["Target"]); $id = $arr[count($arr) - 1]; $med_obj = new ilObjMediaObject($id); $med_item = $med_obj->getMediaItem("Standard"); if (is_object($med_item)) { if (is_int(strpos($med_item->getFormat(), "image"))) { $this->tpl->setCurrentBlock("ref_image"); // image source if ($med_item->getLocationType() == "LocalFile") { $this->tpl->setVariable("IMG_SOURCE", ilUtil::getWebspaceDir("output") . "/mobs/mm_" . $id . "/" . $med_item->getLocation()); } else { $this->tpl->setVariable("IMG_SOURCE", $med_item->getLocation()); } if ($med_item->getCaption() != "") { $this->tpl->setVariable("IMG_TITLE", $med_item->getCaption()); } else { $this->tpl->setVariable("IMG_TITLE", $med_obj->getTitle()); } $this->tpl->parseCurrentBlock(); } } } } // output glossary header $annex_cnt++; $this->tpl->setCurrentBlock("ref_images"); $annex_title = $this->lng->txt("cont_annex") . " " . chr(64 + $annex_cnt) . ": " . $this->lng->txt("cont_ref_images"); $this->tpl->setVariable("TXT_REF_IMAGES", $annex_title); $this->tpl->parseCurrentBlock(); $annexes[] = $annex_title; } // output learning module title and toc if ($output_header) { $this->tpl->setCurrentBlock("print_header"); $this->tpl->setVariable("LM_TITLE", $this->lm->getTitle()); if ($this->lm->getDescription() != "none") { include_once "Services/MetaData/classes/class.ilMD.php"; $md = new ilMD($this->lm->getId(), 0, $this->lm->getType()); $md_gen = $md->getGeneral(); foreach ($md_gen->getDescriptionIds() as $id) { $md_des = $md_gen->getDescription($id); $description = $md_des->getDescription(); } $this->tpl->setVariable("LM_DESCRIPTION", $description); } $this->tpl->parseCurrentBlock(); // output toc $nodes2 = $nodes; foreach ($nodes2 as $node2) { if ($node2["type"] == "st" && ilObjContentObject::_checkPreconditionsOfPage($this->lm->getRefId(), $this->lm->getId(), $node2["obj_id"])) { for ($j = 1; $j < $node2["depth"]; $j++) { $this->tpl->setCurrentBlock("indent"); $this->tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.png")); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("toc_entry"); $this->tpl->setVariable("TXT_TOC_TITLE", ilStructureObject::_getPresentationTitle($node2["obj_id"], $this->lm->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), 0, $this->lang)); $this->tpl->parseCurrentBlock(); } } // annexes foreach ($annexes as $annex) { $this->tpl->setCurrentBlock("indent"); $this->tpl->setVariable("IMG_BLANK", ilUtil::getImagePath("browser/blank.png")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("toc_entry"); $this->tpl->setVariable("TXT_TOC_TITLE", $annex); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("toc"); $this->tpl->setVariable("TXT_TOC", $this->lng->txt("cont_toc")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("print_start_block"); $this->tpl->parseCurrentBlock(); } // output author information include_once 'Services/MetaData/classes/class.ilMD.php'; $md = new ilMD($this->lm->getId(), 0, $this->lm->getType()); if (is_object($lifecycle = $md->getLifecycle())) { $sep = $author = ""; foreach ($ids = $lifecycle->getContributeIds() as $con_id) { $md_con = $lifecycle->getContribute($con_id); if ($md_con->getRole() == "Author") { foreach ($ent_ids = $md_con->getEntityIds() as $ent_id) { $md_ent = $md_con->getEntity($ent_id); $author = $author . $sep . $md_ent->getEntity(); $sep = ", "; } } } if ($author != "") { $this->lng->loadLanguageModule("meta"); $this->tpl->setCurrentBlock("author"); $this->tpl->setVariable("TXT_AUTHOR", $this->lng->txt("meta_author")); $this->tpl->setVariable("LM_AUTHOR", $author); $this->tpl->parseCurrentBlock(); } } // output copyright information if (is_object($md_rights = $md->getRights())) { $copyright = $md_rights->getDescription(); include_once 'Services/MetaData/classes/class.ilMDUtils.php'; $copyright = ilMDUtils::_parseCopyright($copyright); if ($copyright != "") { $this->lng->loadLanguageModule("meta"); $this->tpl->setCurrentBlock("copyright"); $this->tpl->setVariable("TXT_COPYRIGHT", $this->lng->txt("meta_copyright")); $this->tpl->setVariable("LM_COPYRIGHT", $copyright); $this->tpl->parseCurrentBlock(); } } $this->tpl->show(false); }
/** * show chapters */ function chapters() { global $tree, $lng, $ilCtrl, $ilUser; $this->setTabs(); $this->setContentSubTabs("chapters"); if ($ilUser->getPref("lm_js_chapter_editing") != "disable") { $ilCtrl->setParameter($this, "backcmd", "chapters"); include_once "./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php"; $form_gui = new ilChapterHierarchyFormGUI($this->object->getType()); $form_gui->setFormAction($ilCtrl->getFormAction($this)); $form_gui->setTitle($this->object->getTitle()); $form_gui->setIcon(ilUtil::getImagePath("icon_lm.png")); $form_gui->setTree($this->lm_tree); $form_gui->setMaxDepth(0); $form_gui->setCurrentTopNodeId($this->tree->getRootId()); $form_gui->addMultiCommand($lng->txt("delete"), "delete"); $form_gui->addMultiCommand($lng->txt("cut"), "cutItems"); $form_gui->addMultiCommand($lng->txt("copy"), "copyItems"); if ($this->object->getLayoutPerPage()) { $form_gui->addMultiCommand($lng->txt("cont_set_layout"), "setPageLayoutInHierarchy"); } $form_gui->setDragIcon(ilUtil::getImagePath("icon_st_s.png")); $form_gui->addCommand($lng->txt("cont_save_all_titles"), "saveAllTitles"); $up_gui = $this->object->getType() == "dbk" ? "ilobjdlbookgui" : "ilobjlearningmodulegui"; $form_gui->setExplorerUpdater("tree", "tree_div", $ilCtrl->getLinkTargetByClass($up_gui, "explorer", "", true)); $ctpl = new ilTemplate("tpl.chap_and_pages.html", true, true, "Modules/LearningModule"); $ctpl->setVariable("HIERARCHY_FORM", $form_gui->getHTML()); $ilCtrl->setParameter($this, "obj_id", ""); $ctpl->setVariable("HREF_NO_JS_EDIT", $ilCtrl->getLinkTarget($this, "deactivateJSChapterEditing")); $ctpl->setVariable("TXT_NO_JS_EDIT", $lng->txt("cont_not_js_chap_editing")); $this->tpl->setContent($ctpl->get()); } else { $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.structure_edit.html", "Modules/LearningModule"); $num = 0; $this->ctrl->setParameter($this, "backcmd", "chapters"); $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("HEADER_TEXT", $this->lng->txt("cont_chapters")); $this->tpl->setVariable("CHECKBOX_TOP", IL_FIRST_NODE); $cnt = 0; $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId()); foreach ($childs as $child) { if ($child["type"] != "st") { continue; } $this->tpl->setCurrentBlock("table_row"); // color changing $css_row = ilUtil::switchColor($cnt++, "tblrow1", "tblrow2"); // checkbox $this->tpl->setVariable("CHECKBOX_ID", $child["obj_id"]); $this->tpl->setVariable("CSS_ROW", $css_row); $this->tpl->setVariable("IMG_OBJ", ilUtil::getImagePath("icon_st.png")); // link $this->ctrl->setParameter($this, "backcmd", ""); $this->ctrl->setParameterByClass("ilStructureObjectGUI", "obj_id", $child["obj_id"]); $this->tpl->setVariable("LINK_TARGET", $this->ctrl->getLinkTargetByClass("ilStructureObjectGUI", "view")); // title $this->tpl->setVariable("TEXT_CONTENT", ilStructureObject::_getPresentationTitle($child["obj_id"], $this->object->isActiveNumbering())); $this->tpl->parseCurrentBlock(); } $paste_active = false; if ($ilUser->clipboardHasObjectsOfType("st")) { $paste_active = true; } if ($cnt == 0 && !$paste_active) { $this->tpl->setCurrentBlock("notfound"); $this->tpl->setVariable("NUM_COLS", 3); $this->tpl->setVariable("TXT_OBJECT_NOT_FOUND", $this->lng->txt("obj_not_found")); $this->tpl->parseCurrentBlock(); } else { // SHOW VALID ACTIONS $this->tpl->setVariable("NUM_COLS", 3); if ($cnt > 0) { $acts = array("delete" => "delete", "cutChapter" => "cut", "copyChapter" => "copyChapter"); } if ($paste_active) { $acts["pasteChapter"] = "pasteChapter"; } $this->showActions($acts); } // SHOW POSSIBLE SUB OBJECTS $this->tpl->setVariable("NUM_COLS", 3); $subobj = array("st"); $opts = ilUtil::formSelect(12, "new_type", $subobj); $this->tpl->setCurrentBlock("add_object"); $this->tpl->setVariable("SELECT_OBJTYPE", $opts); $this->tpl->setVariable("BTN_NAME", "create"); $this->tpl->setVariable("TXT_ADD", $this->lng->txt("insert")); $this->tpl->parseCurrentBlock(); $this->tpl->setCurrentBlock("form"); $this->tpl->parseCurrentBlock(); $this->tpl->setVariable("HREF_JS_EDIT", $ilCtrl->getLinkTarget($this, "activateJSChapterEditing")); $this->tpl->setVariable("TXT_JS_EDIT", $lng->txt("cont_js_chap_editing")); } }
/** * Get node content * * @param array $a_node node array * @return string node content */ function getNodeContent($a_node) { if ($a_node["type"] == "st") { return ilStructureObject::_getPresentationTitle($a_node["child"], $this->lm->isActiveNumbering(), false, $this->lm->getId(), $this->lang); } else { if ($a_node["type"] == "pg") { return ilLMPageObject::_getPresentationTitle($a_node["child"], $this->lm->getPageHeader(), $this->lm->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), true, $this->lm->getId(), $this->lang); } else { if ($a_node["child"] == $this->getNodeId($this->getRootNode())) { return $this->lm->getTitle(); } } } if ($a_node["type"] == "pg") { return ilLMPageObject::_getPresentationTitle($a_node["child"], $this->lm->getPageHeader(), $this->lm->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation"), true, $this->lm->getId(), $this->lang); } return $a_node["title"]; }
/** * standard implementation for title, maybe overwritten by derived classes */ function buildTitle($a_title, $a_id, $a_type) { global $lng; include_once "./Modules/LearningModule/classes/class.ilObjContentObject.php"; $access_str = ""; if (!ilObjContentObject::_checkPreconditionsOfPage($_GET['ref_id'], ilObject::_lookupObjId($_GET["ref_id"]), $a_id)) { $access_str = " (" . $lng->txt("cont_no_access") . ")"; } if ($a_type == "st") { return ilStructureObject::_getPresentationTitle($a_id, $this->lm_obj->isActiveNumbering()) . $access_str; } if ($this->lm_obj->getTOCMode() == "chapters" || $a_type != "pg") { return $a_title . $access_str; } else { if ($a_type == "pg") { return ilLMPageObject::_getPresentationTitle($a_id, $this->lm_obj->getPageHeader(), $this->lm_obj->isActiveNumbering(), $this->lm_set->get("time_scheduled_page_activation")) . $access_str; } } }
/** * standard implementation for title, maybe overwritten by derived classes */ function buildTitle($a_title, $a_id, $a_type) { //echo "<br>-$a_title-$a_type-$a_id-"; if ($a_type == "st") { return ilStructureObject::_getPresentationTitle($a_id, $this->lm_obj->isActiveNumbering()); } return $a_title; /* if ($this->lm_obj->getTOCMode() == "chapters" || $a_type != "pg") { return $a_title; } else { if ($a_type == "pg") { return ilLMPageObject::_getPresentationTitle($a_id, $this->lm_obj->getPageHeader(), $this->lm_obj->isActiveNumbering()); } }*/ }