/** * Export support scripts * * @param * @return */ function exportSupportScripts() { // export flv/mp3 player //copy(ilPlayerUtil::getFlashVideoPlayerFilename(true), // $this->js_dir."/".ilPlayerUtil::getFlashVideoPlayerFilename()); //copy("./Services/MediaObjects/flash_mp3_player/mp3player.swf", // $this->mp3_dir."/mp3player.swf"); // basic js copy('./Services/JavaScript/js/Basic.js', $this->js_dir . '/Basic.js'); copy('./Services/UIComponent/Overlay/js/ilOverlay.js', $this->js_dir . '/ilOverlay.js'); // jquery include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; copy(iljQueryUtil::getLocaljQueryPath(), $this->js_dir . '/jquery.js'); copy(iljQueryUtil::getLocaljQueryUIPath(), $this->js_dir . '/jquery-ui-min.js'); copy(iljQueryUtil::getLocalMaphilightPath(), $this->js_dir . '/maphilight.js'); // yui stuff we use include_once "./Services/YUI/classes/class.ilYuiUtil.php"; copy(ilYuiUtil::getLocalPath('yahoo/yahoo-min.js'), $this->js_yahoo_dir . '/yahoo-min.js'); copy(ilYuiUtil::getLocalPath('yahoo-dom-event/yahoo-dom-event.js'), $this->js_yahoo_dir . '/yahoo-dom-event.js'); copy(ilYuiUtil::getLocalPath('animation/animation-min.js'), $this->js_yahoo_dir . '/animation-min.js'); copy(ilYuiUtil::getLocalPath('container/container-min.js'), $this->js_yahoo_dir . '/container-min.js'); copy(ilYuiUtil::getLocalPath('container/assets/skins/sam/container.css'), $this->css_dir . '/container.css'); // accordion copy('./Services/Accordion/js/accordion.js', $this->js_dir . '/accordion.js'); copy('./Services/Accordion/css/accordion.css', $this->css_dir . '/accordion.css'); // page presentation js copy('./Services/COPage/js/ilCOPagePres.js', $this->js_dir . '/ilCOPagePres.js'); // tooltip copy('./Services/UIComponent/Tooltip/js/ilTooltip.js', $this->js_dir . '/ilTooltip.js'); // mediaelement.js include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; ilPlayerUtil::copyPlayerFilesToTargetDirectory($this->flv_dir); // copy(ilPlayerUtil::getLocalMediaElementCssPath(), // $this->css_dir.'/mediaelementplayer.css'); // copy(ilPlayerUtil::getLocalMediaElementJsPath(), // $this->js_dir.'/mediaelement-and-player.js'); }
/** * Prepare HTML exporter * * @param * @return */ function prepareHTMLExporter($a_target_dir) { // system style html exporter include_once "./Services/Style/classes/class.ilSystemStyleHTMLExport.php"; $this->sys_style_html_export = new ilSystemStyleHTMLExport($a_target_dir); $this->sys_style_html_export->export(); // init co page html exporter include_once "./Services/COPage/classes/class.ilCOPageHTMLExport.php"; $this->co_page_html_export = new ilCOPageHTMLExport($a_target_dir); $this->co_page_html_export->setContentStyleId($this->getStyleSheetId()); $this->co_page_html_export->createDirectories(); $this->co_page_html_export->exportStyles(); $this->co_page_html_export->exportSupportScripts(); include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; $this->flv_dir = $a_target_dir . "/" . ilPlayerUtil::getFlashVideoPlayerDirectory(); ilUtil::makeDir($a_target_dir . '/css/yahoo'); ilUtil::makeDir($a_target_dir . '/objects'); ilUtil::makeDir($a_target_dir . '/players'); ilUtil::makeDir($this->flv_dir); include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; // copy(ilPlayerUtil::getFlashVideoPlayerFilename(true), // $a_target_dir.'/js/'.ilPlayerUtil::getFlashVideoPlayerFilename()); ilPlayerUtil::copyPlayerFilesToTargetDirectory($this->flv_dir); copy('./Services/MediaObjects/flash_mp3_player/mp3player.swf', $a_target_dir . '/players/mp3player.swf'); copy('./Modules/Scorm2004/scripts/scorm_2004.js', $a_target_dir . '/js/scorm.js'); copy('./Modules/Scorm2004/scripts/pager.js', $a_target_dir . '/js/pager.js'); copy('./Modules/Scorm2004/scripts/questions/pure.js', $a_target_dir . '/js/pure.js'); copy('./Modules/Scorm2004/scripts/questions/question_handling.js', $a_target_dir . '/js/question_handling.js'); }
/** * export html package */ function exportHTML($a_target_dir, $log, $a_zip_file = true, $a_export_format = "html") { global $tpl, $ilBench, $ilLocator, $ilUser; // initialize temporary target directory ilUtil::delDir($a_target_dir); ilUtil::makeDir($a_target_dir); $mob_dir = $a_target_dir . "/mobs"; ilUtil::makeDir($mob_dir); $file_dir = $a_target_dir . "/files"; ilUtil::makeDir($file_dir); $teximg_dir = $a_target_dir . "/teximg"; ilUtil::makeDir($teximg_dir); $style_dir = $a_target_dir . "/style"; ilUtil::makeDir($style_dir); $style_img_dir = $a_target_dir . "/style/images"; ilUtil::makeDir($style_img_dir); $content_style_dir = $a_target_dir . "/content_style"; ilUtil::makeDir($content_style_dir); $content_style_img_dir = $a_target_dir . "/content_style/images"; ilUtil::makeDir($content_style_img_dir); $GLOBALS["teximgcnt"] = 0; // export system style sheet $location_stylesheet = ilUtil::getStyleSheetLocation("filesystem"); $style_name = $ilUser->prefs["style"] . ".css"; copy($location_stylesheet, $style_dir . "/" . $style_name); $fh = fopen($location_stylesheet, "r"); $css = fread($fh, filesize($location_stylesheet)); preg_match_all("/url\\(([^\\)]*)\\)/", $css, $files); foreach (array_unique($files[1]) as $fileref) { $fileref = dirname($location_stylesheet) . "/" . $fileref; if (is_file($fileref)) { copy($fileref, $style_img_dir . "/" . basename($fileref)); } } fclose($fh); $location_stylesheet = ilUtil::getStyleSheetLocation(); // export content style sheet $ilBench->start("ExportHTML", "exportContentStyle"); if ($this->getStyleSheetId() < 1) { $cont_stylesheet = "./Services/COPage/css/content.css"; $css = fread(fopen($cont_stylesheet, 'r'), filesize($cont_stylesheet)); preg_match_all("/url\\(([^\\)]*)\\)/", $css, $files); foreach (array_unique($files[1]) as $fileref) { if (is_file(str_replace("..", ".", $fileref))) { copy(str_replace("..", ".", $fileref), $content_style_img_dir . "/" . basename($fileref)); } $css = str_replace($fileref, "images/" . basename($fileref), $css); } fwrite(fopen($content_style_dir . "/content.css", 'w'), $css); } else { $style = new ilObjStyleSheet($this->getStyleSheetId()); $style->writeCSSFile($content_style_dir . "/content.css", "images"); $style->copyImagesToDir($content_style_img_dir); } $ilBench->stop("ExportHTML", "exportContentStyle"); // export syntax highlighting style $syn_stylesheet = ilObjStyleSheet::getSyntaxStylePath(); copy($syn_stylesheet, $a_target_dir . "/syntaxhighlight.css"); // get learning module presentation gui class include_once "./Modules/LearningModule/classes/class.ilLMPresentationGUI.php"; $_GET["cmd"] = "nop"; $lm_gui =& new ilLMPresentationGUI(); $lm_gui->setOfflineMode(true); $lm_gui->setOfflineDirectory($a_target_dir); $lm_gui->setExportFormat($a_export_format); // export pages $ilBench->start("ExportHTML", "exportHTMLPages"); $this->exportHTMLPages($lm_gui, $a_target_dir); $ilBench->stop("ExportHTML", "exportHTMLPages"); // export glossary terms $ilBench->start("ExportHTML", "exportHTMLGlossaryTerms"); $this->exportHTMLGlossaryTerms($lm_gui, $a_target_dir); $ilBench->stop("ExportHTML", "exportHTMLGlossaryTerms"); // export all media objects $ilBench->start("ExportHTML", "exportHTMLMediaObjects"); $linked_mobs = array(); foreach ($this->offline_mobs as $mob) { if (ilObject::_exists($mob) && ilObject::_lookupType($mob) == "mob") { $this->exportHTMLMOB($a_target_dir, $lm_gui, $mob, "_blank", $linked_mobs); } } $linked_mobs2 = array(); // mobs linked in link areas foreach ($linked_mobs as $mob) { if (ilObject::_exists($mob)) { $this->exportHTMLMOB($a_target_dir, $lm_gui, $mob, "_blank", $linked_mobs2); } } $_GET["obj_type"] = "MediaObject"; $_GET["obj_id"] = $a_mob_id; $_GET["cmd"] = ""; $ilBench->stop("ExportHTML", "exportHTMLMediaObjects"); // export all file objects $ilBench->start("ExportHTML", "exportHTMLFileObjects"); foreach ($this->offline_files as $file) { $this->exportHTMLFile($a_target_dir, $file); } $ilBench->stop("ExportHTML", "exportHTMLFileObjects"); // export table of contents $ilBench->start("ExportHTML", "exportHTMLTOC"); $ilLocator->clearItems(); if ($this->isActiveTOC()) { $tpl = new ilTemplate("tpl.main.html", true, true); //$tpl->addBlockFile("CONTENT", "content", "tpl.adm_content.html"); $content =& $lm_gui->showTableOfContents(); $file = $a_target_dir . "/table_of_contents.html"; // open file if (!($fp = @fopen($file, "w+"))) { die("<b>Error</b>: Could not open \"" . $file . "\" for writing" . " in <b>" . __FILE__ . "</b> on line <b>" . __LINE__ . "</b><br />"); } chmod($file, 0770); fwrite($fp, $content); fclose($fp); } $ilBench->stop("ExportHTML", "exportHTMLTOC"); // export images $ilBench->start("ExportHTML", "exportHTMLImages"); $image_dir = $a_target_dir . "/images"; ilUtil::makeDir($image_dir); ilUtil::makeDir($image_dir . "/browser"); copy(ilUtil::getImagePath("enlarge.png", false, "filesystem"), $image_dir . "/enlarge.png"); copy(ilUtil::getImagePath("browser/blank.png", false, "filesystem"), $image_dir . "/browser/plus.png"); copy(ilUtil::getImagePath("browser/blank.png", false, "filesystem"), $image_dir . "/browser/minus.png"); copy(ilUtil::getImagePath("browser/blank.png", false, "filesystem"), $image_dir . "/browser/blank.png"); copy(ilUtil::getImagePath("spacer.png", false, "filesystem"), $image_dir . "/spacer.png"); copy(ilUtil::getImagePath("icon_st.png", false, "filesystem"), $image_dir . "/icon_st.png"); copy(ilUtil::getImagePath("icon_pg.png", false, "filesystem"), $image_dir . "/icon_pg.png"); copy(ilUtil::getImagePath("icon_st_s.png", false, "filesystem"), $image_dir . "/icon_st_s.png"); copy(ilUtil::getImagePath("icon_pg_s.png", false, "filesystem"), $image_dir . "/icon_pg_s.png"); copy(ilUtil::getImagePath("icon_lm.png", false, "filesystem"), $image_dir . "/icon_lm.png"); copy(ilUtil::getImagePath("icon_lm_s.png", false, "filesystem"), $image_dir . "/icon_lm_s.png"); copy(ilUtil::getImagePath("nav_arr_L.png", false, "filesystem"), $image_dir . "/nav_arr_L.png"); copy(ilUtil::getImagePath("nav_arr_R.png", false, "filesystem"), $image_dir . "/nav_arr_R.png"); copy(ilUtil::getImagePath("browser/forceexp.png", false, "filesystem"), $image_dir . "/browser/forceexp.png"); copy(ilUtil::getImagePath("download.png", false, "filesystem"), $image_dir . "/download.png"); $ilBench->stop("ExportHTML", "exportHTMLImages"); // export flv/mp3 player $services_dir = $a_target_dir . "/Services"; ilUtil::makeDir($services_dir); $media_service_dir = $services_dir . "/MediaObjects"; ilUtil::makeDir($media_service_dir); include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; $flv_dir = $a_target_dir . "/" . ilPlayerUtil::getFlashVideoPlayerDirectory(); ilUtil::makeDir($flv_dir); $mp3_dir = $media_service_dir . "/flash_mp3_player"; ilUtil::makeDir($mp3_dir); // copy(ilPlayerUtil::getFlashVideoPlayerFilename(true), // $flv_dir."/".ilPlayerUtil::getFlashVideoPlayerFilename()); ilPlayerUtil::copyPlayerFilesToTargetDirectory($flv_dir); // js files ilUtil::makeDir($a_target_dir . '/js'); ilUtil::makeDir($a_target_dir . '/js/yahoo'); ilUtil::makeDir($a_target_dir . '/css'); include_once "./Services/YUI/classes/class.ilYuiUtil.php"; foreach (self::getSupplyingExportFiles($a_target_dir) as $f) { if ($f["source"] != "") { copy($f["source"], $f["target"]); } } // template workaround: reset of template $tpl = new ilTemplate("tpl.main.html", true, true); $tpl->setVariable("LOCATION_STYLESHEET", $location_stylesheet); $tpl->addBlockFile("CONTENT", "content", "tpl.adm_content.html"); // zip everything $ilBench->start("ExportHTML", "zip"); if (true) { if ($a_zip_file) { // zip it all $date = time(); $zip_file = $this->getExportDirectory("html") . "/" . $date . "__" . IL_INST_ID . "__" . $this->getType() . "_" . $this->getId() . ".zip"; ilUtil::zip($a_target_dir, $zip_file); ilUtil::delDir($a_target_dir); } } $ilBench->stop("ExportHTML", "zip"); }
/** * Export support scripts * * @param * @return */ function exportSupportScripts() { // basic js copy('./Services/JavaScript/js/Basic.js', $this->js_dir . '/Basic.js'); copy('./Services/UIComponent/Overlay/js/ilOverlay.js', $this->js_dir . '/ilOverlay.js'); // jquery include_once "./Services/jQuery/classes/class.iljQueryUtil.php"; copy(iljQueryUtil::getLocaljQueryPath(), $this->js_dir . '/jquery.js'); copy(iljQueryUtil::getLocaljQueryUIPath(), $this->js_dir . '/jquery-ui-min.js'); copy(iljQueryUtil::getLocalMaphilightPath(), $this->js_dir . '/maphilight.js'); // yui stuff we use include_once "./Services/YUI/classes/class.ilYuiUtil.php"; copy(ilYuiUtil::getLocalPath('yahoo/yahoo-min.js'), $this->js_yahoo_dir . '/yahoo-min.js'); copy(ilYuiUtil::getLocalPath('yahoo-dom-event/yahoo-dom-event.js'), $this->js_yahoo_dir . '/yahoo-dom-event.js'); copy(ilYuiUtil::getLocalPath('animation/animation-min.js'), $this->js_yahoo_dir . '/animation-min.js'); copy(ilYuiUtil::getLocalPath('container/container-min.js'), $this->js_yahoo_dir . '/container-min.js'); copy(ilYuiUtil::getLocalPath('container/assets/skins/sam/container.css'), $this->css_dir . '/container.css'); // accordion copy('./Services/Accordion/js/accordion.js', $this->js_dir . '/accordion.js'); copy('./Services/Accordion/css/accordion.css', $this->css_dir . '/accordion.css'); // page presentation js copy('./Services/COPage/js/ilCOPagePres.js', $this->js_dir . '/ilCOPagePres.js'); // tooltip copy('./Services/UIComponent/Tooltip/js/ilTooltip.js', $this->js_dir . '/ilTooltip.js'); // mediaelement.js include_once "./Services/MediaObjects/classes/class.ilPlayerUtil.php"; ilPlayerUtil::copyPlayerFilesToTargetDirectory($this->flv_dir); // matching question copy('./Modules/TestQuestionPool/js/ilMatchingQuestion.js', $this->js_dir . '/ilMatchingQuestion.js'); copy('./Modules/TestQuestionPool/templates/default/test_javascript.css', $this->css_dir . '/test_javascript.css'); // copy(ilPlayerUtil::getLocalMediaElementCssPath(), // $this->css_dir.'/mediaelementplayer.css'); // copy(ilPlayerUtil::getLocalMediaElementJsPath(), // $this->js_dir.'/mediaelement-and-player.js'); }