4 require_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004Node.php");
42 $this->tpl = $DIC[
"tpl"];
43 $this->lng = $DIC->language();
44 $this->ctrl = $DIC->ctrl();
52 public function delete($a_delete_meta_data =
true)
54 $node_data = $this->tree->getNodeData($this->
getId());
56 $this->tree->deleteTree($node_data);
57 parent::deleteSeqInfo();
63 public function create($a_upload =
false, $a_template =
false)
65 include_once(
"./Modules/Scorm2004/classes/seq_editor/class.ilSCORM2004Item.php");
66 include_once(
"./Modules/Scorm2004/classes/seq_editor/class.ilSCORM2004Objective.php");
67 parent::create($a_upload);
91 $childs = $this->tree->getChilds($this->
getId());
92 foreach ($childs as $child) {
94 if (is_object($obj)) {
95 if ($obj->getType() ==
"page") {
96 $obj->delete($a_delete_meta_data);
101 parent::delete($a_delete_meta_data);
107 public function copy($a_target_slm)
111 if ($this->
getSLMId() != $a_target_slm->getId()) {
112 $ass->setImportId(
"il__ass_" . $this->
getId());
114 $ass->setSLMId($a_target_slm->getId());
115 $ass->setType($this->
getType());
118 $a_copied_nodes[$this->
getId()] = $ass->getId();
121 include_once(
"Services/MetaData/classes/class.ilMD.php");
123 $new_md = $md->cloneMD($a_target_slm->getId(), $ass->getId(), $this->
getType());
130 public function exportScorm($a_inst, $a_target_dir, $ver, &$expLog)
132 copy(
'./xml/ilias_co_3_7.dtd', $a_target_dir .
'/ilias_co_3_7.dtd');
133 copy(
'./Modules/Scorm2004/templates/xsl/sco.xsl', $a_target_dir .
'/sco.xsl');
139 $metadata_xml = $a_xml_writer->xmlDumpMem(
false);
140 $a_xml_writer->_XmlWriter;
141 $xsl = file_get_contents(
"./Modules/Scorm2004/templates/xsl/metadata.xsl");
142 $args = array(
'/_xml' => $metadata_xml ,
'/_xsl' => $xsl );
144 $output = xslt_process($xh,
"arg:/_xml",
"arg:/_xsl", null, $args, null);
146 file_put_contents($a_target_dir .
'/indexMD.xml', $output);
150 $a_xml_writer->
xmlSetDtdDef(
"<!DOCTYPE ContentObject SYSTEM \"http://www.ilias.de/download/dtd/ilias_co_3_7.dtd\">");
153 $a_xml_writer->xmlSetGenCmt(
"Export of ILIAS Content Module " . $this->
getId() .
" of installation " . $a_inst .
".");
156 $a_xml_writer->xmlHeader();
158 $a_xml_writer->xmlStartTag(
"ContentObject", array(
"Type" =>
"SCORM2004SCO"));
166 $this->
exportHTML($a_inst, $a_target_dir, $expLog);
170 copy(
'./Modules/Scorm2004/scripts/scorm_12.js', $a_target_dir .
'/js/scorm.js');
173 $a_xml_writer->xmlEndTag(
"ContentObject");
175 $a_xml_writer->xmlDumpFile($a_target_dir .
'/index.xml',
false);
177 $a_xml_writer->_XmlWriter;
180 if ($this->
getType() ==
"sco") {
181 $objectives_text =
"";
185 foreach ($tr_data as
$data) {
186 $objectives_text .= $data->getObjectiveID();
188 $a_xml_writer->xmlStartTag(
"sco");
189 $a_xml_writer->xmlElement(
"objective", null, $objectives_text);
190 $a_xml_writer->xmlEndTag(
"sco");
191 $a_xml_writer->xmlDumpFile($a_target_dir .
'/sco.xml',
false);
192 $a_xml_writer->_XmlWriter;
201 $a_asset_type =
"sco",
204 $this->slm_object->prepareHTMLExporter($a_target_dir);
224 public function exportPDF($a_inst, $a_target_dir, &$expLog)
230 $a_xml_writer->
xmlStartTag(
"ContentObject", array(
"Type" =>
"SCORM2004SCO"));
232 $a_xml_writer->xmlEndTag(
"ContentObject");
233 include_once
'Services/Transformation/classes/class.ilXML2FO.php';
235 $xml2FO->setXSLTLocation(
'./Modules/Scorm2004/templates/xsl/contentobject2fo.xsl');
236 $xml2FO->setXMLString($a_xml_writer->xmlDumpMem());
237 $xml2FO->setXSLTParams(array(
'target_dir' => $a_target_dir));
238 $xml2FO->transform();
239 $fo_string = $xml2FO->getFOString();
240 $fo_xml = simplexml_load_string($fo_string);
241 $fo_ext = $fo_xml->xpath(
"//fo:declarations");
242 $fo_ext = $fo_ext[0];
244 include_once
"./Services/Utilities/classes/class.ilFileUtils.php";
247 foreach (
$results[
"file"] as $key => $value) {
248 $e = $fo_ext->addChild(
"fox:embedded-file",
"",
"http://xml.apache.org/fop/extensions");
249 $e->addAttribute(
"src",
$results[path][$key] . $value);
250 $e->addAttribute(
"name", $value);
251 $e->addAttribute(
"desc",
"");
254 $fo_string = $fo_xml->asXML();
255 $a_xml_writer->_XmlWriter;
269 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php";
270 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
272 $tree =
new ilTree($this->slm_id);
273 $tree->setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
274 $tree->setTreeTablePK(
"slm_id");
275 foreach ($tree->getSubTree($tree->getNodeData($this->getId()),
true,
'page') as $page) {
278 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
280 if (count($q_ids) > 0) {
281 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
282 foreach ($q_ids as $q_id) {
284 $qti_file = fopen($a_target_dir .
"/qti_" . $q_id .
".xml",
"w");
285 fwrite($qti_file, $q_obj->toXML());
287 $x = file_get_contents($a_target_dir .
"/qti_" . $q_id .
".xml");
288 $x = str_replace(
'<?xml version="1.0" encoding="utf-8"?>',
'', $x);
289 $a_xml_writer->appendXML($x);
304 $a_asset_type =
"sco",
308 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004PageGUI.php";
309 include_once
"./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModuleGUI.php";
310 include_once
"./Services/MetaData/classes/class.ilMD.php";
312 $tree =
new ilTree($this->slm_id);
313 $tree->setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
314 $tree->setTreeTablePK(
"slm_id");
329 $sco_tpl =
new ilGlobalTemplate(
"tpl.sco.html",
true,
true,
"Modules/Scorm2004");
336 if ($mode !=
'pdf' && $a_one_file ==
"") {
337 include_once(
"./Services/COPage/classes/class.ilCOPageHTMLExport.php");
339 $pg_exp->getPreparedMainTemplate($sco_tpl);
343 $sco_tpl->setCurrentBlock(
"init");
344 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
345 $sco_tpl->setVariable(
349 $sco_tpl->parseCurrentBlock();
352 foreach ($sco_tpl->getCSSFiles() as $css) {
353 $sco_tpl->setCurrentBlock(
"css_file");
354 $sco_tpl->setVariable(
"CSS_FILE", $css[
"file"]);
355 $sco_tpl->parseCurrentBlock();
357 $styles = array(
"./css/yahoo/container.css",
358 "./css/question_handling.css");
359 foreach ($styles as $style) {
360 $sco_tpl->setCurrentBlock(
"css_file");
361 $sco_tpl->setVariable(
"CSS_FILE", $style);
362 $sco_tpl->parseCurrentBlock();
366 $js_files = $sco_tpl->getJSFiles();
367 $js_files[
"./js/scorm.js"] = 3;
368 $js_files[
"./js/pager.js"] = 3;
369 $js_files[
"./js/pure.js"] = 3;
370 $js_files[
"./js/questions_" . $this->
getId() .
".js"] = 3;
375 for (
$i = 0;
$i <= 3;
$i++) {
376 foreach ($js_files as $script => $batch) {
378 $sco_tpl->setCurrentBlock(
"js_file");
379 $sco_tpl->setVariable(
"JS_FILE", $script);
380 $sco_tpl->parseCurrentBlock();
386 if ($a_asset_type !=
"entry_asset" && $a_asset_type !=
"final_asset") {
387 self::renderNavigation($sco_tpl,
"./images/spacer.png", $lk);
390 $sco_tpl->touchBlock(
"finish");
393 $sco_tpl->setCurrentBlock(
"head");
394 $sco_tpl->setVariable(
"SCO_TITLE", $this->
getTitle());
395 $sco_tpl->parseCurrentBlock();
396 $sco_tpl->touchBlock(
"tail");
399 self::renderMetaPage($sco_tpl, $this, $a_asset_type, $mode);
400 if ($a_one_file !=
"") {
401 fputs($a_one_file,
"<a name='sco" . $this->
getId() .
"'></a>");
402 fputs($a_one_file, $sco_tpl->get(
"meta_page"));
406 require_once
'./Modules/Scorm2004/classes/class.ilQuestionExporter.php';
413 include_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004ScoGUI.php");
414 $pages = $tree->getSubTree($tree->getNodeData($this->getId()),
true,
'page');
415 $sco_q_ids = array();
416 foreach ($pages as $page) {
422 $this->slm_object->getId()
426 $page_obj->setStyleId($this->slm_object->getStyleSheetId());
427 if (count($terms) > 1) {
428 $page_obj->setGlossaryOverviewInfo(
434 $page_output = $page_obj->showPage(
"export");
437 $mob_ids = $page_obj->getSCORM2004Page()->collectMediaObjects(
false);
438 foreach ($mob_ids as $mob_id) {
439 $this->mob_ids[$mob_id] = $mob_id;
441 if ($media_obj->hasFullscreenItem()) {
442 $media_obj->exportMediaFullscreen($a_target_dir, $page_obj->getPageObject());
447 $int_links = $page_obj->getPageObject()->getInternalLinks(
true);
448 if (is_array($int_links)) {
449 foreach ($int_links as $k =>
$e) {
451 if (
$e[
"Type"] ==
"GlossaryItem") {
452 $karr = explode(
":", $k);
455 foreach ($dids as $did) {
458 $mob_ids = $def_pg->collectMediaObjects(
false);
459 foreach ($mob_ids as $mob_id) {
460 $this->mob_ids[$mob_id] = $mob_id;
463 if ($media_obj->hasFullscreenItem()) {
464 $media_obj->exportMediaFullscreen($a_target_dir, $def_pg);
469 foreach ($file_ids as $file_id) {
470 $this->file_ids[$file_id] = $file_id;
478 include_once(
"./Services/COPage/classes/class.ilPCFileList.php");
480 foreach ($file_ids as $file_id) {
481 $this->file_ids[$file_id] = $file_id;
484 if ($mode ==
'pdf') {
485 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
487 foreach ($q_ids as $q_id) {
488 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestionGUI.php");
491 $q_gui->outAdditionalOutput();
492 $html = $q_gui->getPreview(
true);
493 $page_output = preg_replace(
"/{{{{{Question;il__qst_" . $q_id .
"}}}}}/i", $html, $page_output);
496 $sco_tpl->touchBlock(
"pdf_pg_break");
499 $sco_tpl->setCurrentBlock(
"page");
500 $sco_tpl->setVariable(
"PAGE", $page_output);
501 $sco_tpl->parseCurrentBlock();
504 if ($a_one_file !=
"") {
505 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
507 foreach ($q_ids as
$i) {
508 if (!in_array($i, $sco_q_ids)) {
516 if ($mode !=
'pdf') {
517 $sco_tpl->setVariable(
523 if ($a_one_file ==
"") {
524 $output = $sco_tpl->get();
526 $output = $sco_tpl->get(
"page");
529 if ($mode ==
'pdf') {
530 $output = preg_replace(
"/<div class=\"ilc_page_title_PageTitle\">(.*?)<\/div>/i",
"<h2>$1</h2>", $output);
533 $output = preg_replace(
"/mobs\/mm_(\d+)\/([^\"]+)/i",
"./objects/il_" .
IL_INST_ID .
"_mob_$1/$2", $output);
534 $output = preg_replace(
"/\.\/files\/file_(\d+)\/([^\"]+)/i",
"./objects/il_" .
IL_INST_ID .
"_file_$1/$2", $output);
535 $output = preg_replace(
"/\.\/Services\/MediaObjects\/flash_mp3_player/i",
"./players", $output);
536 $output = preg_replace(
"/file=..\/..\/..\/.\//i",
"file=../", $output);
538 if ($mode !=
'pdf') {
539 $output = preg_replace_callback(
"/href=\"&mob_id=(\d+)&pg_id=(\d+)\"/", array(get_class($this),
'fixFullscreeenLink'), $output);
541 $output = preg_replace_callback(
"/href=\"fullscreen_(\d+)\.html\"/", array(get_class($this),
'fixFullscreeenLink'), $output);
542 $output = preg_replace_callback(
"/{{{{{(Question;)(il__qst_[0-9]+)}}}}}/", array(get_class($this),
'insertQuestion'), $output);
543 $q_handling = file_get_contents(
'./Modules/Scorm2004/scripts/questions/question_handling.js');
546 "./Modules/Scorm2004/templates/default/question_handling.css",
547 $a_target_dir .
'/css/question_handling.css' 551 if ($a_one_file !=
"") {
553 if (count($sco_q_ids) > 0) {
554 $output .=
'<script type="text/javascript">';
555 foreach ($sco_q_ids as
$i) {
557 $output .=
"ilias.questions.showCorrectAnswers(" . $i .
"); \n";
560 $output .=
'</script>';
565 $this->mob_ids[$mob_id] = $mob_id;
571 if ($a_one_file !=
"") {
572 fputs($a_one_file, $output);
574 fputs(fopen($a_target_dir .
'/index.html',
'w+'), $output);
590 $lng = $DIC->language();
592 if ($a_spacer_img ==
"") {
596 $a_lang =
$lng->getLangKey();
599 $a_tpl->setCurrentBlock(
"ilLMNavigation");
600 $a_tpl->setVariable(
"TXT_PREVIOUS",
$lng->txtlng(
"content",
'scplayer_previous', $a_lang));
601 $a_tpl->setVariable(
"SRC_SPACER", $a_spacer_img);
602 $a_tpl->setVariable(
"TXT_NEXT",
$lng->txtlng(
"content",
'scplayer_next', $a_lang));
603 $a_tpl->parseCurrentBlock();
604 $a_tpl->setCurrentBlock(
"ilLMNavigation2");
605 $a_tpl->setVariable(
"TXT_PREVIOUS",
$lng->txtlng(
"content",
'scplayer_previous', $a_lang));
606 $a_tpl->setVariable(
"SRC_SPACER", $a_spacer_img);
607 $a_tpl->setVariable(
"TXT_NEXT",
$lng->txtlng(
"content",
'scplayer_next', $a_lang));
608 $a_tpl->parseCurrentBlock();
619 public static function renderMetaPage($a_tpl, $a_sco, $a_asset_type =
"", $mode =
"")
623 $lng = $DIC->language();
625 if ($a_sco->getType() !=
"sco" || $a_sco->getHideObjectivePage()) {
629 if ($a_asset_type !=
"entry_asset" && $a_asset_type !=
"final_asset") {
630 $meta =
new ilMD($a_sco->getSLMId(), $a_sco->getId(), $a_sco->getType());
631 $desc_ids = $meta->
getGeneral()->getDescriptionIds();
632 $sco_description = $meta->getGeneral()->getDescription($desc_ids[0])->getDescription();
635 if ($mode !=
'pdf') {
637 if ($a_asset_type !=
"entry_asset" && $a_asset_type !=
"final_asset") {
638 $a_tpl->setCurrentBlock(
"title");
639 $a_tpl->setVariable(
"SCO_TITLE", $a_sco->getTitle());
640 $a_tpl->parseCurrentBlock();
644 $a_tpl->setCurrentBlock(
"pdf_title");
645 $a_tpl->setVariable(
"SCO_TITLE", $a_sco->getTitle());
646 $a_tpl->parseCurrentBlock();
647 $a_tpl->touchBlock(
"pdf_break");
651 if (trim($sco_description) !=
"") {
652 $a_tpl->setCurrentBlock(
"sco_desc");
653 $a_tpl->setVariable(
"TXT_DESC",
$lng->txt(
"description"));
654 include_once(
"./Services/COPage/classes/class.ilPCParagraph.php");
655 $a_tpl->setVariable(
"VAL_DESC", self::convertLists($sco_description));
656 $a_tpl->parseCurrentBlock();
659 if ($a_asset_type ==
"sco") {
661 $objs = $a_sco->getObjectives();
662 if (count($objs) > 0) {
663 foreach ($objs as $objective) {
664 $a_tpl->setCurrentBlock(
"sco_obj");
665 $a_tpl->setVariable(
"VAL_OBJECTIVE", self::convertLists($objective->getObjectiveID()));
666 $a_tpl->parseCurrentBlock();
668 $a_tpl->setCurrentBlock(
"sco_objs");
669 $a_tpl->setVariable(
"TXT_OBJECTIVES",
$lng->txt(
"sahs_objectives"));
670 $a_tpl->parseCurrentBlock();
673 $a_tpl->setCurrentBlock(
"meta_page");
674 $a_tpl->parseCurrentBlock();
686 include_once(
"./Services/COPage/classes/class.ilPCParagraph.php");
687 $a_text = nl2br($a_text);
688 $a_text = str_replace(array(
"\n",
"\r"),
"", $a_text);
689 $a_text = str_replace(
"<br>",
"<br />", $a_text);
691 $a_text = str_replace(
692 array(
"<SimpleBulletList>",
"</SimpleBulletList>",
693 "<SimpleListItem>",
"</SimpleListItem>",
694 "<SimpleNumberedList>",
"</SimpleNumberedList>" 696 array(
"<ul class='ilc_list_u_BulletedList'>",
"</ul>",
697 "<li class='ilc_list_item_StandardListItem'>",
"</li>",
698 "<ol class='ilc_list_o_NumberedList'>",
"</ol>" 708 if ($media_obj->hasFullscreenItem()) {
709 return "href=\"./objects/il_" .
IL_INST_ID .
"_mob_" . $matches[1] .
"/fullscreen.html\"";
719 $ret = $q_exporter->exportQuestion($matches[2],
"./objects/",
"offline");
726 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004PageNode.php";
727 include_once
"./Modules/Scorm2004/classes/class.ilSCORM2004Page.php";
729 $tree =
new ilTree($this->slm_id);
730 $tree->setTableNames(
'sahs_sc13_tree',
'sahs_sc13_tree_node');
731 $tree->setTreeTablePK(
"slm_id");
733 $pages = $tree->getSubTree($tree->getNodeData($this->getId()),
true,
'page');
734 foreach ($pages as $page) {
735 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Page Object " . $page[
"obj_id"]);
739 $page_obj->exportXML($a_xml_writer,
"normal", $a_inst);
742 $mob_ids = $page_obj->getMediaObjectIds();
743 foreach ($mob_ids as $mob_id) {
744 $this->mob_ids[$mob_id] = $mob_id;
748 $file_ids = $page_obj->getFileItemIds();
749 foreach ($file_ids as $file_id) {
750 $this->file_ids[$file_id] = $file_id;
753 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
755 if (count($q_ids) > 0) {
756 include_once(
"./Modules/TestQuestionPool/classes/class.assQuestion.php");
757 foreach ($q_ids as $q_id) {
760 if (is_object($q_obj)) {
761 $qti_file = fopen($a_target_dir .
"/qti_" . $q_id .
".xml",
"w");
762 fwrite($qti_file, $q_obj->toXML());
774 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
775 include_once(
"./Modules/File/classes/class.ilObjFile.php");
776 $linked_mobs = array();
777 if (is_array($this->mob_ids)) {
779 foreach ($this->mob_ids as $mob_id) {
781 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
783 $media_obj->exportXML($a_xml_writer, $a_inst);
784 $lmobs = $media_obj->getLinkedMediaObjects($this->mob_ids);
785 $linked_mobs = array_merge($linked_mobs, $lmobs);
791 foreach ($linked_mobs as $mob_id) {
793 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
795 $media_obj->exportXML($a_xml_writer, $a_inst);
800 if (is_array($this->file_ids)) {
801 foreach ($this->file_ids as $file_id) {
803 $expLog->write(date(
"[y-m-d H:i:s] ") .
"File Item " . $file_id);
804 $file_obj =
new ilObjFile($file_id,
false);
805 $file_obj->export($a_target_dir);
818 include_once(
"./Modules/File/classes/class.ilObjFile.php");
819 if (is_array($this->file_ids)) {
820 foreach ($this->file_ids as $file_id) {
821 $expLog->write(date(
"[y-m-d H:i:s] ") .
"File Item " . $file_id);
823 $file_obj =
new ilObjFile($file_id,
false);
824 $file_obj->export($a_target_dir);
827 $expLog->write(date(
"[y-m-d H:i:s] ") .
"File Item not found, ID: " . $file_id);
832 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
833 $linked_mobs = array();
834 if (is_array($this->mob_ids)) {
836 foreach ($this->mob_ids as $mob_id) {
838 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
840 $media_obj->exportFiles($a_target_dir, $expLog);
841 $lmobs = $media_obj->getLinkedMediaObjects($this->mob_ids);
842 $linked_mobs = array_merge($linked_mobs, $lmobs);
849 foreach ($linked_mobs as $mob_id) {
851 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
853 $media_obj->exportFiles($a_target_dir);
860 foreach ($this->q_media as $media) {
863 if (is_file($media)) {
864 copy($media, $a_target_dir .
"/objects/" . basename($media));
877 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
879 $md2xml->setExportMode(
true);
880 $md2xml->startExport();
881 $a_xml_writer->appendXML($md2xml->getXML());
888 require_once(
"./Modules/Scorm2004/classes/class.ilSCORM2004Export.php");
890 $export =
new ilSCORM2004Export($this);
891 foreach ($export->getSupportedExportTypes() as
$type) {
892 $dir = $export->getExportDirectoryForType(
$type);
894 if (!@is_dir($dir) or !is_writeable($dir)) {
901 while ($entry = $cdir->read()) {
902 if ($entry !=
"." and
905 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(" . $this->
getType() .
"_)" . $this->
getId() .
"+\.zip\$~", $entry) or
906 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(" . $this->
getType() .
"_)" . $this->
getId() .
"+\.pdf\$~", $entry) or
907 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(" . $this->
getType() .
"_)" . $this->
getId() .
"+\.iso\$~", $entry)
909 $file[$entry .
$type] = array(
"type" =>
$type,
"file" => $entry,
910 "size" => filesize($dir .
"/" . $entry));
932 $childs = $this->tree->getChilds($this->
getId());
934 foreach ($childs as
$c) {
939 foreach ($links as $l) {
940 if ($l[
"type"] ==
"git" && (
int) $l[
"inst"] == 0 && !isset($ids[$l[
"id"]])) {
exportPDF($a_inst, $a_target_dir, &$expLog)
static getJSTextInitCode($a_lang)
Get js txt init code.
Class ilSCORM2004Condition.
exportHTMLPageObjects( $a_inst, $a_target_dir, &$expLog, $mode, $a_asset_type="sco", $a_one_file="", $a_sco_tpl=null)
Export HTML pages of SCO.
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
Scorm 2004 Question Exporter.
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.
static getDefinitionList($a_term_id)
static
static fixFullscreeenLink($matches)
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
xmlSetDtdDef($dtdDef)
Sets dtd definition.
special template class to simplify handling of ITX/PEAR
HTML export class for pages.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
static _extractObjIdOfTarget($a_target)
Extract object id out of target.
__construct($a_slm_object, $a_id=0)
Constructor.
static renderMetaPage($a_tpl, $a_sco, $a_asset_type="", $mode="")
Render meta page (description/objectives at beginning)
create($a_upload=false, $a_template=false)
Create asset.
static convertLists($a_text)
Convert * and # to lists.
static getGlossaryOverviewId()
Get sco glossary overlay id.
exportFileItems($a_target_dir, &$expLog)
export files of file itmes
getSLMId()
Get ID of parent Scorm Learning Module Object.
getGlossaryTermIds()
Get glossary term ids in sco.
static input2xmlReplaceLists($a_text)
Converts xml from DB to output in edit textarea.
static getInstance($a_slm_object, $a_id=0, $a_halt=true)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static _getQuestionGUI($question_type, $question_id=-1)
Creates a question gui representation and returns the alias to the question gui note: please do not u...
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
insertDefaultSequencingItem()
Insert default sequencing item.
exportXMLMediaObjects(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
setPresentationTitle($a_title="")
delete_rec($a_delete_meta_data=true)
Delete Nested Page Objects.
exportHTML( $a_inst, $a_target_dir, &$expLog, $a_asset_type="sco", $a_one_file="")
static _getTargetsOfSource($a_source_type, $a_source_id, $a_source_lang="-")
Get all targets of a source object (e.g., a page)
getDescription()
Get description.
Glossary definition page object.
exportPDFPrepareXmlNFiles($a_inst, $a_target_dir, &$expLog, &$a_xml_writer)
static _lookupType($a_id, $a_reference=false)
lookup object type
static _instantiateQuestion($question_id)
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
exportHTML4PDF($a_inst, $a_target_dir, &$expLog)
static renderNavigation($a_tpl, $a_spacer_img="", $a_lang="")
Render navigation.
static insertQuestion($matches)
exportXMLPageObjects($a_target_dir, &$a_xml_writer, $a_inst, &$expLog)
Class ilSCORM2004Page GUI class.
__construct(Container $dic, ilPlugin $plugin)
static recursive_dirscan($dir, &$arr)
Recursively scans a given directory and writes path and filename into referenced array.
static getGlossaryHTML($a_sco)
Get glossary html (only in export mode)
copy($a_target_slm)
Copy sco.
static getAffectiveLocalization($a_id)
Get affective localization.
setType($a_type)
Set type.
const RENDER_PURPOSE_PREVIEW
static _lookGlossaryTerm($term_id)
get glossary term
exportScorm($a_inst, $a_target_dir, $ver, &$expLog)
exportXMLMetaData(&$a_xml_writer)
static questionsJS(array $a_qids=null)
static initExport()
Init export.