public function getHTML() { global $ilCtrl, $tpl, $lng, $ilUser; if (!$this->isContainer) { #return ''; } if ($_GET['baseClass'] == 'ilSearchController') { // return ''; } include_once "Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); $this->tpl = new ilTemplate('tpl.main_menu_search.html', true, true, 'Services/Search'); if ($ilUser->getId() != ANONYMOUS_USER_ID) { if (ilSearchSettings::getInstance()->isLuceneUserSearchEnabled() or (int) $_GET['ref_id']) { $this->tpl->setCurrentBlock("position"); $this->tpl->setVariable('TXT_GLOBALLY', $lng->txt("search_globally")); $this->tpl->setVariable('ROOT_ID', ROOT_FOLDER_ID); $this->tpl->parseCurrentBlock(); } else { $this->tpl->setCurrentBlock("position_hid"); $this->tpl->setVariable('ROOT_ID_HID', ROOT_FOLDER_ID); $this->tpl->parseCurrentBlock(); } if ((int) $_GET['ref_id']) { $this->tpl->setCurrentBlock('position_rep'); $this->tpl->setVariable('TXT_CURRENT_POSITION', $lng->txt("search_at_current_position")); $this->tpl->setVariable('REF_ID', (int) $_GET["ref_id"]); $this->tpl->parseCurrentBlock(); } } if ($ilUser->getId() != ANONYMOUS_USER_ID && ilSearchSettings::getInstance()->isLuceneUserSearchEnabled()) { $this->tpl->setCurrentBlock('usr_search'); $this->tpl->setVariable('TXT_USR_SEARCH', $this->lng->txt('search_users')); $this->tpl->parseCurrentBlock(); } $this->tpl->setVariable('FORMACTION', 'ilias.php?baseClass=ilSearchController&cmd=post' . '&rtoken=' . $ilCtrl->getRequestToken() . '&fallbackCmd=remoteSearch'); $this->tpl->setVariable('BTN_SEARCH', $this->lng->txt('search')); // $this->tpl->setVariable('ID_AUTOCOMPLETE', "mm_sr_auto"); $this->tpl->setVariable('AC_DATASOURCE', "ilias.php?baseClass=ilSearchController&cmd=autoComplete"); $this->tpl->setVariable('IMG_MM_SEARCH', ilUtil::img(ilUtil::getImagePath("icon_seas.svg"), $lng->txt("search"))); if ($ilUser->getId() != ANONYMOUS_USER_ID) { $this->tpl->setVariable('HREF_SEARCH_LINK', "ilias.php?baseClass=ilSearchController"); $this->tpl->setVariable('TXT_SEARCH_LINK', $lng->txt("last_search_result")); } // #10555 - we need the overlay for the autocomplete which is always active $this->tpl->setVariable('TXT_SEARCH', $lng->txt("search")); include_once "./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php"; $ov = new ilOverlayGUI("mm_search_menu"); //$ov->setTrigger("main_menu_search", "none", // "main_menu_search", "tr", "br"); //$ov->setAnchor("main_menu_search", "tr", "br"); $ov->setAutoHide(false); $ov->add(); return $this->tpl->get(); }
/** * Get trigger table */ function getImageMapTableHTML() { global $tpl, $ilToolbar, $lng, $ilCtrl; include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQueryUI(); $tpl->addJavascript("./Services/COPage/js/ilCOPagePres.js"); $tpl->addJavascript("./Services/COPage/js/ilCOPagePCInteractiveImage.js"); include_once "./Services/Accordion/classes/class.ilAccordionGUI.php"; ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); $ilToolbar->addText($lng->txt("cont_drag_element_click_save")); $ilToolbar->setId("drag_toolbar"); $ilToolbar->setHidden(true); $ilToolbar->addButton($lng->txt("save"), "#", "", "", "", "save_pos_button"); $ilToolbar->addButton($lng->txt("cancel"), $ilCtrl->getLinkTarget($this, "editMapAreas")); include_once "./Services/COPage/classes/class.ilPCIIMTriggerTableGUI.php"; $image_map_table = new ilPCIIMTriggerTableGUI($this, "editMapAreas", $this->content_obj, $this->getParentNodeName()); return $image_map_table->getHTML(); }
/** * */ protected function addBlockSorting() { if ($this->getSide() == IL_COL_CENTER && $this->getEnableMovement()) { /** * @var $ilBrowser ilBrowser * @var $tpl ilTemplate * @var $ilCtrl ilCtrl */ global $ilBrowser, $tpl, $ilCtrl; include_once 'Services/jQuery/classes/class.iljQueryUtil.php'; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); if ($ilBrowser->isMobile() || $ilBrowser->isIpad()) { $tpl->addJavaScript('./Services/jQuery/js/jquery.ui.touch-punch.min.js'); } $tpl->addJavaScript('./Services/Block/js/block_sorting.js'); // set the col_side parameter to pass the ctrl structure flow $ilCtrl->setParameter($this, 'col_side', IL_COL_CENTER); $this->tpl->setVariable('BLOCK_SORTING_STORAGE_URL', $ilCtrl->getLinkTarget($this, 'saveBlockSortingAsynch', '', true, false)); $this->tpl->setVariable('BLOCK_COLUMNS', json_encode(array('il_left_col', 'il_right_col'))); $this->tpl->setVariable('BLOCK_COLUMNS_SELECTOR', '#il_left_col,#il_right_col'); $this->tpl->setVariable('BLOCK_COLUMNS_PARAMETERS', json_encode(array(IL_COL_LEFT, IL_COL_RIGHT))); // restore col_side parameter $ilCtrl->setParameter($this, 'col_side', $this->getSide()); } }
function getTestOutput($active_id, $pass = NULL, $is_postponed = FALSE, $user_post_solution = FALSE) { // shuffle output $keys = array(); if (is_array($user_post_solution)) { $keys = $_SESSION["ordering_keys"]; } else { $keys = array_keys($this->object->answers); shuffle($keys); } $_SESSION["ordering_keys"] = $keys; // generate the question output include_once "./Services/UICore/classes/class.ilTemplate.php"; $template = new ilTemplate("tpl.il_as_qpl_ordering_output.html", TRUE, TRUE, "Modules/TestQuestionPool"); if ($this->object->getOrderingType() == OQ_NESTED_TERMS || $this->object->getOrderingType() == OQ_NESTED_PICTURES) { $this->object->setOutputType(OUTPUT_JAVASCRIPT); include_once 'Services/Form/classes/class.ilPropertyFormGUI.php'; include_once 'Modules/TestQuestionPool/classes/class.ilNestedOrderingGUI.php'; $answers = new ilNestedOrderingGUI($this->lng->txt("answers"), "answers"); $answers->setOrderingType($this->object->getOrderingType()); $shuffle = 1; $answers->setObjAnswersArray($this->object->answers, $shuffle); if ($this->object->getOrderingType() == OQ_NESTED_PICTURES) { $answers->setImagePath($this->object->getImagePath()); $answers->setImagePathWeb($this->object->getImagePathWeb()); $answers->setThumbPrefix($this->object->getThumbPrefix()); } $template->setCurrentBlock('nested_ordering_output'); $template->setVariable('NESTED_ORDERING', $answers->getHtml($shuffle)); $template->parseCurrentBlock(); $questiontext = $this->object->getQuestion(); $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE)); $questionoutput = $template->get(); $pageoutput = $this->outQuestionPage("", $is_postponed, $active_id, $questionoutput); return $pageoutput; } else { if ($this->object->getOutputType() == OUTPUT_JAVASCRIPT) { // BEGIN: add javascript code for javascript enabled ordering questions $this->tpl->addBlockFile("CONTENT_BLOCK", "head_content", "tpl.il_as_qpl_ordering_output_javascript.html", "Modules/TestQuestionPool"); $this->tpl->touchBlock("head_content"); require_once 'Services/jQuery/classes/class.iljQueryUtil.php'; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); // END: add javascript code for javascript enabled ordering questions // BEGIN: add additional stylesheet for javascript enabled ordering questions $this->tpl->setCurrentBlock("AdditionalStyle"); $this->tpl->setVariable("LOCATION_ADDITIONAL_STYLESHEET", ilUtil::getStyleSheetLocation("output", "test_javascript.css", "Modules/TestQuestionPool")); $this->tpl->parseCurrentBlock(); // END: add additional stylesheet for javascript enabled ordering questions // BEGIN: onsubmit form action for javascript enabled ordering questions $this->tpl->setVariable("ON_SUBMIT", "return saveOrder('orderlist');"); // END: onsubmit form action for javascript enabled ordering questions } // get the solution of the user for the active pass or from the last pass if allowed if ($active_id) { $solutions = NULL; include_once "./Modules/Test/classes/class.ilObjTest.php"; if (!ilObjTest::_getUsePreviousAnswers($active_id, true)) { if (is_null($pass)) { $pass = ilObjTest::_getPass($active_id); } } if (is_array($user_post_solution)) { $solutions = array(); foreach ($user_post_solution as $key => $value) { if (preg_match("/order_(\\d+)/", $key, $matches)) { foreach ($this->object->getAnswers() as $answeridx => $answer) { if ($answer->getRandomID() == $matches[1]) { array_push($solutions, array("value1" => $answeridx, "value2" => $value)); } } } } } else { $solutions =& $this->object->getSolutionValues($active_id, $pass); } if ($this->object->getOutputType() == OUTPUT_JAVASCRIPT) { $solution_script .= ""; $jssolutions = array(); foreach ($solutions as $idx => $solution_value) { if (strcmp($solution_value["value2"], "") != 0 && strcmp($solution_value["value1"], "") != 0) { $jssolutions[$solution_value["value2"]] = $solution_value["value1"]; } } if (count($jssolutions)) { ksort($jssolutions); $js = ""; foreach ($jssolutions as $key => $value) { if (is_object($this->object->getAnswer($value))) { $js .= "initialorder.push('id_" . $this->object->getAnswer($value)->getRandomID() . "');"; } } $js .= "restoreInitialOrder();"; } if (strlen($js)) { $template->setCurrentBlock("javascript_restore_order"); $template->setVariable("RESTORE_ORDER", $js); $template->parseCurrentBlock(); } } } if ($this->object->getOutputType() != OUTPUT_JAVASCRIPT) { foreach ($keys as $idx) { $answer = $this->object->answers[$idx]; if ($this->object->getOrderingType() == OQ_PICTURES) { $template->setCurrentBlock("ordering_row_standard_pictures"); $template->setVariable("PICTURE_HREF", $this->object->getImagePathWeb() . $answer->getAnswertext()); $thumbweb = $this->object->getImagePathWeb() . $this->object->getThumbPrefix() . $answer->getAnswertext(); $thumb = $this->object->getImagePath() . $this->object->getThumbPrefix() . $answer->getAnswertext(); if (!@file_exists($thumb)) { $this->object->rebuildThumbnails(); } $template->setVariable("THUMB_HREF", $thumbweb); $template->setVariable("THUMB_ALT", $this->lng->txt("thumbnail")); $template->setVariable("THUMB_TITLE", $this->lng->txt("enlarge")); $template->setVariable("ANSWER_ID", $answer->getRandomID()); $template->parseCurrentBlock(); } else { $template->setCurrentBlock("ordering_row_standard_text"); $template->setVariable("ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(), TRUE)); $template->setVariable("ANSWER_ID", $answer->getRandomID()); $template->parseCurrentBlock(); } $template->setCurrentBlock("ordering_row_standard"); $template->setVariable("ANSWER_ID", $answer->getRandomID()); if (is_array($solutions)) { foreach ($solutions as $solution) { if ($solution["value1"] == $idx && strlen($solution["value2"])) { $template->setVariable("ANSWER_ORDER", " value=\"" . $solution["value2"] . "\""); } } } $template->parseCurrentBlock(); } } else { foreach ($keys as $idx) { $answer = $this->object->answers[$idx]; if ($this->object->getOrderingType() == OQ_PICTURES) { $template->setCurrentBlock("ordering_row_javascript_pictures"); $template->setVariable("PICTURE_HREF", $this->object->getImagePathWeb() . $answer->getAnswertext()); $thumbweb = $this->object->getImagePathWeb() . $this->object->getThumbPrefix() . $answer->getAnswertext(); $thumb = $this->object->getImagePath() . $this->object->getThumbPrefix() . $answer->getAnswertext(); if (!@file_exists($thumb)) { $this->object->rebuildThumbnails(); } $template->setVariable("THUMB_HREF", $thumbweb); $template->setVariable("THUMB_ALT", $this->lng->txt("thumbnail")); $template->setVariable("THUMB_TITLE", $this->lng->txt("thumbnail")); $template->setVariable("ENLARGE_HREF", ilUtil::getImagePath("enlarge.png", FALSE)); $template->setVariable("ENLARGE_ALT", $this->lng->txt("enlarge")); $template->setVariable("ENLARGE_TITLE", $this->lng->txt("enlarge")); $template->setVariable("ANSWER_ID", $answer->getRandomID()); $template->parseCurrentBlock(); } else { $template->setCurrentBlock("ordering_row_javascript_text"); $template->setVariable("ANSWER_TEXT", $this->object->prepareTextareaOutput($answer->getAnswertext(), TRUE)); $template->setVariable("ANSWER_ID", $answer->getRandomID()); $template->parseCurrentBlock(); } } $template->setCurrentBlock("ordering_with_javascript"); if ($this->object->getOrderingType() == OQ_PICTURES) { $template->setVariable("RESET_POSITIONS", $this->lng->txt("reset_pictures")); } else { $template->setVariable("RESET_POSITIONS", $this->lng->txt("reset_definitions")); } $template->parseCurrentBlock(); } $questiontext = $this->object->getQuestion(); $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE)); $questionoutput = $template->get(); $pageoutput = $this->outQuestionPage("", $is_postponed, $active_id, $questionoutput); return $pageoutput; } }
/** * generates frame layout */ function layout($a_xml = "main.xml", $doShow = true) { global $tpl, $ilSetting, $ilCtrl, $ilUser; $layout = $this->determineLayout(); // xmldocfile is deprecated! Use domxml_open_file instead. // But since using relative pathes with domxml under windows don't work, // we need another solution: $xmlfile = file_get_contents("./Modules/LearningModule/layouts/lm/" . $layout . "/" . $a_xml); if (!($doc = domxml_open_mem($xmlfile))) { include_once "./Modules/LearningModule/exceptions/class.ilLMPresentationException.php"; throw new ilLMPresentationException("ilLMPresentation: XML File invalid. Error reading " . $layout . "/" . $a_xml . "."); } $this->layout_doc = $doc; //echo ":".htmlentities($xmlfile).":$layout:$a_xml:"; // get current frame node $xpc = xpath_new_context($doc); $path = empty($_GET["frame"]) || $_GET["frame"] == "_blank" ? "/ilLayout/ilFrame[1]" : "//ilFrame[@name='" . $_GET["frame"] . "']"; $result = xpath_eval($xpc, $path); $found = $result->nodeset; if (count($found) != 1) { include_once "./Modules/LearningModule/exceptions/class.ilLMPresentationException.php"; throw new ilLMPresentationException("ilLMPresentation: XML File invalid. Found " . count($found) . " nodes for " . " path " . $path . " in " . $layout . "/" . $a_xml . ". LM Layout is " . $this->lm->getLayout()); } $node = $found[0]; // ProcessFrameset // node is frameset, if it has cols or rows attribute $attributes = $this->attrib2arr($node->attributes()); $this->frames = array(); if (!empty($attributes["rows"]) || !empty($attributes["cols"])) { $content .= $this->buildTag("start", "frameset", $attributes); //$this->frames = array(); $this->processNodes($content, $node); $content .= $this->buildTag("end", "frameset"); $this->tpl = new ilTemplate("tpl.frameset.html", true, true, "Modules/LearningModule"); $this->renderPageTitle(); $this->tpl->setVariable("FS_CONTENT", $content); if (!$doshow) { $content = $this->tpl->get(); } } else { // ProcessContentTag //if ((empty($attributes["template"]) || !empty($_GET["obj_type"]))) if ((empty($attributes["template"]) || !empty($_GET["obj_type"])) && ($_GET["frame"] != "_blank" || $_GET["obj_type"] != "MediaObject")) { // we got a variable content frame (can display different // object types (PageObject, MediaObject, GlossarItem) // and contains elements for them) // determine object type if (empty($_GET["obj_type"])) { $obj_type = "PageObject"; } else { $obj_type = $_GET["obj_type"]; } // get object specific node $childs = $node->child_nodes(); $found = false; foreach ($childs as $child) { if ($child->node_name() == $obj_type) { $found = true; $attributes = $this->attrib2arr($child->attributes()); $node = $child; //echo "<br>2node:".$node->node_name(); break; } } if (!$found) { echo "ilLMPresentation: No template specified for frame '" . $_GET["frame"] . "' and object type '" . $obj_type . "'."; exit; } } // get template $in_module = $attributes["template_location"] == "module" ? true : false; if ($in_module) { $this->tpl = new ilTemplate($attributes["template"], true, true, $in_module); $this->tpl->setBodyClass(""); } else { $this->tpl = $tpl; } // set style sheets if (!$this->offlineMode()) { $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); } else { $style_name = $ilUser->getPref("style") . ".css"; $this->tpl->setVariable("LOCATION_STYLESHEET", "./style/" . $style_name); } include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery($this->tpl); iljQueryUtil::initjQueryUI($this->tpl); include_once "./Services/UICore/classes/class.ilUIFramework.php"; ilUIFramework::init($this->tpl); // to make e.g. advanced seletions lists work: $GLOBALS["tpl"] = $this->tpl; $childs = $node->child_nodes(); foreach ($childs as $child) { $child_attr = $this->attrib2arr($child->attributes()); switch ($child->node_name()) { case "ilMainMenu": $this->ilMainMenu(); $this->renderPageTitle(); break; case "ilTOC": $this->ilTOC($child_attr["target_frame"]); break; case "ilPage": switch ($this->lm->getType()) { case "lm": unset($_SESSION["tr_id"]); unset($_SESSION["bib_id"]); unset($_SESSION["citation"]); $content = $this->ilPage($child); break; } break; case "ilGlossary": $content = $this->ilGlossary($child); break; case "ilLMNavigation": $this->ilLMNavigation(); break; case "ilMedia": $this->ilMedia(); break; case "ilLocator": $this->ilLocator(); break; case "ilJavaScript": $this->ilJavaScript($child_attr["inline"], $child_attr["file"], $child_attr["location"]); break; case "ilLMMenu": $this->ilLMMenu(); break; case "ilLMHead": $this->ilLMHead(); break; case "ilLMSubMenu": $this->ilLMSubMenu(); break; case "ilLMNotes": $this->ilLMNotes(); break; } } // TODO: Very dirty hack to force the import of JavaScripts in learning content in the FAQ frame (e.g. if jsMath is in the content) // Unfortunately there is no standardized way to do this somewhere else. Calling fillJavaScripts always in ilTemplate causes multiple additions of the the js files. // 19.7.2014: outcommented, since fillJavaScriptFiles is called in the next blocks, and the // following lines would add the js files two times // if (strcmp($_GET["frame"], "topright") == 0) $this->tpl->fillJavaScriptFiles(); // if (strcmp($_GET["frame"], "right") == 0) $this->tpl->fillJavaScriptFiles(); // if (strcmp($_GET["frame"], "botright") == 0) $this->tpl->fillJavaScriptFiles(); if (!$this->offlineMode()) { include_once "./Services/Accordion/classes/class.ilAccordionGUI.php"; ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); $this->tpl->addJavascript("./Modules/LearningModule/js/LearningModule.js"); include_once "./Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php"; $close_call = "il.LearningModule.setCloseHTML('" . ilGlyphGUI::get(ilGlyphGUI::CLOSE) . "');"; $this->tpl->addOnLoadCode($close_call); //$store->set("cf_".$this->lm->getId()); // handle initial content if ($_GET["frame"] == "") { include_once "./Services/Authentication/classes/class.ilSessionIStorage.php"; $store = new ilSessionIStorage("lm"); $last_frame_url = $store->get("cf_" . $this->lm->getId()); if ($last_frame_url != "") { $this->tpl->addOnLoadCode("il.LearningModule.setLastFrameUrl('" . $last_frame_url . "', 'center_bottom');"); } if (in_array($layout, array("toc2windyn"))) { $this->tpl->addOnLoadCode("il.LearningModule.setSaveUrl('" . $ilCtrl->getLinkTarget($this, "saveFrameUrl", "", false, false) . "');\n\t\t\t\t\t\t\til.LearningModule.openInitFrames();\n\t\t\t\t\t\t\t"); } $this->tpl->addOnLoadCode("il.LearningModule.setTocRefreshUrl('" . $ilCtrl->getLinkTarget($this, "refreshToc", "", false, false) . "');\n\t\t\t\t\t\t\t"); } // from main menu // $this->tpl->addJavascript("./Services/JavaScript/js/Basic.js"); $this->tpl->addJavascript("./Services/Navigation/js/ServiceNavigation.js"); $this->tpl->fillJavaScriptFiles(); $this->tpl->fillScreenReaderFocus(); $this->tpl->fillCssFiles(); } else { // reset standard css files $this->tpl->resetJavascript(); $this->tpl->resetCss(); include_once "./Modules/LearningModule/classes/class.ilObjContentObject.php"; foreach (ilObjContentObject::getSupplyingExportFiles() as $f) { if ($f["type"] == "js") { $this->tpl->addJavascript($f["target"]); } if ($f["type"] == "css") { $this->tpl->addCSS($f["target"]); } } $this->tpl->fillJavaScriptFiles(true); $this->tpl->fillCssFiles(true); } $this->tpl->fillBodyClass(); } if ($doShow) { // (horrible) workaround for preventing template engine // from hiding paragraph text that is enclosed // in curly brackets (e.g. "{a}", see ilPageObjectGUI::showPage()) $this->tpl->fillTabs(); if ($this->fill_on_load_code) { $this->tpl->fillOnLoadCode(); } $content = $this->tpl->get(); $content = str_replace("{", "{", $content); $content = str_replace("}", "}", $content); header('Content-type: text/html; charset=UTF-8'); echo $content; } else { $this->tpl->fillLeftNav(); $this->tpl->fillOnLoadCode(); $content = $this->tpl->get(); } return $content; }
/** * SCO preview */ function sco_preview() { global $tpl, $ilCtrl, $lng; // init main template $tpl = new ilTemplate("tpl.main.html", true, true); include_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $tpl->setBodyClass(""); $tpl->setCurrentBlock("ContentStyle"); $tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath($this->slm_object->getStyleSheetId())); $tpl->parseCurrentBlock(); // get javascript include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/pure.js"); $tpl->addJavaScript("./Modules/Scorm2004/scripts/pager.js"); $tpl->addOnLoadCode("pager.Init();"); $tree = new ilTree($this->slm_object->getId()); $tree->setTableNames('sahs_sc13_tree', 'sahs_sc13_tree_node'); $tree->setTreeTablePK("slm_id"); include_once "./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php"; include_once "./Services/MetaData/classes/class.ilMD.php"; $meta = new ilMD($this->node_object->getSLMId(), $this->node_object->getId(), $this->node_object->getType()); $desc_ids = $meta->getGeneral()->getDescriptionIds(); $sco_description = $meta->getGeneral()->getDescription($desc_ids[0])->getDescription(); // get sco template $sco_tpl = new ilTemplate("tpl.sco.html", true, true, "Modules/Scorm2004"); // navigation $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId()); ilSCORM2004Asset::renderNavigation($sco_tpl, "", $lk); // meta page (description and objectives) ilSCORM2004Asset::renderMetaPage($sco_tpl, $this->node_object, $this->node_object->getType()); // init export (this initialises glossary template) ilSCORM2004PageGUI::initExport(); $terms = $this->node_object->getGlossaryTermIds(); // render page foreach ($tree->getSubTree($tree->getNodeData($this->node_object->getId()), true, 'page') as $page) { $page_obj = new ilSCORM2004PageGUI($this->node_object->getType(), $page["obj_id"], 0, $this->slm_object->getId()); $page_obj->setPresentationTitle($page["title"]); $page_obj->setOutputMode(IL_PAGE_PREVIEW); $page_obj->setStyleId($this->slm_object->getStyleSheetId()); if (count($terms) > 1) { $page_obj->setGlossaryOverviewInfo(ilSCORM2004ScoGUI::getGlossaryOverviewId(), $this->node_object); } $sco_tpl->setCurrentBlock("page_preview"); $html = $ilCtrl->getHTML($page_obj); //$sco_tpl->setVariable("PAGE_PRV", $page_obj->showPage("export")); $sco_tpl->setVariable("PAGE_PRV", $html); $sco_tpl->parseCurrentBlock(); } $output = $sco_tpl->get(); // append glossary entries on the sco level $output .= ilSCORM2004PageGUI::getGlossaryHTML($this->node_object); //insert questions require_once './Modules/Scorm2004/classes/class.ilQuestionExporter.php'; $output = preg_replace_callback("/{{{{{(Question;)(il__qst_[0-9]+)}}}}}/", array(get_class($this), 'insertQuestion'), $output); // $output = preg_replace("/{/","",$output); // $output = preg_replace("/}/","",$output); $output = "<script>var ScormApi=null;" . ilQuestionExporter::questionsJS() . "</script>" . $output; $lk = ilObjSAHSLearningModule::getAffectiveLocalization($this->node_object->getSLMId()); // include_once("./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php"); // ilSCORM2004PageGUI::addPreparationJavascript($tpl, $lk); $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/question_handling.js"); $tpl->addCss("./Modules/Scorm2004/templates/default/question_handling.css"); include_once "./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php"; ilOverlayGUI::initJavascript(); //inline JS $output .= '<script type="text/javascript" src="./Modules/Scorm2004/scripts/questions/question_handling.js"></script>'; $tpl->setVariable("CONTENT", $output); }
/** * Render item */ public function render($a_mode = "") { $tpl = new ilTemplate("tpl.prop_textinput.html", true, true, "Services/Form"); if (strlen($this->getValue())) { $tpl->setCurrentBlock("prop_text_propval"); $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($this->getValue())); $tpl->parseCurrentBlock(); } if (strlen($this->getInlineStyle())) { $tpl->setCurrentBlock("stylecss"); $tpl->setVariable("CSS_STYLE", ilUtil::prepareFormOutput($this->getInlineStyle())); $tpl->parseCurrentBlock(); } if (strlen($this->getCssClass())) { $tpl->setCurrentBlock("classcss"); $tpl->setVariable('CLASS_CSS', ilUtil::prepareFormOutput($this->getCssClass())); $tpl->parseCurrentBlock(); } if ($this->getSubmitFormOnEnter()) { $tpl->touchBlock("submit_form_on_enter"); } switch ($this->getInputType()) { case 'password': $tpl->setVariable('PROP_INPUT_TYPE', 'password'); break; case 'hidden': $tpl->setVariable('PROP_INPUT_TYPE', 'hidden'); break; case 'text': default: $tpl->setVariable('PROP_INPUT_TYPE', 'text'); } $tpl->setVariable("ID", $this->getFieldId()); $tpl->setVariable("SIZE", $this->getSize()); if ($this->getMaxLength() != null) { $tpl->setVariable("MAXLENGTH", $this->getMaxLength()); } if (strlen($this->getSuffix())) { $tpl->setVariable("INPUT_SUFFIX", $this->getSuffix()); } $postvar = $this->getPostVar(); if ($this->getMulti() && substr($postvar, -2) != "[]") { $postvar .= "[]"; } if ($this->getDisabled()) { if ($this->getMulti()) { $value = $this->getMultiValues(); $hidden = ""; if (is_array($value)) { foreach ($value as $item) { $hidden .= $this->getHiddenTag($postvar, $item); } } } else { $hidden = $this->getHiddenTag($postvar, $this->getValue()); } if ($hidden) { $tpl->setVariable("DISABLED", " disabled=\"disabled\""); $tpl->setVariable("HIDDEN_INPUT", $hidden); } } else { $tpl->setVariable("POST_VAR", $postvar); } // use autocomplete feature? if ($this->getDataSource()) { include_once "Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); if ($this->getMulti()) { $tpl->setCurrentBlock("ac_multi"); $tpl->setVariable('MURL_AUTOCOMPLETE', $this->getDataSource()); $tpl->setVariable('ID_AUTOCOMPLETE', $this->getFieldId()); $tpl->parseCurrentBlock(); // set to fields that start with autocomplete selector $sel_auto = '[id^="' . $this->getFieldId() . '"]'; } else { // use id for autocomplete selector $sel_auto = "#" . $this->getFieldId(); } if (!$this->ajax_datasource_delimiter) { $tpl->setCurrentBlock("autocomplete_bl"); $tpl->setVariable('SEL_AUTOCOMPLETE', $sel_auto); $tpl->setVariable('URL_AUTOCOMPLETE', $this->getDataSource()); $tpl->parseCurrentBlock(); } else { $tpl->setCurrentBlock("autocomplete_bl"); $tpl->setVariable('AUTOCOMPLETE_DELIMITER', $this->ajax_datasource_delimiter); $tpl->setVariable('SEL_AUTOCOMPLETE_DELIMITER', $sel_auto); $tpl->setVariable('URL_AUTOCOMPLETE_DELIMITER', $this->getDataSource()); $tpl->parseCurrentBlock(); } } if ($a_mode == "toolbar") { // block-inline hack, see: http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/ // -moz-inline-stack for FF2 // zoom 1; *display:inline for IE6 & 7 $tpl->setVariable("STYLE_PAR", 'display: -moz-inline-stack; display:inline-block; zoom: 1; *display:inline;'); } else { $tpl->setVariable("STYLE_PAR", ''); } if ($this->isHtmlAutoCompleteDisabled()) { $tpl->setVariable("AUTOCOMPLETE", "autocomplete=\"off\""); } // multi icons if ($this->getMulti() && !$a_mode && !$this->getDisabled()) { $tpl->setVariable("MULTI_ICONS", $this->getMultiIconsHTML()); } return $tpl->get(); }
public function render($a_mode = "") { $tpl = new ilTemplate("tpl.prop_mail_quick_filter_input.html", true, true, "Services/Mail"); if (strlen($this->getValue())) { $tpl->setCurrentBlock("prop_text_propval"); $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($this->getValue())); $tpl->parseCurrentBlock(); } if (strlen($this->getInlineStyle())) { $tpl->setCurrentBlock("stylecss"); $tpl->setVariable("CSS_STYLE", ilUtil::prepareFormOutput($this->getInlineStyle())); $tpl->parseCurrentBlock(); } if (strlen($this->getCssClass())) { $tpl->setCurrentBlock("classcss"); $tpl->setVariable('CLASS_CSS', ilUtil::prepareFormOutput($this->getCssClass())); $tpl->parseCurrentBlock(); } if ($this->getSubmitFormOnEnter()) { $tpl->touchBlock("submit_form_on_enter"); } switch ($this->getInputType()) { case 'password': $tpl->setVariable('PROP_INPUT_TYPE', 'password'); break; case 'hidden': $tpl->setVariable('PROP_INPUT_TYPE', 'hidden'); break; case 'text': default: $tpl->setVariable('PROP_INPUT_TYPE', 'text'); } $tpl->setVariable("ID", $this->getFieldId()); $tpl->setVariable("SIZE", $this->getSize()); if ($this->getMaxLength() != null) { $tpl->setVariable("MAXLENGTH", $this->getMaxLength()); } if (strlen($this->getSuffix())) { $tpl->setVariable("INPUT_SUFFIX", $this->getSuffix()); } $postvar = $this->getPostVar(); if ($this->getMulti() && substr($postvar, -2) != "[]") { $postvar .= "[]"; } if ($this->getDisabled()) { if ($this->getMulti()) { $value = $this->getMultiValues(); $hidden = ""; if (is_array($value)) { foreach ($value as $item) { $hidden .= $this->getHiddenTag($postvar, $item); } } } else { $hidden = $this->getHiddenTag($postvar, $this->getValue()); } if ($hidden) { $tpl->setVariable("DISABLED", " disabled=\"disabled\""); $tpl->setVariable("HIDDEN_INPUT", $hidden); } } else { $tpl->setVariable("POST_VAR", $postvar); } // use autocomplete feature? if ($this->getDataSource()) { include_once "Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); if ($this->getMulti()) { $tpl->setCurrentBlock("ac_multi"); $tpl->setVariable('MURL_AUTOCOMPLETE', $this->getDataSource()); $tpl->setVariable('ID_AUTOCOMPLETE', $this->getFieldId()); $tpl->parseCurrentBlock(); // set to fields that start with autocomplete selector $sel_auto = '[id^="' . $this->getFieldId() . '"]'; } else { // use id for autocomplete selector $sel_auto = "#" . $this->getFieldId(); } $tpl->setCurrentBlock("prop_text_autocomplete"); $tpl->setVariable('SEL_AUTOCOMPLETE', $sel_auto); $tpl->setVariable('URL_AUTOCOMPLETE', $this->getDataSource()); $tpl->parseCurrentBlock(); } if ($a_mode == "toolbar") { // block-inline hack, see: http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/ // -moz-inline-stack for FF2 // zoom 1; *display:inline for IE6 & 7 $tpl->setVariable("STYLE_PAR", 'display: -moz-inline-stack; display:inline-block; zoom: 1; *display:inline;'); } else { $tpl->setVariable("STYLE_PAR", ''); } // multi icons if ($this->getMulti() && !$a_mode && !$this->getDisabled()) { $tpl->setVariable("MULTI_ICONS", $this->getMultiIconsHTML($this->multi_sortable)); } if (is_array($this->sub_items) && $this->sub_items) { /** * @var $lng ilLanguage */ global $lng; $tpl->setVariable("FIELD_ID", $this->getFieldId()); $tpl->setVariable("TXT_PLACEHOLDER", $lng->txt('mail_filter_field_placeholder')); $tpl->setVariable("TXT_FILTER_MESSAGES_BY", $lng->txt('mail_filter_txt')); $subitem_html = ''; foreach ($this->sub_items as $item) { $subitem_html .= $item->render('toolbar'); } $tpl->setVariable('FIELD_SUBITEMS', $subitem_html); } return $tpl->get(); }
/** * display content of page */ function showPage() { global $tree, $ilUser, $lng, $ilCtrl, $ilSetting, $ilTabs; // jquery and jquery ui are always provided for components include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); // $this->initSelfAssessmentRendering(); include_once "./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php"; ilObjMediaObjectGUI::includePresentationJS($GLOBALS["tpl"]); $GLOBALS["tpl"]->addJavaScript("./Services/COPage/js/ilCOPagePres.js"); // needed for overlays in iim include_once "./Services/UIComponent/Overlay/classes/class.ilOverlayGUI.php"; ilOverlayGUI::initJavascript(); include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; ilPlayerUtil::initMediaElementJs($GLOBALS["tpl"]); // init template //if($this->outputToTemplate()) //{ if ($this->getOutputMode() == "edit") { //echo ":".$this->getTemplateTargetVar().":"; $tpl = new ilTemplate("tpl.page_edit_wysiwyg.html", true, true, "Services/COPage"); //$this->tpl->addBlockFile($this->getTemplateTargetVar(), "adm_content", "tpl.page_edit_wysiwyg.html", "Services/COPage"); // to do: status dependent class $tpl->setVariable("CLASS_PAGE_TD", "ilc_Page"); // user comment if ($this->isEnabledChangeComments()) { $tpl->setCurrentBlock("change_comment"); $tpl->setVariable("TXT_ADD_COMMENT", $this->lng->txt("cont_add_change_comment")); $tpl->parseCurrentBlock(); } $tpl->setVariable("WYSIWYG_ACTION", $ilCtrl->getFormActionByClass("ilpageeditorgui", "", "", true)); // determine media, html and javascript mode $sel_media_mode = $ilUser->getPref("ilPageEditor_MediaMode") == "disable" ? "disable" : "enable"; $sel_html_mode = $ilUser->getPref("ilPageEditor_HTMLMode") == "disable" ? "disable" : "enable"; $sel_js_mode = "disable"; //if($ilSetting->get("enable_js_edit", 1)) //{ $sel_js_mode = ilPageEditorGUI::_doJSEditing() ? "enable" : "disable"; //} // show prepending html $tpl->setVariable("PREPENDING_HTML", $this->getPrependingHtml()); $tpl->setVariable("TXT_CONFIRM_DELETE", $lng->txt("cont_confirm_delete")); // presentation view if ($this->getViewPageLink() != "") { $ilTabs->addNonTabbedLink("pres_view", $this->lng->txt("cont_presentation_view"), $this->getViewPageLink(), $this->getViewPageTarget()); } // show actions drop down $this->addActionsMenu($tpl, $sel_media_mode, $sel_html_mode, $sel_js_mode); // get js files for JS enabled editing if ($sel_js_mode == "enable") { $this->insertHelp($tpl); include_once "./Services/YUI/classes/class.ilYuiUtil.php"; ilYuiUtil::initDragDrop(); ilYuiUtil::initConnection(); ilYuiUtil::initPanel(false); $GLOBALS["tpl"]->addJavaScript("./Services/COPage/js/ilcopagecallback.js"); $GLOBALS["tpl"]->addJavascript("Services/COPage/js/page_editing.js"); include_once './Services/Style/classes/class.ilObjStyleSheet.php'; $GLOBALS["tpl"]->addOnloadCode("var preloader = new Image();\n\t\t\t\t\t\tpreloader.src = './templates/default/images/loader.svg';\n\t\t\t\t\t\tilCOPage.setContentCss('" . ilObjStyleSheet::getContentStylePath((int) $this->getStyleId()) . ", " . ilUtil::getStyleSheetLocation() . ", ./Services/COPage/css/tiny_extra.css" . "')"); //$GLOBALS["tpl"]->addJavascript("Services/RTE/tiny_mce_3_3_9_2/il_tiny_mce_src.js"); $GLOBALS["tpl"]->addJavascript("Services/COPage/tiny/4_1_5/tinymce.js"); $tpl->touchBlock("init_dragging"); $cfg = $this->getPageConfig(); $tpl->setVariable("IL_TINY_MENU", self::getTinyMenu($this->getPageObject()->getParentType(), $cfg->getEnableInternalLinks(), $cfg->getEnableWikiLinks(), $cfg->getEnableKeywords(), $this->getStyleId(), true, true, $cfg->getEnableAnchors())); // add int link parts include_once "./Services/Link/classes/class.ilInternalLinkGUI.php"; $tpl->setCurrentBlock("int_link_prep"); $tpl->setVariable("INT_LINK_PREP", ilInternalLinkGUI::getInitHTML($ilCtrl->getLinkTargetByClass(array("ilpageeditorgui", "ilinternallinkgui"), "", false, true, false))); $tpl->parseCurrentBlock(); include_once "./Services/YUI/classes/class.ilYuiUtil.php"; ilYuiUtil::initConnection(); $GLOBALS["tpl"]->addJavaScript("./Services/UIComponent/Explorer/js/ilExplorer.js"); } // multiple actions $cnt_pcs = $this->getPageObject()->countPageContents(); if ($cnt_pcs > 1 || $this->getPageObject()->getParentType() != "qpl" && $cnt_pcs > 0) { $tpl->setCurrentBlock("multi_actions"); if ($sel_js_mode == "enable") { $tpl->setVariable("ONCLICK_DE_ACTIVATE_SELECTED", 'onclick="return ilEditMultiAction(\'activateSelected\');"'); $tpl->setVariable("ONCLICK_DELETE_SELECTED", 'onclick="return ilEditMultiAction(\'deleteSelected\');"'); $tpl->setVariable("ONCLICK_ASSIGN_CHARACTERISTIC", 'onclick="return ilEditMultiAction(\'assignCharacteristicForm\');"'); $tpl->setVariable("ONCLICK_COPY_SELECTED", 'onclick="return ilEditMultiAction(\'copySelected\');"'); $tpl->setVariable("ONCLICK_CUT_SELECTED", 'onclick="return ilEditMultiAction(\'cutSelected\');"'); $tpl->setVariable("TXT_SELECT_ALL", $this->lng->txt("select_all")); $tpl->setVariable("ONCLICK_SELECT_ALL", 'onclick="return ilEditMultiAction(\'selectAll\');"'); } $tpl->setVariable("TXT_DE_ACTIVATE_SELECTED", $this->lng->txt("cont_ed_enable")); $tpl->setVariable("TXT_ASSIGN_CHARACTERISTIC", $this->lng->txt("cont_assign_characteristic")); $tpl->setVariable("TXT_DELETE_SELECTED", $this->lng->txt("cont_delete_selected")); $tpl->setVariable("TXT_COPY_SELECTED", $this->lng->txt("copy")); $tpl->setVariable("TXT_CUT_SELECTED", $this->lng->txt("cut")); $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.svg")); $tpl->parseCurrentBlock(); } } else { // presentation or preview here $tpl = new ilTemplate("tpl.page.html", true, true, "Services/COPage"); if ($this->getEnabledPageFocus()) { $tpl->touchBlock("page_focus"); } include_once "./Services/User/classes/class.ilUserUtil.php"; // presentation if ($this->isPageContainerToBeRendered()) { $tpl->touchBlock("page_container_1"); $tpl->touchBlock("page_container_2"); $tpl->touchBlock("page_container_3"); } // history $c_old_nr = $this->getPageObject()->old_nr; if ($c_old_nr > 0 || $this->getCompareMode() || $_GET["history_mode"] == 1) { $hist_info = $this->getPageObject()->getHistoryInfo($c_old_nr); if (!$this->getCompareMode()) { $ilCtrl->setParameter($this, "history_mode", "1"); // previous revision if (is_array($hist_info["previous"])) { $tpl->setCurrentBlock("previous_rev"); $tpl->setVariable("TXT_PREV_REV", $lng->txt("cont_previous_rev")); $ilCtrl->setParameter($this, "old_nr", $hist_info["previous"]["nr"]); $tpl->setVariable("HREF_PREV", $ilCtrl->getLinkTarget($this, "preview")); $tpl->parseCurrentBlock(); } else { $tpl->setCurrentBlock("previous_rev_disabled"); $tpl->setVariable("TXT_PREV_REV", $lng->txt("cont_previous_rev")); $tpl->parseCurrentBlock(); } // next revision if ($c_old_nr > 0) { $tpl->setCurrentBlock("next_rev"); $tpl->setVariable("TXT_NEXT_REV", $lng->txt("cont_next_rev")); $ilCtrl->setParameter($this, "old_nr", $hist_info["next"]["nr"]); $tpl->setVariable("HREF_NEXT", $ilCtrl->getLinkTarget($this, "preview")); $tpl->parseCurrentBlock(); // latest revision $tpl->setCurrentBlock("latest_rev"); $tpl->setVariable("TXT_LATEST_REV", $lng->txt("cont_latest_rev")); $ilCtrl->setParameter($this, "old_nr", ""); $tpl->setVariable("HREF_LATEST", $ilCtrl->getLinkTarget($this, "preview")); $tpl->parseCurrentBlock(); } $ilCtrl->setParameter($this, "history_mode", ""); // rollback if ($c_old_nr > 0 && $ilUser->getId() != ANONYMOUS_USER_ID) { $tpl->setCurrentBlock("rollback"); $ilCtrl->setParameter($this, "old_nr", $c_old_nr); $tpl->setVariable("HREF_ROLLBACK", $ilCtrl->getLinkTarget($this, "rollbackConfirmation")); $ilCtrl->setParameter($this, "old_nr", ""); $tpl->setVariable("TXT_ROLLBACK", $lng->txt("cont_rollback")); $tpl->parseCurrentBlock(); } } $tpl->setCurrentBlock("hist_nav"); $tpl->setVariable("TXT_REVISION", $lng->txt("cont_revision")); $tpl->setVariable("VAL_REVISION_DATE", ilDatePresentation::formatDate(new ilDateTime($hist_info["current"]["hdate"], IL_CAL_DATETIME))); $tpl->setVariable("VAL_REV_USER", ilUserUtil::getNamePresentation($hist_info["current"]["user_id"])); $tpl->parseCurrentBlock(); } } if ($this->getOutputMode() != IL_PAGE_PRESENTATION && $this->getOutputMode() != IL_PAGE_OFFLINE && $this->getOutputMode() != IL_PAGE_PREVIEW && $this->getOutputMode() != IL_PAGE_PRINT) { $tpl->setVariable("FORMACTION", $this->ctrl->getFormActionByClass("ilpageeditorgui")); } // output media object edit list (of media links) if ($this->getOutputMode() == "edit") { $links = ilInternalLink::_getTargetsOfSource($this->obj->getParentType() . ":pg", $this->obj->getId(), $this->obj->getLanguage()); $mob_links = array(); foreach ($links as $link) { if ($link["type"] == "mob") { if (ilObject::_exists($link["id"]) && ilObject::_lookupType($link["id"]) == "mob") { $mob_links[$link["id"]] = ilObject::_lookupTitle($link["id"]) . " [" . $link["id"] . "]"; } } } // linked media objects if (count($mob_links) > 0) { $tpl->setCurrentBlock("med_link"); $tpl->setVariable("TXT_LINKED_MOBS", $this->lng->txt("cont_linked_mobs")); $tpl->setVariable("SEL_MED_LINKS", ilUtil::formSelect(0, "mob_id", $mob_links, false, true)); $tpl->setVariable("TXT_EDIT_MEDIA", $this->lng->txt("cont_edit_mob")); $tpl->setVariable("TXT_COPY_TO_CLIPBOARD", $this->lng->txt("cont_copy_to_clipboard")); //$this->tpl->setVariable("TXT_COPY_TO_POOL", $this->lng->txt("cont_copy_to_mediapool")); $tpl->parseCurrentBlock(); } // content snippets used include_once "./Services/COPage/classes/class.ilPCContentInclude.php"; $snippets = ilPCContentInclude::collectContentIncludes($this->getPageObject(), $this->getPageObject()->getDomDoc()); if (count($snippets) > 0) { foreach ($snippets as $s) { include_once "./Modules/MediaPool/classes/class.ilMediaPoolPage.php"; $sn_arr[$s["id"]] = ilMediaPoolPage::lookupTitle($s["id"]); } $tpl->setCurrentBlock("med_link"); $tpl->setVariable("TXT_CONTENT_SNIPPETS_USED", $this->lng->txt("cont_snippets_used")); $tpl->setVariable("SEL_SNIPPETS", ilUtil::formSelect(0, "ci_id", $sn_arr, false, true)); $tpl->setVariable("TXT_SHOW_INFO", $this->lng->txt("cont_show_info")); $tpl->parseCurrentBlock(); } // scheduled activation? if (!$this->getPageObject()->getActive() && $this->getPageObject()->getActivationStart() != "" && $this->getPageConfig()->getEnableScheduledActivation()) { $tpl->setCurrentBlock("activation_txt"); $tpl->setVariable("TXT_SCHEDULED_ACTIVATION", $lng->txt("cont_scheduled_activation")); $tpl->setVariable("SA_FROM", ilDatePresentation::formatDate(new ilDateTime($this->getPageObject()->getActivationStart(), IL_CAL_DATETIME))); $tpl->setVariable("SA_TO", ilDatePresentation::formatDate(new ilDateTime($this->getPageObject()->getActivationEnd(), IL_CAL_DATETIME))); $tpl->parseCurrentBlock(); } } if ($_GET["reloadTree"] == "y") { $tpl->setCurrentBlock("reload_tree"); if ($this->obj->getParentType() == "dbk") { $tpl->setVariable("LINK_TREE", $this->ctrl->getLinkTargetByClass("ilobjdlbookgui", "explorer", "", false, false)); } else { $tpl->setVariable("LINK_TREE", $this->ctrl->getLinkTargetByClass("ilobjlearningmodulegui", "explorer", "", false, false)); } $tpl->parseCurrentBlock(); } // } // get content $builded = $this->obj->buildDom(); // manage hierarchical ids if ($this->getOutputMode() == "edit") { // add pc ids, if necessary if (!$this->obj->checkPCIds()) { $this->obj->insertPCIds(); $this->obj->update(true, true); } $this->obj->addFileSizes(); $this->obj->addHierIDs(); $hids = $this->obj->getHierIds(); $row1_ids = $this->obj->getFirstRowIds(); $col1_ids = $this->obj->getFirstColumnIds(); $litem_ids = $this->obj->getListItemIds(); $fitem_ids = $this->obj->getFileItemIds(); // standard menues $hids = $this->obj->getHierIds(); foreach ($hids as $hid) { $tpl->setCurrentBlock("add_dhtml"); $tpl->setVariable("CONTEXTMENU", "contextmenu_" . $hid); $tpl->parseCurrentBlock(); } // column menues for tables foreach ($col1_ids as $hid) { $tpl->setCurrentBlock("add_dhtml"); $tpl->setVariable("CONTEXTMENU", "contextmenu_r" . $hid); $tpl->parseCurrentBlock(); } // row menues for tables foreach ($row1_ids as $hid) { $tpl->setCurrentBlock("add_dhtml"); $tpl->setVariable("CONTEXTMENU", "contextmenu_c" . $hid); $tpl->parseCurrentBlock(); } // list item menues foreach ($litem_ids as $hid) { $tpl->setCurrentBlock("add_dhtml"); $tpl->setVariable("CONTEXTMENU", "contextmenu_i" . $hid); $tpl->parseCurrentBlock(); } // file item menues foreach ($fitem_ids as $hid) { $tpl->setCurrentBlock("add_dhtml"); $tpl->setVariable("CONTEXTMENU", "contextmenu_i" . $hid); $tpl->parseCurrentBlock(); } } else { $this->obj->addFileSizes(); } //echo "<br>-".htmlentities($this->obj->getXMLContent())."-<br><br>"; //echo "<br>-".htmlentities($this->getLinkXML())."-"; // set default link xml, if nothing was set yet if (!$this->link_xml_set) { $this->setDefaultLinkXml(); } //$content = $this->obj->getXMLFromDom(false, true, true, // $this->getLinkXML().$this->getQuestionXML().$this->getComponentPluginsXML()); $link_xml = $this->getLinkXML(); // disable/enable auto margins if ($this->getStyleId() > 0) { if (ilObject::_lookupType($this->getStyleId()) == "sty") { include_once "./Services/Style/classes/class.ilObjStyleSheet.php"; $style = new ilObjStyleSheet($this->getStyleId()); $template_xml = $style->getTemplateXML(); $disable_auto_margins = "n"; if ($style->lookupStyleSetting("disable_auto_margins")) { $disable_auto_margins = "y"; } } } if ($this->getAbstractOnly()) { $content = "<dummy><PageObject><PageContent><Paragraph>" . $this->obj->getFirstParagraphText() . $link_xml . "</Paragraph></PageContent></PageObject></dummy>"; } else { $content = $this->obj->getXMLFromDom(false, true, true, $link_xml . $this->getQuestionXML() . $template_xml . $this->getComponentPluginsXML()); } // check validation errors if ($builded !== true) { $this->displayValidationError($builded); } else { $this->displayValidationError($_SESSION["il_pg_error"]); } unset($_SESSION["il_pg_error"]); if (isset($_SESSION["citation_error"])) { ilUtil::sendFailure($this->lng->txt("cont_citation_selection_not_valid")); ilSession::clear("citation_error"); } // get title $pg_title = $this->getPresentationTitle(); $col_path = ilUtil::getImagePath("col.svg"); $row_path = ilUtil::getImagePath("row.svg"); $item_path = ilUtil::getImagePath("item.svg"); if ($this->getOutputMode() != "offline") { $enlarge_path = ilUtil::getImagePath("enlarge.svg"); $wb_path = ilUtil::getWebspaceDir("output") . "/"; } else { $enlarge_path = "images/enlarge.svg"; $wb_path = ""; } $pg_title_class = $this->getOutputMode() == "print" ? "ilc_PrintPageTitle" : ""; // page splitting only for learning modules and // digital books $enable_split_new = $this->obj->getParentType() == "lm" || $this->obj->getParentType() == "dbk" ? "y" : "n"; // page splitting to next page only for learning modules and // digital books if next page exists in tree if (($this->obj->getParentType() == "lm" || $this->obj->getParentType() == "dbk") && ilObjContentObject::hasSuccessorPage($this->obj->getParentId(), $this->obj->getId())) { $enable_split_next = "y"; } else { $enable_split_next = "n"; } $img_path = ilUtil::getImagePath("", false, $this->getOutputMode(), $this->getOutputMode() == "offline"); if ($this->getPageConfig()->getEnablePCType("Tabs")) { //include_once("./Services/YUI/classes/class.ilYuiUtil.php"); //ilYuiUtil::initTabView(); include_once "./Services/Accordion/classes/class.ilAccordionGUI.php"; ilAccordionGUI::addJavaScript(); ilAccordionGUI::addCss(); } $file_download_link = $this->determineFileDownloadLink(); $fullscreen_link = $this->determineFullscreenLink(); $this->sourcecode_download_script = $this->determineSourcecodeDownloadScript(); // default values for various parameters (should be used by // all instances in the future) $media_mode = $this->getOutputMode() == "edit" ? $ilUser->getPref("ilPageEditor_MediaMode") : "enable"; include_once "./Modules/LearningModule/classes/class.ilEditClipboard.php"; $paste = ilEditClipboard::getAction() == "copy" && $this->getOutputMode() == "edit"; include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; $flv_video_player = $this->getOutputMode() != "offline" ? ilPlayerUtil::getFlashVideoPlayerFilename(true) : ilPlayerUtil::getFlashVideoPlayerFilename(true); $cfg = $this->getPageConfig(); // added UTF-8 encoding otherwise umlaute are converted too include_once "./Services/Maps/classes/class.ilMapUtil.php"; $params = array('mode' => $this->getOutputMode(), 'pg_title' => htmlentities($pg_title, ENT_QUOTES, "UTF-8"), 'enable_placeholder' => $cfg->getEnablePCType("PlaceHolder") ? "y" : "n", 'pg_id' => $this->obj->getId(), 'pg_title_class' => $pg_title_class, 'webspace_path' => $wb_path, 'enlarge_path' => $enlarge_path, 'img_col' => $col_path, 'img_row' => $row_path, 'img_item' => $item_path, 'enable_split_new' => $enable_split_new, 'enable_split_next' => $enable_split_next, 'link_params' => $this->link_params, 'file_download_link' => $file_download_link, 'fullscreen_link' => $fullscreen_link, 'img_path' => $img_path, 'parent_id' => $this->obj->getParentId(), 'download_script' => $this->sourcecode_download_script, 'encoded_download_script' => urlencode($this->sourcecode_download_script), 'bib_id' => $this->getBibId(), 'citation' => (int) $this->isEnabledCitation(), 'pagebreak' => $this->lng->txt('dgl_pagebreak'), 'page' => $this->lng->txt('page'), 'citate_page' => $this->lng->txt('citate_page'), 'citate_from' => $this->lng->txt('citate_from'), 'citate_to' => $this->lng->txt('citate_to'), 'citate' => $this->lng->txt('citate'), 'enable_rep_objects' => $cfg->getEnablePCType("Resources") ? "y" : "n", 'enable_login_page' => $cfg->getEnablePCType("LoginPageElement") ? "y" : "n", 'enable_map' => $cfg->getEnablePCType("Map") && ilMapUtil::isActivated() ? "y" : "n", 'enable_tabs' => $cfg->getEnablePCType("Tabs") ? "y" : "n", 'enable_sa_qst' => $cfg->getEnableSelfAssessment() ? "y" : "n", 'enable_file_list' => $cfg->getEnablePCType("FileList") ? "y" : "n", 'enable_content_includes' => $cfg->getEnablePCType("ContentInclude") ? "y" : "n", 'enable_content_templates' => count($this->getPageObject()->getContentTemplates()) > 0 ? "y" : "n", 'paste' => $paste ? "y" : "n", 'media_mode' => $media_mode, 'javascript' => $sel_js_mode, 'paragraph_plugins' => $paragraph_plugin_string, 'disable_auto_margins' => $disable_auto_margins, 'page_toc' => $cfg->getEnablePageToc() ? "y" : "n", 'enable_profile' => $cfg->getEnablePCType("Profile") ? "y" : "n", 'enable_verification' => $cfg->getEnablePCType("Verification") ? "y" : "n", 'enable_blog' => $cfg->getEnablePCType("Blog") ? "y" : "n", 'enable_skills' => $cfg->getEnablePCType("Skills") ? "y" : "n", 'enable_qover' => $cfg->getEnablePCType("QuestionOverview") ? "y" : "n", 'enable_consultation_hours' => $cfg->getEnablePCType("ConsultationHours") ? "y" : "n", 'enable_my_courses' => $cfg->getEnablePCType("MyCourses") ? "y" : "n", 'enable_amd_page_list' => $cfg->getEnablePCType("AMDPageList") ? "y" : "n", 'flv_video_player' => $flv_video_player); if ($this->link_frame != "") { // todo other link types $params["pg_frame"] = $this->link_frame; } //$content = str_replace(" ", "", $content); // this ensures that cache is emptied with every update $params["version"] = ILIAS_VERSION; // ensure no cache hit, if included files/media objects have been changed $params["incl_elements_date"] = $this->obj->getLastUpdateOfIncludedElements(); // run xslt $md5 = md5(serialize($params) . $link_xml . $template_xml); //$a = microtime(); // check cache (same parameters, non-edit mode and rendered time // > last change if (($this->getOutputMode() == "preview" || $this->getOutputMode() == "presentation") && !$this->getCompareMode() && !$this->getAbstractOnly() && $md5 == $this->obj->getRenderMd5() && $this->obj->getLastChange() < $this->obj->getRenderedTime() && $this->obj->getRenderedTime() != "" && $this->obj->old_nr == 0) { // cache hit $output = $this->obj->getRenderedContent(); } else { $xsl = file_get_contents("./Services/COPage/xsl/page.xsl"); $args = array('/_xml' => $content, '/_xsl' => $xsl); $xh = xslt_create(); // echo "<b>XSLT</b>:".htmlentities($xsl).":<br>"; // echo "mode:".$this->getOutputMode().":<br>"; $output = xslt_process($xh, "arg:/_xml", "arg:/_xsl", NULL, $args, $params); if (($this->getOutputMode() == "presentation" || $this->getOutputMode() == "preview") && !$this->getAbstractOnly() && $this->obj->old_nr == 0) { //echo "writerenderedcontent"; $this->obj->writeRenderedContent($output, $md5); } //echo xslt_error($xh); xslt_free($xh); } //$b = microtime(); //echo "$a - $b"; //echo "<pre>".htmlentities($output)."</pre>"; // unmask user html if (($this->getOutputMode() != "edit" || $ilUser->getPref("ilPageEditor_HTMLMode") != "disable") && !$this->getPageConfig()->getPreventHTMLUnmasking()) { $output = str_replace("<", "<", $output); $output = str_replace(">", ">", $output); } $output = str_replace("&", "&", $output); $output = ilUtil::insertLatexImages($output); // insert page snippets $output = $this->insertContentIncludes($output); // insert resource blocks $output = $this->insertResources($output); // insert page toc if ($this->getPageConfig()->getEnablePageToc()) { $output = $this->insertPageToc($output); } // insert advanced output trigger $output = $this->insertAdvTrigger($output); // workaround for preventing template engine // from hiding paragraph text that is enclosed // in curly brackets (e.g. "{a}", see ilLMEditorGUI::executeCommand()) $output = $this->replaceCurlyBrackets($output); // remove all newlines (important for code / pre output) $output = str_replace("\n", "", $output); //echo htmlentities($output); $output = $this->postOutputProcessing($output); //echo htmlentities($output); if ($this->getOutputMode() == "edit" && !$this->getPageObject()->getActive($this->getPageConfig()->getEnableScheduledActivation())) { $output = '<div class="il_editarea_disabled">' . $output . '</div>'; } // for all page components... include_once "./Services/COPage/classes/class.ilCOPagePCDef.php"; $defs = ilCOPagePCDef::getPCDefinitions(); foreach ($defs as $def) { ilCOPagePCDef::requirePCClassByName($def["name"]); $pc_class = $def["pc_class"]; $pc_obj = new $pc_class($this->getPageObject()); // post xsl page content modification by pc elements $output = $pc_obj->modifyPageContentPostXsl($output, $this->getOutputMode()); // javascript files $js_files = $pc_obj->getJavascriptFiles($this->getOutputMode()); foreach ($js_files as $js) { $GLOBALS["tpl"]->addJavascript($js); } // css files $css_files = $pc_obj->getCssFiles($this->getOutputMode()); foreach ($css_files as $css) { $GLOBALS["tpl"]->addCss($css); } // onload code $onload_code = $pc_obj->getOnloadCode($this->getOutputMode()); foreach ($onload_code as $code) { $GLOBALS["tpl"]->addOnloadCode($code); } } // $output = $this->selfAssessmentRendering($output); // output if ($ilCtrl->isAsynch() && !$this->getRawPageContent() && $this->getOutputMode() == "edit") { // e.g. ###3:110dad8bad6df8620071a0a693a2d328### if ($_GET["updated_pc_id_str"] != "") { echo $_GET["updated_pc_id_str"]; } $tpl->setVariable($this->getTemplateOutputVar(), $output); $tpl->setCurrentBlock("edit_page"); $tpl->parseCurrentBlock(); echo $tpl->get("edit_page"); exit; } if ($this->outputToTemplate()) { $tpl->setVariable($this->getTemplateOutputVar(), $output); $this->tpl->setVariable($this->getTemplateTargetVar(), $tpl->get()); return $output; } else { if ($this->getRawPageContent()) { return $output; } else { $tpl->setVariable($this->getTemplateOutputVar(), $output); return $tpl->get(); } } }
/** * Init question handling */ function initSelfAssessmentRendering($a_force_no_form = false) { global $tpl, $ilCtrl, $lng; if ($this->getPageConfig()->getEnableSelfAssessment()) { $qhtml = $this->getQuestionJsOfPage($this->getOutputMode() == "edit" || $a_force_no_form ? true : false); // $qhtml = $this->getQuestionJsOfPage(true); $this->setQuestionHTML($qhtml); //include JQuery Libraries before Prototpye // $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery.js"); // $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery-ui-min.js"); include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/pure.js"); $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/question_handling.js"); $tpl->addCss("./Modules/Scorm2004/templates/default/question_handling.css"); if (!$this->getPageConfig()->getEnableSelfAssessmentScorm() && $this->getOutputMode() != IL_PAGE_PREVIEW && $this->getOutputMode() != "offline") { $tpl->addJavaScript("./Services/COPage/js/ilCOPageQuestionHandler.js"); $url = $ilCtrl->getLinkTarget($this, "processAnswer", "", true, false); $tpl->addOnloadCode("ilCOPageQuestionHandler.initCallback('" . $url . "');"); } if ($this->getPageConfig()->getDisableDefaultQuestionFeedback()) { $tpl->addOnloadCode("ilias.questions.default_feedback = false;"); } $lk = $this->getPageConfig()->getLocalizationLanguage(); self::addPreparationJavascript($tpl, $lk); } }
public function getSolutionHTML($a_solution_array) { $html_output = ''; $html_output .= $this->renderBeginSortableContainer(); $html_output .= $this->renderBeginSubList(); $i = 0; $previous_depth = 0; $tmp_array = $a_solution_array; $tmp_array[count($tmp_array)]['depth'] = 'END_OF_LIST'; foreach ($a_solution_array as $cur_answer) { $current_depth = $cur_answer['depth']; $next_depth = $tmp_array[$i + 1]['depth']; if ($next_depth == 'END_OF_LIST') { $next_depth = 0; } if ($previous_depth == $current_depth) { // pcn = Previous, Current, Next -> Depth // pcn: 000, 001, 110, 220 if ($current_depth == $next_depth) { // (1) pcn: 000 // echo"(1)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); } else { if ($current_depth > $next_depth) { if ($previous_depth == $next_depth) { // (8) pcn: 110 // echo"(8)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); $html_output .= $this->renderEndSubList(); $html_output .= $this->renderEndListItem(); } else { if ($previous_depth > $next_depth) { // (12) pcn: 220 // echo"(12)"; $html_output .= $this->renderListItem($cur_answer, $i); for ($openlists = $next_depth; $openlists < $current_depth; $openlists++) { $html_output .= $this->renderEndListItem(); $html_output .= $this->renderEndSubList(); $html_output .= $this->renderEndListItem(); } } } } else { if ($current_depth < $next_depth) { // (2) pcn: 001 // echo"(2)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderBeginSubList(); } } } } else { if ($previous_depth > $current_depth) { if ($current_depth == $next_depth) { // (6) pcn: 100 // echo"(6)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); } else { if ($current_depth > $next_depth) { // (11) pcn: 210 // echo"(11)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); $html_output .= $this->renderEndSubList(); } else { if ($current_depth < $next_depth) { if ($previous_depth == $next_depth) { // (7) pcn: 101 // echo"(7)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderBeginSubList(); } else { if ($previous_depth > $next_depth) { // (10) pcn: 201 // echo"(10)"; $html_output .= $this->renderListItem($cur_answer, $i); for ($openlists = $next_depth; $openlists < $current_depth; $openlists++) { $html_output .= $this->renderEndSubList(); } $html_output .= $this->renderBeginSubList(); } } } } } } else { if ($previous_depth < $current_depth) { if ($current_depth == $next_depth) { // (4) pcn: 011 // echo"(4)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); } else { if ($current_depth > $next_depth) { if ($previous_depth == $next_depth) { // (3) pcn: 010, // echo"(3)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderEndListItem(); $html_output .= $this->renderEndSubList(); $html_output .= $this->renderEndListItem(); } else { if ($previous_depth > $next_depth) { // (9) pcn: 120 // echo"(9)"; $html_output .= $this->renderListItem($cur_answer, $i); for ($openlists = $next_depth; $openlists < $current_depth; $openlists++) { $html_output .= $this->renderEndListItem(); $html_output .= $this->renderEndSubList(); } } } } else { if ($current_depth < $next_depth) { // (5) pcn: 012 // echo"(5)"; $html_output .= $this->renderListItem($cur_answer, $i); $html_output .= $this->renderBeginSubList(); } } } } } } $previous_depth = $current_depth; $i++; } $html_output .= $this->renderEndSubList(); $html_output .= $this->renderEndSortableContainer(); // $js_include_tpl = new ilTemplate("tpl.il_as_qpl_nested_ordering_output_solution.html", TRUE, TRUE, "Modules/TestQuestionPool"); include_once "Services/jQuery/classes/class.iljQueryUtil.php"; global $tpl; $tpl->addJavaScript("./Services/jQuery/js/jquery.nestable.js"); iljQueryUtil::initjQuery(); iljQueryUtil::initjQueryUI(); $js_output = ''; $js_include_tpl = new ilTemplate("tpl.il_as_qpl_nested_ordering_output_javascript.html", TRUE, TRUE, "Modules/TestQuestionPool"); if (!array_key_exists("pdf", $_GET) || $_GET["pdf"] != 1) { $js_include_tpl->touchBlock("css_include"); } $js_include_tpl->setCurrentBlock('js_include'); $js_include_tpl->setVariable('PERFORM_JAVASCRIPT', $this->getPerformJavascript()); ///// */ $js_include_tpl->setVariable('HTML_OUTPUT', $html_output); $js_include_tpl->parseCurrentBlock(); return $js_include_tpl->get(); }
/** * Add javascript files that are necessary to run accordion */ static function addJavaScript() { global $tpl; include_once "./Services/YUI/classes/class.ilYuiUtil.php"; ilYuiUtil::initConnection(); include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; iljQueryUtil::initjQueryUI(); $tpl->addJavaScript("./Services/Accordion/js/accordion.js", true, 3); }