4 require_once
"./Services/Object/classes/class.ilObject.php";
5 require_once
"Services/MetaData/classes/class.ilMDLanguageItem.php";
48 parent::__construct($a_id,$a_call_by_reference);
52 $this->mob_ids =
array();
53 $this->file_ids =
array();
54 $this->q_ids =
array();
60 function create($a_no_meta_data =
false)
87 # echo "Content<br>\n"; 90 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
91 $this->lm_tree->setTreeTablePK(
"lm_id");
96 $set = $ilDB->query(
"SELECT * FROM lm_glossaries ".
97 " WHERE lm_id = ".$ilDB->quote($this->getId(),
"integer")
100 while ($rec = $ilDB->fetchAssoc($set))
102 $glos[] = $rec[
"glo_id"];
116 return parent::getTitle();
124 parent::setTitle($a_title);
135 return parent::getDescription();
143 parent::setDescription($a_description);
155 $this->import_id = $a_id;
165 $this->layout_per_page = $a_val;
175 return $this->layout_per_page;
185 $this->disable_def_feedback = $a_val;
195 return $this->disable_def_feedback;
205 $this->progr_icons = $a_val;
215 return $this->progr_icons;
225 $this->store_tries = $a_val;
235 return $this->store_tries;
245 $this->restrict_forw_nav = $a_val;
255 return $this->restrict_forw_nav;
286 $ilDB->manipulate(
"DELETE FROM lm_glossaries WHERE ".
287 " lm_id = ".$ilDB->quote($this->getId(),
"integer")
291 $ilDB->manipulate(
"INSERT INTO lm_glossaries ".
292 "(lm_id, glo_id) VALUES (".
293 $ilDB->quote($this->getId(),
"integer").
",".
294 $ilDB->quote($glo_id,
"integer").
319 parent::putInTree($a_parent);
334 $this->lm_tree->setTreeTablePK(
"lm_id");
335 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
336 $this->lm_tree->addTree($this->
getId(), 1);
346 $this->auto_glossaries =
array();
347 if (is_array($a_val))
349 foreach ($a_val as $v)
353 !in_array($v, $this->auto_glossaries))
355 $this->auto_glossaries[] = $v;
398 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
399 include_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
400 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
402 $root_id = $this->lm_tree->getRootId();
406 $chap->setType(
"st");
407 $chap->setTitle($lng->txt(
"cont_new_chap"));
408 $chap->setLMId($this->
getId());
414 $page->setType(
"pg");
415 $page->setTitle($lng->txt(
"cont_new_page"));
416 $page->setLMId($this->
getId());
428 $this->for_translation = $a_val;
458 if(!is_writable($lm_data_dir))
460 $this->
ilias->raiseError(
"Content object Data Directory (".$lm_data_dir
461 .
") not writeable.",$this->
ilias->error_obj->FATAL);
465 $lm_dir = $lm_data_dir.
"/lm_".$this->
getId();
467 if(!@is_dir($lm_dir))
469 $this->
ilias->raiseError(
"Creation of Learning Module Directory failed.",$this->
ilias->error_obj->FATAL);
477 $this->
ilias->raiseError(
"Creation of Import Directory failed.",$this->
ilias->error_obj->FATAL);
487 "/lm_".$this->getId();
495 if(strlen($this->import_dir))
501 "/lm_".$this->getId().
"/import";
520 $this->import_dir = $a_import_dir;
532 if(!is_writable($lm_data_dir))
534 $this->
ilias->raiseError(
"Content object Data Directory (".$lm_data_dir
535 .
") not writeable.",$this->
ilias->error_obj->FATAL);
538 $lm_dir = $lm_data_dir.
"/lm_".$this->
getId();
540 if(!@is_dir($lm_dir))
542 $this->
ilias->raiseError(
"Creation of Learning Module Directory failed.",$this->
ilias->error_obj->FATAL);
549 $export_dir = $lm_dir.
"/export_scorm";
553 if (substr(
$a_type, 0, 4) ==
"html")
555 $export_dir = $lm_dir.
"/export_".
$a_type;
559 $export_dir = $lm_dir.
"/export";
565 if(!@is_dir($export_dir))
567 $this->
ilias->raiseError(
"Creation of Export Directory failed.",$this->
ilias->error_obj->FATAL);
583 if (substr(
$a_type, 0, 4) ==
"html")
614 if (!parent::delete())
620 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
628 $this->lm_tree->removeTree($this->lm_tree->getTreeId());
634 $q =
"DELETE FROM content_object WHERE id = ".
635 $ilDB->quote($this->
getId(),
"integer");
636 $ilDB->manipulate($q);
639 $q =
"DELETE FROM lm_menu WHERE lm_id = ".
640 $ilDB->quote($this->
getId(),
"integer");
641 $ilDB->manipulate($q);
644 $ilDB->manipulate(
"DELETE FROM lm_glossaries WHERE ".
645 " lm_id = ".$ilDB->quote($this->getId(),
"integer")
670 $this->layout = $a_layout;
686 $this->style_id = $a_style_id;
696 $q =
"UPDATE content_object SET ".
697 " stylesheet = ".$ilDB->quote((
int) $a_style_id,
"integer").
698 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
699 $ilDB->manipulate($q);
701 $this->style_id = $a_style_id;
714 $ilDB->manipulate(
"UPDATE content_object SET ".
715 " header_page = ".$ilDB->quote($a_page_id,
"integer").
716 " WHERE id = ".$ilDB->quote($a_lm_id,
"integer")
730 $ilDB->manipulate(
"UPDATE content_object SET ".
731 " footer_page = ".$ilDB->quote($a_page_id,
"integer").
732 " WHERE id = ".$ilDB->quote($a_lm_id,
"integer")
744 if ($a_from_style < 0)
746 $q =
"SELECT stylesheet FROM content_object, style_data ".
747 " WHERE content_object.stylesheet = style_data.id ".
748 " AND style_data.standard = ".$ilDB->quote(0,
"integer").
749 " AND content_object.stylesheet > ".$ilDB->quote(0,
"integer");
750 $style_set = $ilDB->query($q);
751 while($style_rec = $ilDB->fetchAssoc($style_set))
754 $q =
"UPDATE content_object SET ".
755 " stylesheet = ".$ilDB->quote((
int) $a_to_style,
"integer").
756 " WHERE stylesheet = ".$ilDB->quote($style_rec[
"stylesheet"],
"integer");
757 $ilDB->manipulate($q);
760 $style_obj = $ilias->obj_factory->getInstanceByObjId($style_rec[
"stylesheet"]);
761 $style_obj->delete();
766 $q =
"UPDATE content_object SET ".
767 " stylesheet = ".$ilDB->quote((
int) $a_to_style,
"integer").
768 " WHERE stylesheet = ".$ilDB->quote($a_from_style,
"integer");
769 $ilDB->manipulate($q);
780 static protected function _lookup($a_obj_id, $a_field)
784 $q =
"SELECT ".$a_field.
" FROM content_object ".
785 " WHERE id = ".$ilDB->quote($a_obj_id,
"integer");
787 $res = $ilDB->query($q);
788 $rec = $ilDB->fetchAssoc(
$res);
790 return $rec[$a_field];
801 return self::_lookup($a_obj_id,
"restrict_forw_nav");
811 $q =
"SELECT stylesheet FROM content_object ".
812 " WHERE id = ".$ilDB->quote($a_cont_obj_id,
"integer");
813 $res = $ilDB->query($q);
814 $sheet = $ilDB->fetchAssoc(
$res);
816 return $sheet[
"stylesheet"];
826 $q =
"SELECT id FROM content_object ".
827 " WHERE stylesheet = ".$ilDB->quote($a_style_id,
"integer");
828 $res = $ilDB->query($q);
830 while($cont = $ilDB->fetchAssoc(
$res))
832 $obj_ids[] = $cont[
"id"];
844 $q =
"SELECT disable_def_feedback FROM content_object ".
845 " WHERE id = ".$ilDB->quote($a_id,
"integer");
846 $res = $ilDB->query($q);
847 $rec = $ilDB->fetchAssoc(
$res);
849 return $rec[
"disable_def_feedback"];
859 $q =
"SELECT store_tries FROM content_object ".
860 " WHERE id = ".$ilDB->quote($a_id,
"integer");
861 $res = $ilDB->query($q);
862 $rec = $ilDB->fetchAssoc(
$res);
864 return $rec[
"store_tries"];
877 $q =
"SELECT count(*) as cnt FROM content_object ".
878 " WHERE stylesheet = ".$ilDB->quote($a_style_id,
"integer");
879 $cset = $ilDB->query($q);
880 $crow = $ilDB->fetchAssoc($cset);
882 return (
int) $crow[
"cnt"];
894 $q =
"SELECT count(*) as cnt FROM content_object, style_data ".
895 " WHERE stylesheet = style_data.id ".
896 " AND standard = ".$ilDB->quote(0,
"integer");
897 $cset = $ilDB->query($q);
898 $crow = $ilDB->fetchAssoc($cset);
900 return (
int) $crow[
"cnt"];
910 $q =
"SELECT count(*) as cnt FROM content_object ".
911 " WHERE stylesheet = ".$ilDB->quote(0,
"integer");
912 $cset = $ilDB->query($q);
913 $crow = $ilDB->fetchAssoc($cset);
915 return (
int) $crow[
"cnt"];
927 $q =
"UPDATE content_object SET ".
928 " stylesheet = ".$ilDB->quote(0,
"integer").
929 " WHERE stylesheet = ".$ilDB->quote((
int) $a_style_id,
"integer");
931 $ilDB->manipulate($q);
949 $this->pg_header = $a_pg_header;
957 return $this->toc_mode;
965 return $this->public_access_mode;
975 $this->toc_mode = $a_toc_mode;
980 $this->online = $a_online;
990 $this->lm_menu_active = $a_act_lm_menu;
995 return $this->lm_menu_active;
1000 $this->toc_active = $a_toc;
1005 return $this->toc_active;
1010 $this->numbering = $a_num;
1015 return $this->numbering;
1020 $this->print_view_active = $a_print;
1025 return $this->print_view_active;
1030 $this->prevent_glossary_appendix_active = $a_print;
1035 return $this->prevent_glossary_appendix_active;
1045 $this->hide_header_footer_print = $a_val;
1055 return $this->hide_header_footer_print;
1060 $this->downloads_active = $a_down;
1065 return $this->downloads_active;
1070 $this->downloads_public_active = $a_down;
1075 return $this->downloads_public_active;
1080 $this->pub_notes = $a_pub_notes;
1085 return $this->pub_notes;
1090 $this->clean_frames = $a_clean;
1095 return $this->clean_frames;
1100 $this->user_comments = $a_comm;
1105 $this->public_access_mode = $a_mode;
1110 return $this->user_comments;
1115 $this->header_page = $a_pg;
1120 return $this->header_page;
1125 $this->footer_page = $a_pg;
1130 return $this->footer_page;
1140 $q =
"SELECT * FROM content_object WHERE id = ".
1141 $ilDB->quote($this->
getId(),
"integer");
1143 $lm_rec = $ilDB->fetchAssoc(
$lm_set);
1144 $this->
setLayout($lm_rec[
"default_layout"]);
1174 include_once(
"./Services/Notes/classes/class.ilNote.php");
1193 $q =
"UPDATE content_object SET ".
1194 " default_layout = ".$ilDB->quote($this->
getLayout(),
"text").
", ".
1195 " stylesheet = ".$ilDB->quote($this->
getStyleSheetId(),
"integer").
",".
1196 " page_header = ".$ilDB->quote($this->
getPageHeader(),
"text").
",".
1197 " toc_mode = ".$ilDB->quote($this->
getTOCMode(),
"text").
",".
1212 " header_page = ".$ilDB->quote($this->
getHeaderPage(),
"integer").
",".
1213 " footer_page = ".$ilDB->quote($this->
getFooterPage(),
"integer").
",".
1215 " layout_per_page = ".$ilDB->quote($this->
getLayoutPerPage(),
"integer").
", ".
1216 " rating = ".$ilDB->quote($this->
hasRating(),
"integer").
", ".
1217 " rating_pages = ".$ilDB->quote($this->
hasRatingPages(),
"integer").
", ".
1220 " store_tries = ".$ilDB->quote($this->
getStoreTries(),
"integer").
", ".
1222 " for_translation = ".$ilDB->quote((
int) $this->
getForTranslation(),
"integer").
" ".
1223 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
1224 $ilDB->manipulate($q);
1226 include_once(
"./Services/Notes/classes/class.ilNote.php");
1237 $q =
"INSERT INTO content_object (id) VALUES (".$ilDB->quote($this->
getId(),
"integer").
")";
1238 $ilDB->manipulate($q);
1241 include_once(
"./Services/Notes/classes/class.ilNote.php");
1256 $q =
"SELECT is_online FROM content_object WHERE id = ".$ilDB->quote($a_id,
"integer");
1258 $lm_rec = $ilDB->fetchAssoc(
$lm_set);
1268 $dir = opendir(
"./Modules/LearningModule/layouts/lm");
1272 while(
$file = readdir($dir))
1277 if (@is_dir(
"./Modules/LearningModule/layouts/lm/".
$file))
1287 'toc2win' =>
'toc2win',
1288 'toc2windyn' =>
'toc2windyn',
1289 '1window' =>
'1window',
1290 '2window' =>
'2window',
1291 '3window' =>
'3window',
1292 'presentation' =>
'presentation',
1293 'fullscreen' =>
'fullscreen' 1296 foreach ($layouts as
$l)
1298 if (!in_array($l,
$ret))
1314 $lm_tree =
new ilTree($cont_obj_id);
1315 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1316 $lm_tree->setTreeTablePK(
"lm_id");
1318 if ($lm_tree->isInTree($page_id))
1320 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1321 foreach (
$path as $node)
1323 if ($node[
"type"] ==
"st")
1341 $lm_tree =
new ilTree($cont_obj_id);
1342 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1343 $lm_tree->setTreeTablePK(
"lm_id");
1346 if ($lm_tree->isInTree($page_id))
1349 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1350 foreach (
$path as $node)
1352 if ($node[
"type"] ==
"st")
1356 foreach ($tconds as $tcond)
1376 $lm_tree =
new ilTree($cont_obj_id);
1377 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1378 $lm_tree->setTreeTablePK(
"lm_id");
1381 if ($lm_tree->isInTree($page_id))
1384 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1385 foreach (
$path as $node)
1387 if ($node[
"type"] ==
"st")
1391 foreach ($tconds as $tcond)
1396 return $node[
"child"];
1411 $tree =
new ilTree($a_cont_obj_id);
1412 $tree->setTableNames(
'lm_tree',
'lm_data');
1413 $tree->setTreeTablePK(
"lm_id");
1414 if ($tree->isInTree($a_page_id))
1416 $succ = $tree->fetchSuccessorNode($a_page_id,
"pg");
1429 $tree->setTableNames(
'lm_tree',
'lm_data');
1430 $tree->setTreeTablePK(
"lm_id");
1432 $tree->checkTreeChilds();
1448 $set = $ilDB->query(
"SELECT DISTINCT l1.lm_id".
1450 " JOIN lm_tree l2 ON ( l1.child = l2.parent".
1451 " AND l1.lm_id = l2.lm_id )".
1452 " JOIN lm_data ON ( l1.child = lm_data.obj_id )".
1453 " WHERE (l2.lft < l1.lft".
1454 " OR l2.rgt > l1.rgt OR l2.lft > l1.rgt OR l2.rgt < l1.lft)".
1455 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer").
1456 " ORDER BY lm_data.create_date DESC" 1458 if ($rec = $ilDB->fetchAssoc($set))
1464 $set = $ilDB->query(
"SELECT * FROM lm_tree WHERE lm_tree.lm_id = ".$ilDB->quote($this->getId(),
"integer"));
1465 while ($node = $ilDB->fetchAssoc($set))
1467 $q =
"SELECT * FROM lm_data WHERE obj_id = ".
1468 $ilDB->quote($node[
"child"],
"integer");
1469 $obj_set = $ilDB->query($q);
1470 $obj_rec = $ilDB->fetchAssoc($obj_set);
1473 $node_data = $tree->getNodeData($node[
"child"]);
1474 $node_data[
"child"] = $node[
"child"];
1475 $tree->deleteTree($node_data);
1480 $nodes = $tree->getSubtree($tree->getNodeData($tree->getRootId()));
1481 foreach ($nodes as $node)
1483 $q =
"SELECT * FROM lm_data WHERE obj_id = ".
1484 $ilDB->quote($node[
"parent"],
"integer");
1485 $obj_set = $ilDB->query($q);
1486 $obj_rec = $ilDB->fetchAssoc($obj_set);
1487 if ($obj_rec[
"type"] ==
"pg")
1489 $node_data = $tree->getNodeData($node[
"child"]);
1490 if ($tree->isInTree($node[
"child"]))
1492 $tree->deleteTree($node_data);
1499 $set = $ilDB->query(
"SELECT DISTINCT l1.lm_id".
1501 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )".
1502 " JOIN lm_data ON (l1.child = lm_data.obj_id)".
1503 " WHERE l1.child <> 1".
1504 " AND l1.lm_id <> lm_data.lm_id".
1505 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer"));
1506 if ($rec = $ilDB->fetchAssoc($set))
1508 $set = $ilDB->query(
"SELECT DISTINCT l1.child ".
1510 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )".
1511 " JOIN lm_data ON (l1.child = lm_data.obj_id)".
1512 " WHERE l1.child <> 1".
1513 " AND l1.lm_id <> lm_data.lm_id".
1514 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer"));
1515 include_once(
"./Modules/LearningModule/classes/class.ilLMObjectFactory.php");
1516 while ($rec = $ilDB->fetchAssoc($set))
1520 if (is_object($cobj))
1522 if ($cobj->getType() ==
"pg")
1525 $pg_copy = $cobj->copy($this);
1528 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1529 " child = ".$ilDB->quote($pg_copy->getId(),
"integer").
1530 " WHERE child = ".$ilDB->quote($cobj->getId(),
"integer").
1531 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1534 else if ($cobj->getType() ==
"st")
1537 $st_copy = $cobj->copy($this);
1540 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1541 " child = ".$ilDB->quote($st_copy->getId(),
"integer").
1542 " WHERE child = ".$ilDB->quote($cobj->getId(),
"integer").
1543 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1547 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1548 " parent = ".$ilDB->quote($st_copy->getId(),
"integer").
1549 " WHERE parent = ".$ilDB->quote($cobj->getId(),
"integer").
1550 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1565 function exportXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
1573 $attrs[
"Type"] =
"LearningModule";
1576 $a_xml_writer->xmlStartTag(
"ContentObject", $attrs);
1583 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Start Export Structure Objects");
1584 $ilBench->start(
"ContentObjectExport",
"exportStructureObjects");
1586 $ilBench->stop(
"ContentObjectExport",
"exportStructureObjects");
1587 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Finished Export Structure Objects");
1590 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Start Export Page Objects");
1591 $ilBench->start(
"ContentObjectExport",
"exportPageObjects");
1593 $ilBench->stop(
"ContentObjectExport",
"exportPageObjects");
1594 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Finished Export Page Objects");
1597 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Start Export Media Objects");
1598 $ilBench->start(
"ContentObjectExport",
"exportMediaObjects");
1600 $ilBench->stop(
"ContentObjectExport",
"exportMediaObjects");
1601 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Finished Export Media Objects");
1604 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Start Export File Items");
1605 $ilBench->start(
"ContentObjectExport",
"exportFileItems");
1607 $ilBench->stop(
"ContentObjectExport",
"exportFileItems");
1608 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Finished Export File Items");
1611 if (count($this->q_ids) > 0)
1613 $qti_file = fopen($a_target_dir.
"/qti.xml",
"w");
1614 include_once(
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
1616 fwrite($qti_file, $pool->questionsToXML($this->q_ids));
1622 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Start Export Properties");
1624 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Finished Export Properties");
1626 $a_xml_writer->xmlEndTag(
"ContentObject");
1637 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
1639 $md2xml->setExportMode(
true);
1640 $md2xml->startExport();
1641 $a_xml_writer->appendXML($md2xml->getXML());
1652 include_once
'./Modules/LearningModule/classes/class.ilStructureObject.php';
1654 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
1655 foreach ($childs as $child)
1657 if($child[
"type"] !=
"st")
1663 $structure_obj->exportXML($a_xml_writer, $a_inst, $expLog);
1664 unset($structure_obj);
1679 include_once
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
1680 include_once
"./Modules/LearningModule/classes/class.ilLMPage.php";
1683 foreach ($pages as $page)
1687 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Page Object ".$page[
"obj_id"]);
1691 $page_obj->exportXML($a_xml_writer,
"normal", $a_inst);
1694 $mob_ids = $page_obj->getMediaObjectIDs();
1695 foreach($mob_ids as $mob_id)
1697 $this->mob_ids[$mob_id] = $mob_id;
1701 $file_ids = $page_obj->getFileItemIds();
1702 foreach($file_ids as $file_id)
1704 $this->file_ids[$file_id] = $file_id;
1708 $q_ids = $page_obj->getQuestionIds();
1709 foreach($q_ids as $q_id)
1711 $this->q_ids[$q_id] = $q_id;
1727 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
1729 $linked_mobs =
array();
1732 foreach ($this->mob_ids as $mob_id)
1736 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Media Object ".$mob_id);
1738 $media_obj->exportXML($a_xml_writer, $a_inst);
1739 $media_obj->exportFiles($a_target_dir);
1741 $lmobs = $media_obj->getLinkedMediaObjects($this->mob_ids);
1742 $linked_mobs = array_merge($linked_mobs, $lmobs);
1749 foreach ($linked_mobs as $mob_id)
1753 $expLog->write(
date(
"[y-m-d H:i:s] ").
"Media Object ".$mob_id);
1755 $media_obj->exportXML($a_xml_writer, $a_inst);
1756 $media_obj->exportFiles($a_target_dir);
1769 include_once(
"./Modules/File/classes/class.ilObjFile.php");
1771 foreach ($this->file_ids as $file_id)
1773 $expLog->write(
date(
"[y-m-d H:i:s] ").
"File Item ".$file_id);
1774 $file_obj =
new ilObjFile($file_id,
false);
1775 $file_obj->export($a_target_dir);
1787 $a_xml_writer->xmlStartTag(
"Properties", $attrs);
1790 $attrs =
array(
"Name" =>
"Layout",
"Value" => $this->
getLayout());
1791 $a_xml_writer->xmlElement(
"Property", $attrs);
1795 $a_xml_writer->xmlElement(
"Property", $attrs);
1799 $a_xml_writer->xmlElement(
"Property", $attrs);
1802 $attrs =
array(
"Name" =>
"ActiveLMMenu",
"Value" =>
1804 $a_xml_writer->xmlElement(
"Property", $attrs);
1807 $attrs =
array(
"Name" =>
"ActiveNumbering",
"Value" =>
1809 $a_xml_writer->xmlElement(
"Property", $attrs);
1812 $attrs =
array(
"Name" =>
"ActiveTOC",
"Value" =>
1814 $a_xml_writer->xmlElement(
"Property", $attrs);
1817 $attrs =
array(
"Name" =>
"ActivePrintView",
"Value" =>
1819 $a_xml_writer->xmlElement(
"Property", $attrs);
1825 $attrs =
array(
"Name" =>
"CleanFrames",
"Value" =>
1827 $a_xml_writer->xmlElement(
"Property", $attrs);
1830 $attrs =
array(
"Name" =>
"PublicNotes",
"Value" =>
1832 $a_xml_writer->xmlElement(
"Property", $attrs);
1835 $attrs =
array(
"Name" =>
"HistoryUserComments",
"Value" =>
1837 $a_xml_writer->xmlElement(
"Property", $attrs);
1840 $attrs =
array(
"Name" =>
"Rating",
"Value" =>
1842 $a_xml_writer->xmlElement(
"Property", $attrs);
1843 $attrs =
array(
"Name" =>
"RatingPages",
"Value" =>
1845 $a_xml_writer->xmlElement(
"Property", $attrs);
1850 $attrs =
array(
"Name" =>
"HeaderPage",
"Value" =>
1851 "il_".IL_INST_ID.
"_pg_".$this->getHeaderPage());
1852 $a_xml_writer->xmlElement(
"Property", $attrs);
1858 $attrs =
array(
"Name" =>
"FooterPage",
"Value" =>
1859 "il_".IL_INST_ID.
"_pg_".$this->getFooterPage());
1860 $a_xml_writer->xmlElement(
"Property", $attrs);
1864 $attrs =
array(
"Name" =>
"LayoutPerPage",
"Value" =>
1866 $a_xml_writer->xmlElement(
"Property", $attrs);
1869 $attrs =
array(
"Name" =>
"ProgressIcons",
"Value" =>
1871 $a_xml_writer->xmlElement(
"Property", $attrs);
1874 $attrs =
array(
"Name" =>
"StoreTries",
"Value" =>
1876 $a_xml_writer->xmlElement(
"Property", $attrs);
1879 $attrs =
array(
"Name" =>
"RestrictForwardNavigation",
"Value" =>
1881 $a_xml_writer->xmlElement(
"Property", $attrs);
1884 $attrs =
array(
"Name" =>
"DisableDefaultFeedback",
"Value" =>
1886 $a_xml_writer->xmlElement(
"Property", $attrs);
1888 $a_xml_writer->xmlEndTag(
"Properties");
1898 $types =
array(
"xml",
"html",
"scorm");
1900 foreach ($types as
$type)
1904 if (!@is_dir($dir)
or 1905 !is_writeable($dir))
1916 while ($entry = $cdir->read())
1918 if ($entry !=
"." and 1920 substr($entry, -4) ==
".zip" and 1921 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.zip\$~", $entry))
1923 $file[$entry.$type] =
array(
"type" => $type,
"file" => $entry,
1924 "size" => filesize($dir.
"/".$entry));
1946 $this->public_export_file[
$a_type] = $a_file;
1958 return $this->public_export_file[
$a_type];
1967 if (!@is_dir($dir)
or 1968 !is_writeable($dir))
1980 while ($entry = $dir->read())
1982 if ($entry !=
"." and 1984 substr($entry, -4) ==
".pdf" and 1985 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.pdf\$~", $entry))
2014 include(
"./Modules/LearningModule/classes/class.ilContObjectManifestBuilder.php");
2016 $man_builder->buildManifest();
2017 $man_builder->dump($a_target_dir);
2020 copy(
"Modules/LearningModule/scorm_xsd/adlcp_rootv1p2.xsd", $a_target_dir.
"/adlcp_rootv1p2.xsd");
2021 copy(
"Modules/LearningModule/scorm_xsd/imscp_rootv1p1p2.xsd", $a_target_dir.
"/imscp_rootv1p1p2.xsd");
2022 copy(
"Modules/LearningModule/scorm_xsd/imsmd_rootv1p2p1.xsd", $a_target_dir.
"/imsmd_rootv1p2p1.xsd");
2023 copy(
"Modules/LearningModule/scorm_xsd/ims_xml.xsd", $a_target_dir.
"/ims_xml.xsd");
2027 $zip_file = $a_target_dir.
"/".$date.
"__".IL_INST_ID.
"__".
2031 $a_target_dir.
"/imsmanifest.xml",
2032 $a_target_dir.
"/adlcp_rootv1p2.xsd",
2033 $a_target_dir.
"/imscp_rootv1p1p2.xsd",
2034 $a_target_dir.
"/ims_xml.xsd",
2035 $a_target_dir.
"/imsmd_rootv1p2p1.xsd")
2041 rename($zip_file, $dest_file);
2050 function exportHTML($a_target_dir,
$log, $a_zip_file =
true, $a_export_format =
"html", $a_lang =
"")
2054 $user_lang = $ilUser->getLanguage();
2059 $mob_dir = $a_target_dir.
"/mobs";
2061 $file_dir = $a_target_dir.
"/files";
2063 $teximg_dir = $a_target_dir.
"/teximg";
2065 $style_dir = $a_target_dir.
"/style";
2067 $style_img_dir = $a_target_dir.
"/style/images";
2069 $content_style_dir = $a_target_dir.
"/content_style";
2071 $content_style_img_dir = $a_target_dir.
"/content_style/images";
2076 include_once
'./Services/MathJax/classes/class.ilMathJax.php';
2081 $style_name = $ilUser->prefs[
"style"].
".css";
2082 copy($location_stylesheet, $style_dir.
"/".$style_name);
2083 $fh = fopen($location_stylesheet,
"r");
2084 $css = fread(
$fh, filesize($location_stylesheet));
2085 preg_match_all(
"/url\(([^\)]*)\)/",$css,
$files);
2086 foreach (array_unique(
$files[1]) as $fileref)
2088 $css_fileref = str_replace(
array(
"'",
'"'),
"", $fileref);
2089 $fileref = dirname($location_stylesheet).
"/".$css_fileref;
2090 if (is_file($fileref))
2095 copy($fileref, $style_dir.
"/".$css_fileref);
2102 $ilBench->start(
"ExportHTML",
"exportContentStyle");
2105 $cont_stylesheet =
"./Services/COPage/css/content.css";
2107 $css = fread(fopen($cont_stylesheet,
'r'),filesize($cont_stylesheet));
2108 preg_match_all(
"/url\(([^\)]*)\)/",$css,
$files);
2109 foreach (array_unique(
$files[1]) as $fileref)
2111 if (is_file(str_replace(
"..",
".", $fileref)))
2113 copy(str_replace(
"..",
".", $fileref), $content_style_img_dir.
"/".basename($fileref));
2115 $css = str_replace($fileref,
"images/".basename($fileref),$css);
2117 fwrite(fopen($content_style_dir.
"/content.css",
'w'),$css);
2122 $style->writeCSSFile($content_style_dir.
"/content.css",
"images");
2123 $style->copyImagesToDir($content_style_img_dir);
2125 $ilBench->stop(
"ExportHTML",
"exportContentStyle");
2129 copy($syn_stylesheet, $a_target_dir.
"/syntaxhighlight.css");
2132 include_once(
"./Modules/LearningModule/classes/class.ilLMPresentationGUI.php");
2133 $_GET[
"cmd"] =
"nop";
2134 $get_transl =
$_GET[
"transl"];
2135 $_GET[
"transl"] =
"";
2137 $lm_gui->setOfflineMode(
true, ($a_lang ==
"all"));
2138 $lm_gui->setOfflineDirectory($a_target_dir);
2139 $lm_gui->setExportFormat($a_export_format);
2143 if ($a_lang !=
"all")
2145 $langs =
array($a_lang);
2149 $ot_langs = $ot->getLanguages();
2150 foreach ($ot_langs as $otl)
2152 $langs[] = $otl[
"lang_code"];
2157 $this->offline_mobs =
array();
2158 $this->offline_int_links =
array();
2159 $this->offline_files =
array();
2162 foreach ($langs as
$lang)
2167 $ilUser->setLanguage($lang);
2168 $ilUser->setCurrentLanguage($lang);
2172 $ilUser->setLanguage($user_lang);
2173 $ilUser->setCurrentLanguage($user_lang);
2178 if ($lang == $ot->getMasterLanguage())
2184 $lm_gui->lang =
$lang;
2189 $ilBench->start(
"ExportHTML",
"exportHTMLPages");
2191 $this->
exportHTMLPages($lm_gui, $a_target_dir, $lm_gui->lang, ($a_lang ==
"all"));
2192 $ilBench->stop(
"ExportHTML",
"exportHTMLPages");
2195 $ilLocator->clearItems();
2198 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2202 $lm_gui->tpl =
$tpl;
2203 $content = $lm_gui->showTableOfContents();
2205 if ($a_lang ==
"all")
2207 $file = $a_target_dir .
"/table_of_contents_".$lang.
".html";
2211 $file = $a_target_dir .
"/table_of_contents.html";
2215 if (!($fp = @fopen(
$file,
"w+")))
2217 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2218 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2221 fwrite($fp, $content);
2227 $ilBench->start(
"ExportHTML",
"exportHTMLGlossaryTerms");
2229 $ilBench->stop(
"ExportHTML",
"exportHTMLGlossaryTerms");
2232 $ilBench->start(
"ExportHTML",
"exportHTMLMediaObjects");
2233 $linked_mobs =
array();
2234 foreach ($this->offline_mobs as $mob)
2238 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs);
2241 $linked_mobs2 =
array();
2242 foreach ($linked_mobs as $mob)
2246 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs2);
2249 $_GET[
"obj_type"] =
"MediaObject";
2250 $_GET[
"obj_id"] = $a_mob_id;
2252 $ilBench->stop(
"ExportHTML",
"exportHTMLMediaObjects");
2255 $ilBench->start(
"ExportHTML",
"exportHTMLFileObjects");
2256 foreach ($this->offline_files as
$file)
2260 $ilBench->stop(
"ExportHTML",
"exportHTMLFileObjects");
2263 if (count($this->q_ids) > 0)
2265 foreach ($this->q_ids as $q_id)
2269 $a_target_dir.
"/assessment/0/".$q_id.
"/images");
2274 $ilBench->start(
"ExportHTML",
"exportHTMLImages");
2275 $image_dir = $a_target_dir.
"/images";
2279 $image_dir.
"/enlarge.svg");
2281 $image_dir.
"/browser/plus.png");
2283 $image_dir.
"/browser/minus.png");
2285 $image_dir.
"/browser/blank.png");
2287 $image_dir.
"/spacer.png");
2289 $image_dir.
"/icon_st.svg");
2291 $image_dir.
"/icon_pg.svg");
2293 $image_dir.
"/icon_lm.svg");
2295 $image_dir.
"/nav_arr_L.png");
2297 $image_dir.
"/nav_arr_R.png");
2299 $ilBench->stop(
"ExportHTML",
"exportHTMLImages");
2302 $services_dir = $a_target_dir.
"/Services";
2304 $media_service_dir = $services_dir.
"/MediaObjects";
2306 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2309 $mp3_dir = $media_service_dir.
"/flash_mp3_player";
2314 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2322 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2323 foreach (self::getSupplyingExportFiles($a_target_dir) as $f)
2325 if ($f[
"source"] !=
"")
2327 copy($f[
"source"], $f[
"target"]);
2332 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2333 $tpl->setVariable(
"LOCATION_STYLESHEET",$location_stylesheet);
2334 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2338 $ilUser->setLanguage($user_lang);
2339 $ilUser->setCurrentLanguage($user_lang);
2357 $zip_file = $zip_target_dir.
"/".$date.
"__".IL_INST_ID.
"__".
2373 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2374 include_once(
"./Services/jQuery/classes/class.iljQueryUtil.php");
2375 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2376 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2379 "target" => $a_target_dir.
'/js/yahoo/yahoo-min.js',
2382 "target" => $a_target_dir.
'/js/yahoo/yahoo-dom-event.js',
2385 "target" => $a_target_dir.
'/js/yahoo/animation-min.js',
2387 array(
"source" =>
'./Services/JavaScript/js/Basic.js',
2388 "target" => $a_target_dir.
'/js/Basic.js',
2390 array(
"source" =>
'./Services/Accordion/js/accordion.js',
2391 "target" => $a_target_dir.
'/js/accordion.js',
2393 array(
"source" =>
'./Services/Accordion/css/accordion.css',
2394 "target" => $a_target_dir.
'/css/accordion.css',
2397 "target" => $a_target_dir.
'/js/jquery.js',
2400 "target" => $a_target_dir.
'/js/maphilight.js',
2403 "target" => $a_target_dir.
'/js/jquery-ui-min.js',
2405 array(
"source" =>
'./Services/COPage/js/ilCOPagePres.js',
2406 "target" => $a_target_dir.
'/js/ilCOPagePres.js',
2408 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/pure.js',
2409 "target" => $a_target_dir.
'/js/pure.js',
2411 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/question_handling.js',
2412 "target" => $a_target_dir.
'/js/question_handling.js',
2414 array(
"source" =>
'./Modules/TestQuestionPool/js/ilMatchingQuestion.js',
2415 "target" => $a_target_dir.
'/js/ilMatchingQuestion.js',
2417 array(
"source" =>
'./Modules/Scorm2004/templates/default/question_handling.css',
2418 "target" => $a_target_dir.
'/css/question_handling.css',
2420 array(
"source" =>
'./Modules/TestQuestionPool/templates/default/test_javascript.css',
2421 "target" => $a_target_dir.
'/css/test_javascript.css',
2435 array(
"source" =>
'./Modules/LearningModule/js/LearningModule.js',
2436 "target" => $a_target_dir.
'/js/LearningModule.js',
2444 $scripts[] =
array(
"source" =>
"",
2450 include_once(
"./Services/Link/classes/class.ilLinkifyUtil.php");
2453 if (is_int(strpos($p,
"ExtLink")))
2455 $scripts[] =
array(
"source" => $p,
2456 "target" => $a_target_dir.
'/js/ilExtLink.js',
2459 if (is_int(strpos($p,
"linkify")))
2461 $scripts[] =
array(
"source" => $p,
2462 "target" => $a_target_dir.
'/js/linkify.js',
2476 $file_dir = $a_target_dir.
"/files/file_".$a_file_id;
2478 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2479 $file_obj =
new ilObjFile($a_file_id,
false);
2480 $source_file = $file_obj->getDirectory($file_obj->getVersion()).
"/".$file_obj->getFileName();
2481 if (!is_file($source_file))
2483 $source_file = $file_obj->getDirectory().
"/".$file_obj->getFileName();
2485 if (is_file($source_file))
2487 copy($source_file, $file_dir.
"/".$file_obj->getFileName());
2494 function exportHTMLMOB($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
2498 $mob_dir = $a_target_dir.
"/mobs";
2501 if (@is_dir($source_dir))
2507 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2508 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2509 $_GET[
"obj_type"] =
"MediaObject";
2510 $_GET[
"mob_id"] = $a_mob_id;
2511 $_GET[
"frame"] = $a_frame;
2513 $content = $a_lm_gui->media();
2514 $file = $a_target_dir.
"/media_".$a_mob_id.
".html";
2517 if (!($fp = @fopen(
$file,
"w+")))
2519 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2520 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2523 fwrite($fp, $content);
2527 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2529 if ($mob_obj->hasFullscreenItem())
2531 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2532 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2533 $_GET[
"obj_type"] =
"";
2534 $_GET[
"frame"] =
"";
2535 $_GET[
"mob_id"] = $a_mob_id;
2536 $_GET[
"cmd"] =
"fullscreen";
2537 $content = $a_lm_gui->fullscreen();
2538 $file = $a_target_dir.
"/fullscreen_".$a_mob_id.
".html";
2541 if (!($fp = @fopen(
$file,
"w+")))
2543 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2544 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2547 fwrite($fp, $content);
2550 $linked_mobs = $mob_obj->getLinkedMediaObjects();
2551 foreach ($linked_mobs as
$id)
2556 $a_linked_mobs = array_merge($a_linked_mobs, $linked_mobs);
2566 foreach($this->offline_int_links as $int_link)
2568 $ilLocator->clearItems();
2569 if ($int_link[
"type"] ==
"git")
2572 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2574 $_GET[
"obj_id"] = $int_link[
"id"];
2575 $_GET[
"frame"] =
"_blank";
2576 $content = $a_lm_gui->glossary();
2577 $file = $a_target_dir.
"/term_".$int_link[
"id"].
".html";
2580 if (!($fp = @fopen(
$file,
"w+")))
2582 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2583 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2586 fwrite($fp, $content);
2590 include_once(
"./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
2592 foreach($defs as $def)
2595 foreach($def_mobs as $def_mob)
2597 $this->offline_mobs[$def_mob] = $def_mob;
2598 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
2605 $this->offline_files = array_merge($this->offline_files, $def_files);
2616 function exportHTMLPages(&$a_lm_gui, $a_target_dir, $a_lang =
"", $a_all_languages =
false)
2623 $first_page = $lm_tree->fetchSuccessorNode($lm_tree->getRootId(),
"pg");
2624 $this->first_page_id = $first_page[
"child"];
2628 $int_links =
array();
2629 $this->offline_files =
array();
2631 include_once(
"./Services/COPage/classes/class.ilPageContentUsage.php");
2632 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2636 $exp_id_map =
array();
2638 if (
$lm_set->get(
"html_export_ids"))
2640 foreach ($pages as $page)
2643 if (trim($exp_id) !=
"")
2645 $exp_id_map[$page[
"obj_id"]] = trim($exp_id);
2656 foreach ($pages as $page)
2660 $ilLocator->clearItems();
2661 $ilBench->start(
"ExportHTML",
"exportHTMLPage");
2662 $ilBench->start(
"ExportHTML",
"exportPageHTML");
2664 "", $exp_id_map, $a_lang, $a_all_languages);
2665 $ilBench->stop(
"ExportHTML",
"exportPageHTML");
2669 foreach ($pcs as $pc)
2671 if ($pc[
"type"] ==
"incl")
2674 foreach($incl_mobs as $incl_mob)
2676 $mobs[$incl_mob] = $incl_mob;
2677 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2686 foreach($pg_mobs as $pg_mob)
2688 $mobs[$pg_mob] = $pg_mob;
2689 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2696 $int_links = array_merge($int_links, $pg_links);
2699 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2701 $this->offline_files = array_merge($this->offline_files, $pg_files);
2704 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2706 foreach($q_ids as $q_id)
2708 $this->q_ids[$q_id] = $q_id;
2711 $ilBench->stop(
"ExportHTML",
"exportHTMLPage");
2714 foreach (
$mobs as $m)
2716 $this->offline_mobs[$m] = $m;
2718 foreach ($int_links as $k => $v)
2720 $this->offline_int_links[$k] = $v;
2730 $a_exp_id_map =
array(), $a_lang =
"-", $a_all_languages =
false)
2735 if ($a_lang !=
"-" && $a_lang !=
"" && $a_all_languages)
2737 $lang_suffix =
"_".$a_lang;
2742 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2743 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2745 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2748 $_GET[
"obj_id"] = $a_lm_page_id;
2749 $_GET[
"frame"] = $a_frame;
2754 if (is_array($a_exp_id_map) && isset($a_exp_id_map[$a_lm_page_id]))
2756 $file = $a_target_dir.
"/lm_pg_".$a_exp_id_map[$a_lm_page_id].$lang_suffix.
".html";
2760 $file = $a_target_dir.
"/lm_pg_".$a_lm_page_id.$lang_suffix.
".html";
2765 if ($a_frame !=
"toc")
2767 $file = $a_target_dir.
"/frame_".$a_lm_page_id.
"_".$a_frame.$lang_suffix.
".html";
2771 $file = $a_target_dir.
"/frame_".$a_frame.$lang_suffix.
".html";
2776 if (@is_file(
$file))
2781 $content = $a_lm_gui->layout(
"main.xml",
false);
2784 if (!($fp = @fopen(
$file,
"w+")))
2786 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2787 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2794 fwrite($fp, $content);
2799 if ($this->first_page_id == $a_lm_page_id && $a_frame ==
"")
2801 copy(
$file, $a_target_dir.
"/index".$lang_suffix.
".html");
2805 $frameset = $a_lm_gui->getCurrentFrameSet();
2807 foreach ($frameset as $frame)
2809 $this->
exportPageHTML($a_lm_gui, $a_target_dir, $a_lm_page_id, $frame);
2826 $attrs[
"xmlns:fo"] =
"http://www.w3.org/1999/XSL/Format";
2827 $a_xml_writer->xmlStartTag(
"fo:root", $attrs);
2831 $a_xml_writer->xmlStartTag(
"fo:layout-master-set", $attrs);
2835 $attrs[
"master-name"] =
"DinA4";
2836 $attrs[
"page-height"] =
"29.7cm";
2837 $attrs[
"page-width"] =
"21cm";
2838 $attrs[
"margin-top"] =
"4cm";
2839 $attrs[
"margin-bottom"] =
"1cm";
2840 $attrs[
"margin-left"] =
"2.8cm";
2841 $attrs[
"margin-right"] =
"7.3cm";
2842 $a_xml_writer->xmlStartTag(
"fo:simple-page-master", $attrs);
2846 $attrs[
"margin-top"] =
"0cm";
2847 $attrs[
"margin-bottom"] =
"1.25cm";
2848 $a_xml_writer->xmlElement(
"fo:region-body", $attrs);
2852 $attrs[
"extent"] =
"1cm";
2853 $a_xml_writer->xmlElement(
"fo:region-before", $attrs);
2857 $attrs[
"extent"] =
"1cm";
2858 $a_xml_writer->xmlElement(
"fo:region-after", $attrs);
2861 $a_xml_writer->xmlEndTag(
"fo:simple-page-master");
2864 $a_xml_writer->xmlEndTag(
"fo:layout-master-set");
2868 $attrs[
"master-reference"] =
"DinA4";
2869 $a_xml_writer->xmlStartTag(
"fo:page-sequence", $attrs);
2873 $attrs[
"flow-name"] =
"xsl-region-body";
2874 $a_xml_writer->xmlStartTag(
"fo:flow", $attrs);
2879 $ilBench->start(
"ContentObjectExport",
"exportFOStructureObjects");
2881 $ilBench->stop(
"ContentObjectExport",
"exportFOStructureObjects");
2885 $a_xml_writer->xmlEndTag(
"fo:flow");
2888 $a_xml_writer->xmlEndTag(
"fo:page-sequence");
2891 $a_xml_writer->xmlEndTag(
"fo:root");
2902 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
2903 foreach ($childs as $child)
2905 if($child[
"type"] !=
"st")
2911 $structure_obj->exportFO($a_xml_writer, $expLog);
2912 unset($structure_obj);
2918 include_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2922 $export_file = $cont_exp->buildExportFile();
2923 return $export_file;
2937 $lmtree->setTableNames(
'lm_tree',
'lm_data');
2938 $lmtree->setTreeTablePK(
"lm_id");
2941 $source_obj->setLMId($this->
getId());
2946 $target_obj->setLMId($this->
getId());
2947 $target_parent = $lmtree->getParentId(
$target_id);
2951 if ($source_obj->getType() ==
"pg")
2954 if ($lmtree->isInTree($source_obj->getId()))
2956 $node_data = $lmtree->getNodeData($source_obj->getId());
2959 if ($movecopy ==
"move")
2961 $parent_id = $lmtree->getParentId($source_obj->getId());
2962 $lmtree->deleteTree($node_data);
2965 require_once(
"./Services/History/classes/class.ilHistory.php");
2976 $new_page = $source_obj->copy();
2977 $source_id = $new_page->getId();
2978 $source_obj = $new_page;
2982 if(!$lmtree->isInTree($source_obj->getId()))
2989 else if ($as_subitem)
2993 $pg_childs = $lmtree->getChildsByType($parent,
"pg");
2994 if (count($pg_childs) != 0)
2996 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
3002 $parent = $target_parent;
3006 $lmtree->insertNode($source_obj->getId(),
3007 $parent, $target_pos);
3010 if ($movecopy ==
"move")
3013 include_once(
"./Services/History/classes/class.ilHistory.php");
3027 if ($source_obj->getType() ==
"st")
3030 $source_node = $lmtree->getNodeData($source_id);
3031 $subnodes = $lmtree->getSubtree($source_node);
3034 foreach ($subnodes as $subnode)
3049 $pg_childs = $lmtree->getChildsByType($target_parent,
"pg");
3050 if (count($pg_childs) != 0)
3052 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
3055 else if ($as_subitem)
3059 $childs = $lmtree->getChilds($target_parent);
3060 if (count($childs) != 0)
3062 $target_pos = $childs[count($childs) - 1][
"obj_id"];
3087 if ($movecopy ==
"move")
3089 $lmtree->deleteTree($source_node);
3094 $new_chapter = $source_obj->copy($lmtree, $target_parent, $target_pos);
3097 if (!$lmtree->isInTree($source_id))
3099 $lmtree->insertNode($source_id, $target_parent, $target_pos);
3102 if ($movecopy ==
"move")
3104 foreach ($subnodes as $node)
3106 if($node[
"obj_id"] != $source_id)
3108 $lmtree->insertNode($node[
"obj_id"], $node[
"parent"]);
3126 include_once
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
3127 include_once
"./Modules/LearningModule/classes/class.ilLMPage.php";
3132 foreach ($pages as $page)
3136 $cpage =
new ilLMPage($page[
"obj_id"]);
3138 $error = @$cpage->validateDom();
3142 $this->lng->loadLanguageModule(
"content");
3146 $mess.= $this->lng->txt(
"obj_pg").
": ".
$title;
3147 $mess.=
'<div class="small">';
3150 $err_mess = implode($e,
" - ");
3151 if (!is_int(strpos($err_mess,
":0:")))
3153 $mess.= htmlentities($err_mess).
"<br />";
3172 $a_import_into_help_module = 0)
3180 $file = pathinfo($a_filename);
3184 $a_filename, $full_path);
3189 $subdir = basename(
$file[
"basename"],
".".
$file[
"extension"]);
3214 $this->log->debug(
"import from directory ".$a_directory);
3217 $subdir = basename($a_directory);
3218 $xml_file = $a_directory.
"/".$subdir.
".xml";
3221 if (!is_dir($a_directory))
3223 $this->log->error(sprintf($lng->txt(
"cont_no_subdir_in_zip"), $subdir));
3224 return sprintf($lng->txt(
"cont_no_subdir_in_zip"), $subdir);
3228 if (!is_file($xml_file))
3230 $this->log->error(sprintf($lng->txt(
"cont_zip_file_invalid"), $subdir.
"/".$subdir.
".xml"));
3231 return sprintf($lng->txt(
"cont_zip_file_invalid"), $subdir.
"/".$subdir.
".xml");
3235 $this->log->debug(
"import qti");
3236 $qti_file = $a_directory.
"/qti.xml";
3238 if (is_file($qti_file))
3240 include_once
"./Services/QTI/classes/class.ilQTIParser.php";
3241 include_once(
"./Modules/Test/classes/class.ilObjTest.php");
3244 $result = $qtiParser->startParsing ();
3245 $founditems = & $qtiParser->getFoundItems ();
3247 if (count($founditems) > 0)
3250 $qtiParser->setTestObject($testObj);
3251 $result = $qtiParser->startParsing();
3252 $qtis = array_merge($qtis, $qtiParser->getImportMapping());
3256 $this->log->debug(
"get ilContObjParser");
3257 include_once (
"./Modules/LearningModule/classes/class.ilContObjParser.php");
3259 $contParser =
new ilContObjParser($this, $xml_file, $subdir, $a_directory);
3261 $contParser->setImportMapping($a_mapping);
3262 $contParser->setQuestionMapping($qtis);
3263 $contParser->startParsing();
3268 $style_file = $a_directory.
"/style.xml";
3269 $style_zip_file = $a_directory.
"/style.zip";
3270 if (is_file($style_zip_file))
3272 require_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3274 $style->import($style_zip_file);
3277 else if (is_file($style_file))
3279 require_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3281 $style->import($style_file);
3294 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3310 public function cloneObject($a_target_id,$a_copy_id = 0, $a_omit_tree =
false)
3314 $new_obj = parent::cloneObject($a_target_id,$a_copy_id, $a_omit_tree);
3321 if(!$cp_options->isRootNode($this->getRefId()))
3323 $new_obj->setOnline($this->
getOnline());
3329 $new_obj->setLayout($this->
getLayout());
3343 $new_obj->setRating($this->
hasRating());
3353 $new_obj->createLMTree();
3356 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3358 if ($style_id > 0 &&
3361 $style_obj = $ilias->obj_factory->getInstanceByObjId($style_id);
3362 $new_id = $style_obj->ilClone();
3363 $new_obj->setStyleSheetId($new_id);
3367 $new_obj->setStyleSheetId($style_id);
3377 $new_obj->setHeaderPage($new_page_header);
3381 $new_obj->setFooterPage($new_page_footer);
3386 include_once(
'Services/Tracking/classes/class.ilLPObjSettings.php');
3388 $obj_settings->cloneSettings($new_obj->getId());
3389 unset($obj_settings);
3392 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3394 $ot->copy($new_obj->getId());
3397 include_once
'./Modules/LearningModule/classes/class.ilLMMenuEditor.php';
3399 $menu->setObjId($this->
getId());
3401 $new_menu->setObjId($new_obj->getId());
3402 foreach ($menu->getMenuEntries() as $entry)
3411 $new_menu->setTarget($entry[
"link"]);
3412 $new_menu->setTitle($entry[
"title"]);
3413 $new_menu->setLinkType($entry[
"type"]);
3414 $new_menu->setLinkRefId($entry[
"ref_id"]);
3415 $new_menu->create();
3430 $parent_id = $a_target_obj->lm_tree->readRootId();
3432 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
3433 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
3436 $chapters = $this->lm_tree->getChildsByType($this->lm_tree->readRootId(),
"st");
3437 $copied_nodes =
array();
3439 foreach ($chapters as $chap)
3448 foreach ($pages as $p)
3450 if (!$this->lm_tree->isInTree($p[
"obj_id"]))
3453 $target_item = $item->copy($a_target_obj);
3454 $copied_nodes[$item->getId()] = $target_item->getId();
3459 include_once
'./Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
3461 foreach($copied_nodes as $old_id => $new_id)
3465 $a_target_obj->getRefId().
'_'.$new_id
3471 $a_target_obj->checkTree();
3473 return $copied_nodes;
3488 $set = $ilDB->query(
"SELECT * FROM lm_glossaries ".
3489 " WHERE lm_id = ".$ilDB->quote($a_lm_id,
"integer")
3492 while ($rec = $ilDB->fetchAssoc($set))
3494 $glos[] = $rec[
"glo_id"];
3508 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
3512 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3516 $found_pages =
array();
3517 foreach ($pages as $p)
3520 $c = $pg->getXMLContent();
3521 foreach ($terms as
$t)
3523 if (is_int(stripos($c, $t[
"term"])))
3525 $found_pages[$p[
"id"]][
"terms"][] =
$t;
3526 if (!is_object($found_pages[$p[
"id"]][
"page"]))
3528 $found_pages[$p[
"id"]][
"page"] = $pg;
3536 include_once(
"./Services/COPage/classes/class.ilPCParagraph.php");
3537 foreach ($found_pages as
$id => $fp)
3557 if (!$a_as_obj_id && $a_id > 0 && $a_id == OH_REF_ID)
3570 $this->rating = (bool)$a_value;
3580 $this->rating_pages = (bool)$a_value;
3591 parent::MDUpdateListener($a_element);
3593 include_once
'Services/MetaData/classes/class.ilMD.php';
3598 include_once(
"./Services/Object/classes/class.ilObjectLP.php");
3600 if(in_array($obj_lp->getCurrentMode(),
3603 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
3612 if(!is_object($md_gen = $md->getGeneral()))
3617 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3619 if ($ot->getContentActivated())
3621 $ot->setDefaultTitle($md_gen->getTitle());
3623 foreach($md_gen->getDescriptionIds() as
$id)
3625 $md_des = $md_gen->getDescription(
$id);
3626 $ot->setDefaultDescription($md_des->getDescription());
3644 $dirs =
array(
"xml",
"scorm");
3645 $export_files =
array();
3647 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3649 if ($ot->getContentActivated())
3651 $langs = $ot->getLanguages();
3652 foreach ($langs as
$l => $ldata)
3654 $dirs[] =
"html_".$l;
3656 $dirs[] =
"html_all";
3663 foreach($dirs as $dir)
3665 $type = explode(
"_", $dir);
3682 return $export_files;
getHideHeaderFooterPrint()
Get hide header footer in print mode.
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static _checkCondition($a_id, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
static makeDirParents($a_dir)
Create a new directory and all parent directories.
static _getMissingPreconditionsTopChapter($cont_obj_ref_id, $cont_obj_id, $page_id)
get top chapter of page for that any precondition is missing
static _lookupContObjIdByStyleId($a_style_id)
lookup style sheet ID
static tf2yn($a_tf)
convert true/false to "y"/"n"
static _lookupDisableDefaultFeedback($a_id)
Lookup disable default feedback.
exportHTMLGlossaryTerms(&$a_lm_gui, $a_target_dir)
export glossary terms
static updateInternalLinks($a_copied_nodes, $a_parent_type="lm")
Update internal links, after multiple pages have been copied.
static getDefinitionList($a_term_id)
static
read()
read data of content object
getStyleSheetId()
get ID of assigned style sheet object
static _getNrLMsNoStyle()
get number of learning modules assigned no style
static _lookupStyleSheetId($a_cont_obj_id)
lookup style sheet ID
getExportDirectory($a_type="xml")
get export directory of lm
create($a_no_meta_data=false)
create content object
setPublicExportFile($a_type, $a_file)
specify public export file for type
__construct($a_id=0, $a_call_by_reference=true)
Constructor public.
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
static _getConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all conditions of target object
setTOCMode($a_toc_mode="chapters")
set toc mode
exportFO(&$a_xml_writer, $a_target_dir)
export object to fo
setPublicNotes($a_pub_notes)
validatePages()
Validate all pages.
exportFileItems($a_target_dir, &$expLog)
export files of file itmes
setImportDirectory($a_import_dir)
Set import directory for further use in ilContObjParser.
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
exportHTML($a_target_dir, $log, $a_zip_file=true, $a_export_format="html", $a_lang="")
export html package
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
isActiveHistoryUserComments()
exportXMLPageObjects(&$a_xml_writer, $a_inst, &$expLog)
export page objects to xml (see ilias_co.dtd)
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
isActivePreventGlossaryAppendix()
static _getNrOfAssignedLMs($a_style_id)
gets the number of learning modules assigned to a content style
getLayout()
get default page layout of content object (see directory layouts/)
getStoreTries()
Get store tries.
static hasSuccessorPage($a_cont_obj_id, $a_page_id)
checks if page has a successor page
updateMetaData()
update meta data entry
static getLocaljQueryUIPath()
Get local path of jQuery UI file.
Class ilObject Basic functions for all objects.
createLMTree()
create content object tree (that stores structure object hierarchie)
static getLocalJsPaths()
Get paths of necessary js files.
executeDragDrop($source_id, $target_id, $first_child, $as_subitem=false, $movecopy="move")
Execute Drag Drop Action.
static _checkPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
checks wether the preconditions of a page are fulfilled or not
static writeHeaderPage($a_lm_id, $a_page_id)
Write header page.
getImportDirectory()
get import directory of lm
getExportFiles()
get export files
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
static getAvailableLayouts()
get all available lm layouts
setActiveNumbering($a_num)
setLayoutPerPage($a_val)
Set layout per page.
createMetaData()
create meta data entry
static pasteTree($a_target_lm, $a_item_id, $a_parent_id, $a_target, $a_insert_time, &$a_copied_nodes, $a_as_copy=false, $a_source_lm=null)
Paste item (tree) from clipboard to current lm.
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
getOfflineFiles($dir)
get offline files
static writeFooterPage($a_lm_id, $a_page_id)
Write footer page.
static getAllPages($a_parent_type, $a_parent_id, $a_lang="-")
Get all pages for parent object.
getPublicExportFile($a_type)
get public export file
static _lookupTitle($a_id)
lookup object title
Export class for content objects.
exportHTMLFile($a_target_dir, $a_file_id)
export file object
const LP_MODE_COLLECTION_TLT
static _deleteStyleAssignments($a_style_id)
delete all style references to style
isActiveDownloadsPublic()
setDisableDefaultFeedback($a_val)
Set disable default feedback for questions.
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
static _refreshStatus($a_obj_id, $a_users=null)
Set dirty.
getAutoGlossaries()
Get auto glossaries.
removeAutoGlossary($a_glo_id)
Remove auto glossary.
static _lookupTitle($a_obj_id)
Lookup title.
MDUpdateListener($a_element)
exportPageHTML(&$a_lm_gui, $a_target_dir, $a_lm_page_id, $a_frame="", $a_exp_id_map=array(), $a_lang="-", $a_all_languages=false)
export page html
writeStyleSheetId($a_style_id)
write ID of assigned style sheet object to db
getPublicAccessMode()
get public access mode ("complete" | "selected")
static getLocalJsTreeJsPath()
Get local path of jsTree js.
exportXMLMetaData(&$a_xml_writer)
export content objects meta data to xml (see ilias_co.dtd)
exportFOStructureObjects(&$a_xml_writer)
export structure objects to fo
static getLocalMediaElementCssPath()
Get local path of jQuery file.
static _lookupStandard($a_id)
Lookup standard flag.
setActiveLMMenu($a_act_lm_menu)
setActiveDownloadsPublic($a_down)
static _moveLMStyles($a_from_style, $a_to_style)
move learning modules from one style to another
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Class ilLMPresentationGUI.
exportXMLMediaObjects(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
export media objects to xml (see ilias_co.dtd)
static autoLinkGlossariesPage($a_page, $a_terms)
Auto link glossary of whole page.
setTitle($a_title)
set title of content object
static getUsagesOfPage($a_usage_id, $a_usage_type, $a_hist_nr=0, $a_all_hist_nrs=false, $a_lang="-")
Get page content usages for page.
createExportDirectory($a_type="xml")
creates data directory for export files (data_dir/lm_data/lm_<id>/export, depending on data directory...
addFirstChapterAndPage()
Add first chapter and page.
static _lookupOnline($a_id)
check wether content object is online
getLayoutPerPage()
Get layout per page.
setRestrictForwardNavigation($a_val)
Set restrict forward navigation.
getForTranslation()
Get for translation.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
update()
update complete object (meta data and properties)
getProgressIcons()
Get progress icons.
static createHTMLExportDirs($a_target_dir)
Create html export directories.
if(!is_array($argv)) $options
getPageHeader()
get page header mode (IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER)
getId()
get object id public
exportHTMLMOB($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
export media object to html
setActivePrintView($a_print)
static _deleteAllObjectData(&$a_cobj)
delete all objects of content object (digi book / learning module)
updateAutoGlossaries()
Update auto glossaries.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
setActiveDownloads($a_down)
static getLocalMediaElementJsPath()
Get local path of jQuery file.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
getPublicExportFiles()
Get public export files.
exportXMLStructureObjects(&$a_xml_writer, $a_inst, &$expLog)
export structure objects to xml (see ilias_co.dtd)
exportXMLProperties($a_xml_writer, &$expLog)
export properties of content object
readProperties()
read content object properties
static _lookupObjId($a_id)
static getLocalExplorerJsPath()
Get local path of explorer js.
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
getTOCMode()
get toc mode ("chapters" | "pages")
static getTermList($a_glo_id, $searchterm="", $a_first_letter="", $a_def="", $a_tax_node=0, $a_add_amet_fields=false, array $a_amet_filter=null, $a_include_references=false)
Get all terms for given set of glossary ids.
special template class to simplify handling of ITX/PEAR
updateProperties()
Update content object properties.
setPageHeader($a_pg_header=IL_CHAPTER_TITLE)
set page header mode
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
put this object into content object tree
& getLMTree()
get content object tree
static getInstance(&$a_content_obj, $a_id=0, $a_halt=true)
static getFlashVideoPlayerDirectory()
Get flash video player directory.
putInTree($a_parent)
put content object in main tree
static lookupAutoGlossaries($a_lm_id)
Lookup auto glossaries.
redirection script todo: (a better solution should control the processing via a xml file) ...
cloneMetaData($target_obj)
Copy meta data.
static _checkAllConditionsOfTarget($a_target_ref_id, $a_target_id, $a_target_type="", $a_usr_id=0)
checks wether all conditions of a target object are fulfilled
setProgressIcons($a_val)
Set progress icons.
if(strpos($jquery_path, './')===0) else if(strpos($jquery_path, '.')===0) $mathJaxSetting
setPublicAccessMode($a_mode)
exportSCORM($a_target_dir, $log)
export scorm package
static getExportId($a_lm_id, $a_lmobj_id, $a_type="pg")
Get export ID.
static _handleImportRepositoryLinks($a_rep_import_id, $a_rep_type, $a_rep_ref_id)
Change targest of repository links.
static getSyntaxStylePath()
get syntax style path
static _createEntry($a_obj_id, $a_action, $a_info_params="", $a_obj_type="", $a_user_comment="", $a_update_last=false)
Creates a new history entry for an object.
static _getTargetsOfSource($a_source_type, $a_source_id, $a_source_lang="-")
Get all targets of a source object (e.g., a page)
getDisableDefaultFeedback()
Get disable default feedback for questions.
getDataDirectory()
get data directory
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
getType()
get object type public
static _getFilesOfObject($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
get all files of an object
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
createImportDirectory()
creates data directory for import files (data_dir/lm_data/lm_<id>/import, depending on data directory...
static getSupplyingExportFiles($a_target_dir=".")
Get supplying export files.
static _lookup($a_obj_id, $a_field)
Lookup property.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
static _getMissingPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
gets all missing preconditions of page
static isOnlineHelpModule($a_id, $a_as_obj_id=false)
Is module an online module.
copyAllPagesAndChapters($a_target_obj, $a_copy_id=0)
Copy all pages and chapters.
importFromDirectory($a_directory, $a_validate=true, $a_mapping=null)
Import lm from directory.
static getLocalPath($a_name="")
Get local path of a YUI js file.
static resetInitialState()
Reset initial state (for exports)
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type)
Are comments activated for object?
static getDataDir()
get data directory (outside webspace)
getRestrictForwardNavigation()
Get restrict forward navigation.
static getInstance()
Singleton: get instance.
exportHTMLPages(&$a_lm_gui, $a_target_dir, $a_lang="", $a_all_languages=false)
export all pages of learning module to html file
importFromZipFile($a_tmp_file, $a_filename, $a_validate=true, $a_import_into_help_module=0)
Import lm from zip file.
static activateComments($a_rep_obj_id, $a_obj_id, $a_obj_type, $a_activate=true)
Activate notes feature.
static _writeImportId($a_obj_id, $a_import_id)
write import id to db (static)
static _lookupRestrictForwardNavigation($a_obj_id)
Lookup forward restriction navigation.
static _lookupStoreTries($a_id)
Lookup disable default feedback.
static copyPlayerFilesToTargetDirectory($a_target_dir)
Copy css files to target dir.
setLayout($a_layout)
set default page layout
setActivePreventGlossaryAppendix($a_print)
autoLinkGlossaryTerms($a_glo_id)
Auto link glossary terms.
static getInstance($a_obj_id)
Get instance.
static _getNrLMsIndividualStyles()
get number of learning modules with individual styles
setHideHeaderFooterPrint($a_val)
Set hide header footer in print mode.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
getTitle()
get title of content object
getRefId()
get reference id public
static getLocalMaphilightPath()
Get local path of maphilight file.
deleteMetaData()
delete meta data entry
static getLogger($a_component_id)
Get component logger.
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
Class ilObjContentObject.
static yn2tf($a_yn)
convert "y"/"n" to true/false
setAutoGlossaries($a_val)
Set auto glossaries.
static getPageList($lm_id)
static
setDescription($a_description)
set description of content object
exportXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
export object to xml (see ilias_co.dtd)
static getLocaljQueryPath()
Get local path of jQuery file.
static getInstance($a_obj_id)
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
getDescription()
get description of content object
static getWebspaceDir($mode="filesystem")
get webspace directory
createProperties()
create new properties record
setForTranslation($a_val)
Set for translation.
static _lookGlossaryTerm($term_id)
get glossary term
setStoreTries($a_val)
Set store tries.
Content Object (ILIAS native learning module / digilib book) Manifest export class.
Extension of ilPageObject for learning modules.
setHistoryUserComments($a_comm)
cloneObject($a_target_id, $a_copy_id=0, $a_omit_tree=false)
Clone learning module.