4require_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") {
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");
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()
424 $page_obj->setPresentationTitle($page[
"title"]);
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);
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 =
"")
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"]])) {
An exception for terminatinating execution or to throw for unit testing.
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...
const RENDER_PURPOSE_PREVIEW
static _instantiateQuestion($question_id)
static _instanciateQuestion($question_id)
Creates an instance of a question with a given question id.
HTML export class for pages.
static recursive_dirscan($dir, &$arr)
Recursively scans a given directory and writes path and filename into referenced array.
special template class to simplify handling of ITX/PEAR
Glossary definition page object.
static getDefinitionList($a_term_id)
static
static _lookGlossaryTerm($term_id)
get glossary term
static _extractObjIdOfTarget($a_target)
Extract object id out of target.
static _getTargetsOfSource($a_source_type, $a_source_id, $a_source_lang="-")
Get all targets of a source object (e.g., a page)
static getAffectiveLocalization($a_id)
Get affective localization.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
static input2xmlReplaceLists($a_text)
Converts xml from DB to output in edit textarea.
static getJSTextInitCode($a_lang)
Get js txt init code.
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
Scorm 2004 Question Exporter.
static questionsJS(array $a_qids=null)
__construct($a_slm_object, $a_id=0)
Constructor.
getGlossaryTermIds()
Get glossary term ids in sco.
exportXMLMediaObjects(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
copy($a_target_slm)
Copy sco.
static convertLists($a_text)
Convert * and # to lists.
exportXMLPageObjects($a_target_dir, &$a_xml_writer, $a_inst, &$expLog)
exportPDF($a_inst, $a_target_dir, &$expLog)
exportHTML( $a_inst, $a_target_dir, &$expLog, $a_asset_type="sco", $a_one_file="")
static renderMetaPage($a_tpl, $a_sco, $a_asset_type="", $mode="")
Render meta page (description/objectives at beginning)
exportXMLMetaData(&$a_xml_writer)
static fixFullscreeenLink($matches)
exportHTMLPageObjects( $a_inst, $a_target_dir, &$expLog, $mode, $a_asset_type="sco", $a_one_file="", $a_sco_tpl=null)
Export HTML pages of SCO.
insertDefaultSequencingItem()
Insert default sequencing item.
static renderNavigation($a_tpl, $a_spacer_img="", $a_lang="")
Render navigation.
exportHTML4PDF($a_inst, $a_target_dir, &$expLog)
static insertQuestion($matches)
delete_rec($a_delete_meta_data=true)
Delete Nested Page Objects.
create($a_upload=false, $a_template=false)
Create asset.
exportPDFPrepareXmlNFiles($a_inst, $a_target_dir, &$expLog, &$a_xml_writer)
exportFileItems($a_target_dir, &$expLog)
export files of file itmes
exportScorm($a_inst, $a_target_dir, $ver, &$expLog)
Class ilSCORM2004Condition.
static getInstance($a_slm_object, $a_id=0, $a_halt=true)
getSLMId()
Get ID of parent Scorm Learning Module Object.
setType($a_type)
Set type.
getDescription()
Get description.
Class ilSCORM2004Page GUI class.
static initExport()
Init export.
static getGlossaryHTML($a_sco)
Get glossary html (only in export mode)
static getGlossaryOverviewId()
Get sco glossary overlay id.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.
xmlSetDtdDef($dtdDef)
Sets dtd definition.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc