4require_once
"./Services/Object/classes/class.ilObject.php";
5require_once
"Services/MetaData/classes/class.ilMDLanguageItem.php";
60 public function __construct($a_id = 0, $a_call_by_reference =
true)
64 $this->
user = $DIC->user();
65 $this->db =
$DIC->database();
66 $this->tree =
$DIC->repositoryTree();
67 $this->lng =
$DIC->language();
68 $this->
error = $DIC[
"ilErr"];
69 if (isset(
$DIC[
"tpl"])) {
70 $this->tpl =
$DIC[
"tpl"];
72 if (isset(
$DIC[
"ilLocator"])) {
73 $this->locator =
$DIC[
"ilLocator"];
77 parent::__construct($a_id, $a_call_by_reference);
81 $this->mob_ids = array();
82 $this->file_ids = array();
83 $this->q_ids = array();
89 public function create($a_no_meta_data =
false)
96 if (!$a_no_meta_data) {
114 # echo "Content<br>\n";
117 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
118 $this->lm_tree->setTreeTablePK(
"lm_id");
124 "SELECT * FROM lm_glossaries " .
125 " WHERE lm_id = " .
$ilDB->quote($this->getId(),
"integer")
128 while ($rec =
$ilDB->fetchAssoc($set)) {
129 $glos[] = $rec[
"glo_id"];
143 return parent::getTitle();
151 parent::setTitle($a_title);
170 parent::setDescription($a_description);
182 $this->import_id = $a_id;
192 $this->layout_per_page = $a_val;
202 return $this->layout_per_page;
212 $this->disable_def_feedback = $a_val;
222 return $this->disable_def_feedback;
232 $this->progr_icons = $a_val;
242 return $this->progr_icons;
252 $this->store_tries = $a_val;
262 return $this->store_tries;
272 $this->restrict_forw_nav = $a_val;
282 return $this->restrict_forw_nav;
314 "DELETE FROM lm_glossaries WHERE " .
315 " lm_id = " .
$ilDB->quote($this->getId(),
"integer")
318 $ilDB->manipulate(
"INSERT INTO lm_glossaries " .
319 "(lm_id, glo_id) VALUES (" .
320 $ilDB->quote($this->getId(),
"integer") .
"," .
321 $ilDB->quote($glo_id,
"integer") .
330 public function import()
346 parent::putInTree($a_parent);
361 $this->lm_tree->setTreeTablePK(
"lm_id");
362 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
363 $this->lm_tree->addTree($this->
getId(), 1);
373 $this->auto_glossaries = array();
374 if (is_array($a_val)) {
375 foreach ($a_val as $v) {
378 !in_array($v, $this->auto_glossaries)) {
379 $this->auto_glossaries[] = $v;
405 if ($g != $a_glo_id) {
420 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
421 include_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
422 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
424 $root_id = $this->lm_tree->getRootId();
428 $chap->setType(
"st");
429 $chap->setTitle(
$lng->txt(
"cont_new_chap"));
430 $chap->setLMId($this->
getId());
436 $page->setType(
"pg");
437 $page->setTitle(
$lng->txt(
"cont_new_page"));
438 $page->setLMId($this->
getId());
450 $this->for_translation = $a_val;
482 if (!is_writable($lm_data_dir)) {
483 $ilErr->raiseError(
"Content object Data Directory (" . $lm_data_dir
484 .
") not writeable.",
$ilErr->FATAL);
488 $lm_dir = $lm_data_dir .
"/lm_" . $this->
getId();
490 if (!@is_dir($lm_dir)) {
491 $ilErr->raiseError(
"Creation of Learning Module Directory failed.",
$ilErr->FATAL);
498 $ilErr->raiseError(
"Creation of Import Directory failed.",
$ilErr->FATAL);
508 "/lm_" . $this->
getId();
516 if (strlen($this->import_dir)) {
521 "/lm_" . $this->
getId() .
"/import";
537 $this->import_dir = $a_import_dir;
551 if (!is_writable($lm_data_dir)) {
552 $ilErr->raiseError(
"Content object Data Directory (" . $lm_data_dir
553 .
") not writeable.",
$ilErr->FATAL);
556 $lm_dir = $lm_data_dir .
"/lm_" . $this->
getId();
558 if (!@is_dir($lm_dir)) {
559 $ilErr->raiseError(
"Creation of Learning Module Directory failed.",
$ilErr->FATAL);
565 $export_dir = $lm_dir .
"/export_scorm";
569 if (substr(
$a_type, 0, 4) ==
"html") {
570 $export_dir = $lm_dir .
"/export_" .
$a_type;
572 $export_dir = $lm_dir .
"/export";
578 if (!@is_dir($export_dir)) {
579 $ilErr->raiseError(
"Creation of Export Directory failed.",
$ilErr->FATAL);
594 if (substr(
$a_type, 0, 4) ==
"html") {
615 public function delete()
620 if (!parent::delete()) {
625 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
633 $this->lm_tree->removeTree($this->lm_tree->getTreeId());
639 $q =
"DELETE FROM content_object WHERE id = " .
641 $ilDB->manipulate($q);
644 $q =
"DELETE FROM lm_menu WHERE lm_id = " .
646 $ilDB->manipulate($q);
650 "DELETE FROM lm_glossaries WHERE " .
651 " lm_id = " .
$ilDB->quote($this->getId(),
"integer")
676 $this->layout = $a_layout;
692 $this->style_id = $a_style_id;
702 $q =
"UPDATE content_object SET " .
703 " stylesheet = " .
$ilDB->quote((
int) $a_style_id,
"integer") .
704 " WHERE id = " .
$ilDB->quote($this->
getId(),
"integer");
705 $ilDB->manipulate($q);
707 $this->style_id = $a_style_id;
723 "UPDATE content_object SET " .
724 " header_page = " .
$ilDB->quote($a_page_id,
"integer") .
725 " WHERE id = " .
$ilDB->quote($a_lm_id,
"integer")
742 "UPDATE content_object SET " .
743 " footer_page = " .
$ilDB->quote($a_page_id,
"integer") .
744 " WHERE id = " .
$ilDB->quote($a_lm_id,
"integer")
758 if ($a_from_style < 0) {
759 $q =
"SELECT stylesheet FROM content_object, style_data " .
760 " WHERE content_object.stylesheet = style_data.id " .
761 " AND style_data.standard = " .
$ilDB->quote(0,
"integer") .
762 " AND content_object.stylesheet > " .
$ilDB->quote(0,
"integer");
763 $style_set =
$ilDB->query($q);
764 while ($style_rec =
$ilDB->fetchAssoc($style_set)) {
766 $q =
"UPDATE content_object SET " .
767 " stylesheet = " .
$ilDB->quote((
int) $a_to_style,
"integer") .
768 " WHERE stylesheet = " .
$ilDB->quote($style_rec[
"stylesheet"],
"integer");
769 $ilDB->manipulate($q);
773 $style_obj->delete();
776 $q =
"UPDATE content_object SET " .
777 " stylesheet = " .
$ilDB->quote((
int) $a_to_style,
"integer") .
778 " WHERE stylesheet = " .
$ilDB->quote($a_from_style,
"integer");
779 $ilDB->manipulate($q);
790 protected static function _lookup($a_obj_id, $a_field)
797 $q =
"SELECT " . $a_field .
" FROM content_object " .
798 " WHERE id = " .
$ilDB->quote($a_obj_id,
"integer");
803 return $rec[$a_field];
826 $q =
"SELECT stylesheet FROM content_object " .
827 " WHERE id = " .
$ilDB->quote($a_cont_obj_id,
"integer");
831 return $sheet[
"stylesheet"];
843 $q =
"SELECT id FROM content_object " .
844 " WHERE stylesheet = " .
$ilDB->quote($a_style_id,
"integer");
847 while ($cont =
$ilDB->fetchAssoc(
$res)) {
848 $obj_ids[] = $cont[
"id"];
862 $q =
"SELECT disable_def_feedback FROM content_object " .
863 " WHERE id = " .
$ilDB->quote($a_id,
"integer");
867 return $rec[
"disable_def_feedback"];
879 $q =
"SELECT store_tries FROM content_object " .
880 " WHERE id = " .
$ilDB->quote($a_id,
"integer");
884 return $rec[
"store_tries"];
899 $q =
"SELECT count(*) as cnt FROM content_object " .
900 " WHERE stylesheet = " .
$ilDB->quote($a_style_id,
"integer");
901 $cset =
$ilDB->query($q);
902 $crow =
$ilDB->fetchAssoc($cset);
904 return (
int) $crow[
"cnt"];
918 $q =
"SELECT count(*) as cnt FROM content_object, style_data " .
919 " WHERE stylesheet = style_data.id " .
920 " AND standard = " .
$ilDB->quote(0,
"integer");
921 $cset =
$ilDB->query($q);
922 $crow =
$ilDB->fetchAssoc($cset);
924 return (
int) $crow[
"cnt"];
936 $q =
"SELECT count(*) as cnt FROM content_object " .
937 " WHERE stylesheet = " .
$ilDB->quote(0,
"integer");
938 $cset =
$ilDB->query($q);
939 $crow =
$ilDB->fetchAssoc($cset);
941 return (
int) $crow[
"cnt"];
955 $q =
"UPDATE content_object SET " .
956 " stylesheet = " .
$ilDB->quote(0,
"integer") .
957 " WHERE stylesheet = " .
$ilDB->quote((
int) $a_style_id,
"integer");
959 $ilDB->manipulate($q);
977 $this->pg_header = $a_pg_header;
985 return $this->toc_mode;
993 return $this->public_access_mode;
1003 $this->toc_mode = $a_toc_mode;
1008 $this->lm_menu_active = $a_act_lm_menu;
1013 return $this->lm_menu_active;
1018 $this->toc_active = $a_toc;
1023 return $this->toc_active;
1028 $this->numbering = $a_num;
1033 return $this->numbering;
1038 $this->print_view_active = $a_print;
1043 return $this->print_view_active;
1048 $this->prevent_glossary_appendix_active = $a_print;
1053 return $this->prevent_glossary_appendix_active;
1063 $this->hide_header_footer_print = $a_val;
1073 return $this->hide_header_footer_print;
1078 $this->downloads_active = $a_down;
1083 return $this->downloads_active;
1088 $this->downloads_public_active = $a_down;
1093 return $this->downloads_public_active;
1098 $this->pub_notes = $a_pub_notes;
1103 return $this->pub_notes;
1108 $this->clean_frames = $a_clean;
1113 return $this->clean_frames;
1118 $this->user_comments = $a_comm;
1123 $this->public_access_mode = $a_mode;
1128 return $this->user_comments;
1133 $this->header_page = $a_pg;
1138 return $this->header_page;
1143 $this->footer_page = $a_pg;
1148 return $this->footer_page;
1158 $q =
"SELECT * FROM content_object WHERE id = " .
1162 $this->
setLayout($lm_rec[
"default_layout"]);
1191 include_once(
"./Services/Notes/classes/class.ilNote.php");
1209 $q =
"UPDATE content_object SET " .
1210 " default_layout = " .
$ilDB->quote($this->
getLayout(),
"text") .
", " .
1231 " rating = " .
$ilDB->quote($this->
hasRating(),
"integer") .
", " .
1238 " WHERE id = " .
$ilDB->quote($this->
getId(),
"integer");
1239 $ilDB->manipulate($q);
1241 include_once(
"./Services/Notes/classes/class.ilNote.php");
1252 $q =
"INSERT INTO content_object (id) VALUES (" .
$ilDB->quote($this->
getId(),
"integer") .
")";
1253 $ilDB->manipulate($q);
1256 include_once(
"./Services/Notes/classes/class.ilNote.php");
1268 $dir = opendir(
"./Modules/LearningModule/layouts/lm");
1272 while ($file = readdir($dir)) {
1273 if ($file !=
"." && $file !=
".." && $file !=
"CVS" && $file !=
".svn") {
1275 if (@is_dir(
"./Modules/LearningModule/layouts/lm/" . $file)) {
1276 $layouts[$file] = $file;
1284 'toc2win' =>
'toc2win',
1285 'toc2windyn' =>
'toc2windyn',
1286 '1window' =>
'1window',
1287 '2window' =>
'2window',
1288 '3window' =>
'3window',
1289 'presentation' =>
'presentation',
1290 'fullscreen' =>
'fullscreen'
1293 foreach ($layouts as
$l) {
1294 if (!in_array(
$l,
$ret)) {
1313 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1316 if (
$lm_tree->isInTree($page_id)) {
1318 foreach (
$path as $node) {
1319 if ($node[
"type"] ==
"st") {
1336 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1340 if (
$lm_tree->isInTree($page_id)) {
1343 foreach (
$path as $node) {
1344 if ($node[
"type"] ==
"st") {
1347 foreach ($tconds as $tcond) {
1366 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1370 if (
$lm_tree->isInTree($page_id)) {
1373 foreach (
$path as $node) {
1374 if ($node[
"type"] ==
"st") {
1377 foreach ($tconds as $tcond) {
1380 return $node[
"child"];
1396 $tree->setTableNames(
'lm_tree',
'lm_data');
1397 $tree->setTreeTablePK(
"lm_id");
1398 if (
$tree->isInTree($a_page_id)) {
1399 $succ =
$tree->fetchSuccessorNode($a_page_id,
"pg");
1411 $tree->setTableNames(
'lm_tree',
'lm_data');
1412 $tree->setTreeTablePK(
"lm_id");
1414 $tree->checkTreeChilds();
1430 $set =
$ilDB->query(
1431 "SELECT DISTINCT l1.lm_id" .
1432 " FROM lm_tree l1" .
1433 " JOIN lm_tree l2 ON ( l1.child = l2.parent" .
1434 " AND l1.lm_id = l2.lm_id )" .
1435 " JOIN lm_data ON ( l1.child = lm_data.obj_id )" .
1436 " WHERE (l2.lft < l1.lft" .
1437 " OR l2.rgt > l1.rgt OR l2.lft > l1.rgt OR l2.rgt < l1.lft)" .
1438 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer") .
1439 " ORDER BY lm_data.create_date DESC"
1441 if ($rec =
$ilDB->fetchAssoc($set)) {
1446 $set =
$ilDB->query(
"SELECT * FROM lm_tree WHERE lm_tree.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1447 while ($node =
$ilDB->fetchAssoc($set)) {
1448 $q =
"SELECT * FROM lm_data WHERE obj_id = " .
1449 $ilDB->quote($node[
"child"],
"integer");
1450 $obj_set =
$ilDB->query($q);
1451 $obj_rec =
$ilDB->fetchAssoc($obj_set);
1453 $node_data =
$tree->getNodeData($node[
"child"]);
1454 $node_data[
"child"] = $node[
"child"];
1455 $tree->deleteTree($node_data);
1461 foreach (
$nodes as $node) {
1462 $q =
"SELECT * FROM lm_data WHERE obj_id = " .
1463 $ilDB->quote($node[
"parent"],
"integer");
1464 $obj_set =
$ilDB->query($q);
1465 $obj_rec =
$ilDB->fetchAssoc($obj_set);
1466 if ($obj_rec[
"type"] ==
"pg") {
1467 $node_data =
$tree->getNodeData($node[
"child"]);
1468 if (
$tree->isInTree($node[
"child"])) {
1469 $tree->deleteTree($node_data);
1476 $set =
$ilDB->query(
"SELECT DISTINCT l1.lm_id" .
1477 " FROM lm_tree l1" .
1478 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )" .
1479 " JOIN lm_data ON (l1.child = lm_data.obj_id)" .
1480 " WHERE l1.child <> 1" .
1481 " AND l1.lm_id <> lm_data.lm_id" .
1482 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1483 if ($rec =
$ilDB->fetchAssoc($set)) {
1484 $set =
$ilDB->query(
"SELECT DISTINCT l1.child " .
1485 " FROM lm_tree l1" .
1486 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )" .
1487 " JOIN lm_data ON (l1.child = lm_data.obj_id)" .
1488 " WHERE l1.child <> 1" .
1489 " AND l1.lm_id <> lm_data.lm_id" .
1490 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1491 include_once(
"./Modules/LearningModule/classes/class.ilLMObjectFactory.php");
1492 while ($rec =
$ilDB->fetchAssoc($set)) {
1495 if (is_object($cobj)) {
1496 if ($cobj->getType() ==
"pg") {
1498 $pg_copy = $cobj->copy($this);
1502 "UPDATE lm_tree SET " .
1503 " child = " .
$ilDB->quote($pg_copy->getId(),
"integer") .
1504 " WHERE child = " .
$ilDB->quote($cobj->getId(),
"integer") .
1505 " AND lm_id = " .
$ilDB->quote($this->getId(),
"integer")
1507 } elseif ($cobj->getType() ==
"st") {
1509 $st_copy = $cobj->copy($this);
1513 "UPDATE lm_tree SET " .
1514 " child = " .
$ilDB->quote($st_copy->getId(),
"integer") .
1515 " WHERE child = " .
$ilDB->quote($cobj->getId(),
"integer") .
1516 " AND lm_id = " .
$ilDB->quote($this->getId(),
"integer")
1521 "UPDATE lm_tree SET " .
1522 " parent = " .
$ilDB->quote($st_copy->getId(),
"integer") .
1523 " WHERE parent = " .
$ilDB->quote($cobj->getId(),
"integer") .
1524 " AND lm_id = " .
$ilDB->quote($this->getId(),
"integer")
1532 $set =
$ilDB->queryF(
1533 "SELECT * FROM lm_data " .
1534 " WHERE lm_id = %s AND type = %s",
1535 array(
"integer",
"text"),
1536 array($this->
getId(),
"pg")
1538 while ($rec =
$ilDB->fetchAssoc($set)) {
1541 $lm_page->setId($rec[
"obj_id"]);
1542 $lm_page->setParentId($this->
getId());
1561 $set =
$ilDB->query(
1562 "SELECT l1.child, l1.lft l1lft, l1.rgt l1rgt, l2.parent, l2.lft l2lft, l2.rgt l2rgt" .
1563 " FROM lm_tree l1" .
1564 " JOIN lm_tree l2 ON ( l1.child = l2.parent" .
1565 " AND l1.lm_id = l2.lm_id )" .
1566 " JOIN lm_data ON ( l1.child = lm_data.obj_id )" .
1567 " WHERE (l2.lft < l1.lft" .
1568 " OR l2.rgt > l1.rgt OR l2.lft > l1.rgt OR l2.rgt < l1.lft)" .
1569 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer") .
1570 " ORDER BY lm_data.create_date DESC"
1572 while ($rec =
$ilDB->fetchAssoc($set)) {
1573 $issues[] =
"Tree numbering: " . print_r($rec,
true);
1577 $set =
$ilDB->query(
"SELECT * FROM lm_tree WHERE lm_tree.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1578 while ($node =
$ilDB->fetchAssoc($set)) {
1579 $q =
"SELECT * FROM lm_data WHERE obj_id = " .
1580 $ilDB->quote($node[
"child"],
"integer");
1581 $obj_set =
$ilDB->query($q);
1582 $obj_rec =
$ilDB->fetchAssoc($obj_set);
1584 $issues[] =
"Tree entry without data entry: " . print_r($node,
true);
1590 foreach (
$nodes as $node) {
1591 $q =
"SELECT * FROM lm_data WHERE obj_id = " .
1592 $ilDB->quote($node[
"parent"],
"integer");
1593 $obj_set =
$ilDB->query($q);
1594 $obj_rec =
$ilDB->fetchAssoc($obj_set);
1595 if ($obj_rec[
"type"] ==
"pg") {
1596 $node_data =
$tree->getNodeData($node[
"child"]);
1597 if (
$tree->isInTree($node[
"child"])) {
1598 $issues[] =
"Subtree with page parent: " . print_r($node_data,
true);
1605 $set =
$ilDB->query(
"SELECT DISTINCT l1.lm_id" .
1606 " FROM lm_tree l1" .
1607 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )" .
1608 " JOIN lm_data ON (l1.child = lm_data.obj_id)" .
1609 " WHERE l1.child <> 1" .
1610 " AND l1.lm_id <> lm_data.lm_id" .
1611 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1612 if ($rec =
$ilDB->fetchAssoc($set)) {
1613 $set =
$ilDB->query(
"SELECT DISTINCT l1.child " .
1614 " FROM lm_tree l1" .
1615 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )" .
1616 " JOIN lm_data ON (l1.child = lm_data.obj_id)" .
1617 " WHERE l1.child <> 1" .
1618 " AND l1.lm_id <> lm_data.lm_id" .
1619 " AND l1.lm_id = " .
$ilDB->quote($this->getId(),
"integer"));
1620 include_once(
"./Modules/LearningModule/classes/class.ilLMObjectFactory.php");
1621 while ($rec =
$ilDB->fetchAssoc($set)) {
1622 $set3 =
$ilDB->queryF(
1623 "SELECT * FROM lm_tree " .
1624 " WHERE child = %s ",
1626 array($rec[
"child"])
1628 while ($rec3 =
$ilDB->fetchAssoc($set3)) {
1629 $issues[] =
"Multi-reference item: " . print_r($rec3,
true);
1635 $set =
$ilDB->queryF(
1636 "SELECT * FROM lm_data " .
1637 " WHERE lm_id = %s AND type = %s",
1638 array(
"integer",
"text"),
1639 array($this->
getId(),
"pg")
1641 while ($rec =
$ilDB->fetchAssoc($set)) {
1643 $issues[] =
"Missing COPage: " . print_r($rec,
true);
1657 public function exportXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
1662 $attrs[
"Type"] =
"LearningModule";
1665 $a_xml_writer->xmlStartTag(
"ContentObject", $attrs);
1672 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Start Export Structure Objects");
1674 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Finished Export Structure Objects");
1677 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Start Export Page Objects");
1679 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Finished Export Page Objects");
1682 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Start Export Media Objects");
1684 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Finished Export Media Objects");
1687 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Start Export File Items");
1689 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Finished Export File Items");
1692 if (count($this->q_ids) > 0) {
1693 $qti_file = fopen($a_target_dir .
"/qti.xml",
"w");
1694 include_once(
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
1696 fwrite($qti_file, $pool->questionsToXML($this->q_ids));
1702 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Start Export Properties");
1704 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Finished Export Properties");
1706 $a_xml_writer->xmlEndTag(
"ContentObject");
1717 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
1719 $md2xml->setExportMode(
true);
1720 $md2xml->startExport();
1721 $a_xml_writer->appendXML($md2xml->getXML());
1732 include_once
'./Modules/LearningModule/classes/class.ilStructureObject.php';
1734 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
1735 foreach ($childs as $child) {
1736 if ($child[
"type"] !=
"st") {
1741 $structure_obj->exportXML($a_xml_writer, $a_inst, $expLog);
1742 unset($structure_obj);
1755 include_once
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
1756 include_once
"./Modules/LearningModule/classes/class.ilLMPage.php";
1759 foreach ($pages as $page) {
1761 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Page Object " . $page[
"obj_id"]);
1765 $page_obj->exportXML($a_xml_writer,
"normal", $a_inst);
1768 $mob_ids = $page_obj->getMediaObjectIDs();
1769 foreach ($mob_ids as $mob_id) {
1770 $this->mob_ids[$mob_id] = $mob_id;
1774 $file_ids = $page_obj->getFileItemIds();
1775 foreach ($file_ids as $file_id) {
1776 $this->file_ids[$file_id] = $file_id;
1780 $q_ids = $page_obj->getQuestionIds();
1781 foreach ($q_ids as $q_id) {
1782 $this->q_ids[$q_id] = $q_id;
1798 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
1800 $linked_mobs = array();
1803 foreach ($this->mob_ids as $mob_id) {
1805 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
1807 $media_obj->exportXML($a_xml_writer, $a_inst);
1808 $media_obj->exportFiles($a_target_dir);
1810 $lmobs = $media_obj->getLinkedMediaObjects($this->mob_ids);
1811 $linked_mobs = array_merge($linked_mobs, $lmobs);
1818 foreach ($linked_mobs as $mob_id) {
1820 $expLog->write(date(
"[y-m-d H:i:s] ") .
"Media Object " . $mob_id);
1822 $media_obj->exportXML($a_xml_writer, $a_inst);
1823 $media_obj->exportFiles($a_target_dir);
1835 include_once(
"./Modules/File/classes/class.ilObjFile.php");
1837 foreach ($this->file_ids as $file_id) {
1838 $expLog->write(date(
"[y-m-d H:i:s] ") .
"File Item " . $file_id);
1839 $file_obj =
new ilObjFile($file_id,
false);
1840 $file_obj->export($a_target_dir);
1852 $a_xml_writer->xmlStartTag(
"Properties", $attrs);
1855 $attrs = array(
"Name" =>
"Layout",
"Value" => $this->
getLayout());
1856 $a_xml_writer->xmlElement(
"Property", $attrs);
1859 $attrs = array(
"Name" =>
"PageHeader",
"Value" => $this->
getPageHeader());
1860 $a_xml_writer->xmlElement(
"Property", $attrs);
1863 $attrs = array(
"Name" =>
"TOCMode",
"Value" => $this->
getTOCMode());
1864 $a_xml_writer->xmlElement(
"Property", $attrs);
1867 $attrs = array(
"Name" =>
"ActiveLMMenu",
"Value" =>
1869 $a_xml_writer->xmlElement(
"Property", $attrs);
1872 $attrs = array(
"Name" =>
"ActiveNumbering",
"Value" =>
1874 $a_xml_writer->xmlElement(
"Property", $attrs);
1877 $attrs = array(
"Name" =>
"ActiveTOC",
"Value" =>
1879 $a_xml_writer->xmlElement(
"Property", $attrs);
1882 $attrs = array(
"Name" =>
"ActivePrintView",
"Value" =>
1884 $a_xml_writer->xmlElement(
"Property", $attrs);
1890 $attrs = array(
"Name" =>
"CleanFrames",
"Value" =>
1892 $a_xml_writer->xmlElement(
"Property", $attrs);
1895 $attrs = array(
"Name" =>
"PublicNotes",
"Value" =>
1897 $a_xml_writer->xmlElement(
"Property", $attrs);
1900 $attrs = array(
"Name" =>
"HistoryUserComments",
"Value" =>
1902 $a_xml_writer->xmlElement(
"Property", $attrs);
1905 $attrs = array(
"Name" =>
"Rating",
"Value" =>
1907 $a_xml_writer->xmlElement(
"Property", $attrs);
1908 $attrs = array(
"Name" =>
"RatingPages",
"Value" =>
1910 $a_xml_writer->xmlElement(
"Property", $attrs);
1914 $attrs = array(
"Name" =>
"HeaderPage",
"Value" =>
1916 $a_xml_writer->xmlElement(
"Property", $attrs);
1921 $attrs = array(
"Name" =>
"FooterPage",
"Value" =>
1923 $a_xml_writer->xmlElement(
"Property", $attrs);
1927 $attrs = array(
"Name" =>
"LayoutPerPage",
"Value" =>
1929 $a_xml_writer->xmlElement(
"Property", $attrs);
1932 $attrs = array(
"Name" =>
"ProgressIcons",
"Value" =>
1934 $a_xml_writer->xmlElement(
"Property", $attrs);
1937 $attrs = array(
"Name" =>
"StoreTries",
"Value" =>
1939 $a_xml_writer->xmlElement(
"Property", $attrs);
1942 $attrs = array(
"Name" =>
"RestrictForwardNavigation",
"Value" =>
1944 $a_xml_writer->xmlElement(
"Property", $attrs);
1947 $attrs = array(
"Name" =>
"DisableDefaultFeedback",
"Value" =>
1949 $a_xml_writer->xmlElement(
"Property", $attrs);
1951 $a_xml_writer->xmlEndTag(
"Properties");
1961 $types = array(
"xml",
"html",
"scorm");
1963 foreach ($types as
$type) {
1966 if (!@is_dir($dir) or
1967 !is_writeable($dir)) {
1977 while ($entry = $cdir->read()) {
1978 if ($entry !=
"." and
1980 substr($entry, -4) ==
".zip" and
1981 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.zip\$~", $entry)) {
1982 $file[$entry .
$type] = array(
"type" =>
$type,
"file" => $entry,
1983 "size" => filesize($dir .
"/" . $entry));
2005 $this->public_export_file[
$a_type] = $a_file;
2017 return $this->public_export_file[
$a_type];
2026 if (!@is_dir($dir) or
2027 !is_writeable($dir)) {
2038 while ($entry = $dir->read()) {
2039 if ($entry !=
"." and
2041 substr($entry, -4) ==
".pdf" and
2042 preg_match(
"~^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.pdf\$~", $entry)) {
2070 include(
"./Modules/LearningModule/classes/class.ilLMContObjectManifestBuilder.php");
2072 $man_builder->buildManifest();
2073 $man_builder->dump($a_target_dir);
2076 copy(
"Modules/LearningModule/scorm_xsd/adlcp_rootv1p2.xsd", $a_target_dir .
"/adlcp_rootv1p2.xsd");
2077 copy(
"Modules/LearningModule/scorm_xsd/imscp_rootv1p1p2.xsd", $a_target_dir .
"/imscp_rootv1p1p2.xsd");
2078 copy(
"Modules/LearningModule/scorm_xsd/imsmd_rootv1p2p1.xsd", $a_target_dir .
"/imsmd_rootv1p2p1.xsd");
2079 copy(
"Modules/LearningModule/scorm_xsd/ims_xml.xsd", $a_target_dir .
"/ims_xml.xsd");
2083 $zip_file = $a_target_dir .
"/" . $date .
"__" . IL_INST_ID .
"__" .
2087 $a_target_dir .
"/imsmanifest.xml",
2088 $a_target_dir .
"/adlcp_rootv1p2.xsd",
2089 $a_target_dir .
"/imscp_rootv1p1p2.xsd",
2090 $a_target_dir .
"/ims_xml.xsd",
2091 $a_target_dir .
"/imsmd_rootv1p2p1.xsd"), $zip_file);
2093 $dest_file = $this->
getExportDirectory(
"scorm") .
"/" . $date .
"__" . IL_INST_ID .
"__" .
2096 rename($zip_file, $dest_file);
2104 public function exportHTML($a_target_dir,
$log, $a_zip_file =
true, $a_export_format =
"html", $a_lang =
"")
2110 $user_lang =
$ilUser->getLanguage();
2115 $mob_dir = $a_target_dir .
"/mobs";
2117 $file_dir = $a_target_dir .
"/files";
2119 $teximg_dir = $a_target_dir .
"/teximg";
2121 $style_dir = $a_target_dir .
"/style";
2123 $style_img_dir = $a_target_dir .
"/style/images";
2125 $content_style_dir = $a_target_dir .
"/content_style";
2127 $content_style_img_dir = $a_target_dir .
"/content_style/images";
2131 include_once
'./Services/MathJax/classes/class.ilMathJax.php';
2136 $style_name =
$ilUser->prefs[
"style"] .
".css";
2137 copy($location_stylesheet, $style_dir .
"/" . $style_name);
2138 $fh = fopen($location_stylesheet,
"r");
2139 $css = fread($fh, filesize($location_stylesheet));
2140 preg_match_all(
"/url\(([^\)]*)\)/", $css,
$files);
2141 foreach (array_unique(
$files[1]) as $fileref) {
2142 $css_fileref = str_replace(array(
"'",
'"'),
"", $fileref);
2143 $fileref = dirname($location_stylesheet) .
"/" . $css_fileref;
2144 if (is_file($fileref)) {
2148 copy($fileref, $style_dir .
"/" . $css_fileref);
2156 $cont_stylesheet =
"./Services/COPage/css/content.css";
2158 $css = fread(fopen($cont_stylesheet,
'r'), filesize($cont_stylesheet));
2159 preg_match_all(
"/url\(([^\)]*)\)/", $css,
$files);
2160 foreach (array_unique(
$files[1]) as $fileref) {
2161 $target_fileref = str_replace(
"..",
".", $fileref);
2162 $target_fileref = str_replace(
'"',
"", $target_fileref);
2163 if (is_file($target_fileref)) {
2164 copy($target_fileref, $content_style_img_dir .
"/" . basename($target_fileref));
2166 $css = str_replace($fileref,
"images/" . basename($target_fileref), $css);
2168 fwrite(fopen($content_style_dir .
"/content.css",
'w'), $css);
2171 $style->writeCSSFile($content_style_dir .
"/content.css",
"images");
2172 $style->copyImagesToDir($content_style_img_dir);
2177 copy($syn_stylesheet, $a_target_dir .
"/syntaxhighlight.css");
2180 include_once(
"./Modules/LearningModule/classes/class.ilLMPresentationGUI.php");
2181 $_GET[
"cmd"] =
"nop";
2182 $get_transl =
$_GET[
"transl"];
2183 $_GET[
"transl"] =
"";
2185 $lm_gui->setOfflineMode(
true, ($a_lang ==
"all"));
2186 $lm_gui->setOfflineDirectory($a_target_dir);
2187 $lm_gui->setExportFormat($a_export_format);
2191 if ($a_lang !=
"all") {
2192 $langs = array($a_lang);
2194 $ot_langs = $ot->getLanguages();
2195 foreach ($ot_langs as $otl) {
2196 $langs[] = $otl[
"lang_code"];
2201 $this->offline_mobs = array();
2202 $this->offline_int_links = array();
2203 $this->offline_files = array();
2206 foreach ($langs as
$lang) {
2211 $ilUser->setLanguage($user_lang);
2212 $ilUser->setCurrentLanguage($user_lang);
2216 if (
$lang == $ot->getMasterLanguage()) {
2219 $lm_gui->lang =
$lang;
2225 $this->
exportHTMLPages($lm_gui, $a_target_dir, $lm_gui->lang, ($a_lang ==
"all"));
2228 $ilLocator->clearItems();
2234 $lm_gui->tpl =
$tpl;
2235 $content = $lm_gui->showTableOfContents();
2237 if ($a_lang ==
"all") {
2238 $file = $a_target_dir .
"/table_of_contents_" .
$lang .
".html";
2240 $file = $a_target_dir .
"/table_of_contents.html";
2244 if (!($fp = @fopen($file,
"w+"))) {
2245 die(
"<b>Error</b>: Could not open \"" . $file .
"\" for writing" .
2246 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2249 fwrite($fp, $content);
2258 $linked_mobs = array();
2259 foreach ($this->offline_mobs as $mob) {
2261 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs);
2264 $linked_mobs2 = array();
2265 foreach ($linked_mobs as $mob) {
2267 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs2);
2270 $_GET[
"obj_type"] =
"MediaObject";
2271 $_GET[
"obj_id"] = $a_mob_id;
2275 foreach ($this->offline_files as $file) {
2280 if (count($this->q_ids) > 0) {
2281 foreach ($this->q_ids as $q_id) {
2285 $a_target_dir .
"/assessment/0/" . $q_id .
"/images"
2291 $image_dir = $a_target_dir .
"/images";
2296 $image_dir .
"/enlarge.svg"
2300 $image_dir .
"/browser/plus.png"
2304 $image_dir .
"/browser/minus.png"
2308 $image_dir .
"/browser/blank.png"
2312 $image_dir .
"/spacer.png"
2316 $image_dir .
"/icon_st.svg"
2320 $image_dir .
"/icon_pg.svg"
2324 $image_dir .
"/icon_lm.svg"
2328 $image_dir .
"/nav_arr_L.png"
2332 $image_dir .
"/nav_arr_R.png"
2336 $services_dir = $a_target_dir .
"/Services";
2338 $media_service_dir = $services_dir .
"/MediaObjects";
2340 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2343 $mp3_dir = $media_service_dir .
"/flash_mp3_player";
2348 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2356 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2357 foreach (self::getSupplyingExportFiles($a_target_dir) as
$f) {
2358 if (
$f[
"source"] !=
"") {
2360 copy(
$f[
"source"],
$f[
"target"]);
2365 $tpl->setVariable(
"LOCATION_STYLESHEET", $location_stylesheet);
2366 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2368 if ($a_lang !=
"") {
2369 $ilUser->setLanguage($user_lang);
2370 $ilUser->setCurrentLanguage($user_lang);
2375 if ($a_lang ==
"") {
2384 $zip_file = $zip_target_dir .
"/" . $date .
"__" . IL_INST_ID .
"__" .
2400 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2401 include_once(
"./Services/jQuery/classes/class.iljQueryUtil.php");
2402 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2403 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2406 "target" => $a_target_dir .
'/js/yahoo/yahoo-min.js',
2409 "target" => $a_target_dir .
'/js/yahoo/yahoo-dom-event.js',
2412 "target" => $a_target_dir .
'/js/yahoo/animation-min.js',
2414 array(
"source" =>
'./Services/JavaScript/js/Basic.js',
2415 "target" => $a_target_dir .
'/js/Basic.js',
2417 array(
"source" =>
'./Services/Accordion/js/accordion.js',
2418 "target" => $a_target_dir .
'/js/accordion.js',
2420 array(
"source" =>
'./Services/Accordion/css/accordion.css',
2421 "target" => $a_target_dir .
'/css/accordion.css',
2424 "target" => $a_target_dir .
'/js/jquery.js',
2427 "target" => $a_target_dir .
'/js/maphilight.js',
2430 "target" => $a_target_dir .
'/js/jquery-ui-min.js',
2432 array(
"source" =>
'./Services/COPage/js/ilCOPagePres.js',
2433 "target" => $a_target_dir .
'/js/ilCOPagePres.js',
2435 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/pure.js',
2436 "target" => $a_target_dir .
'/js/pure.js',
2438 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/question_handling.js',
2439 "target" => $a_target_dir .
'/js/question_handling.js',
2441 array(
"source" =>
'./Modules/TestQuestionPool/js/ilMatchingQuestion.js',
2442 "target" => $a_target_dir .
'/js/ilMatchingQuestion.js',
2444 array(
"source" =>
'./Modules/Scorm2004/templates/default/question_handling.css',
2445 "target" => $a_target_dir .
'/css/question_handling.css',
2447 array(
"source" =>
'./Modules/TestQuestionPool/templates/default/test_javascript.css',
2448 "target" => $a_target_dir .
'/css/test_javascript.css',
2450 array(
"source" =>
'./Modules/TestQuestionPool/js/ilAssMultipleChoice.js',
2451 "target" => $a_target_dir .
'/js/ilAssMultipleChoice.js',
2468 array(
"source" =>
'./Modules/LearningModule/js/LearningModule.js',
2469 "target" => $a_target_dir .
'/js/LearningModule.js',
2476 $scripts[] = array(
"source" =>
"",
2482 include_once(
"./Services/Link/classes/class.ilLinkifyUtil.php");
2484 if (is_int(strpos($p,
"ExtLink"))) {
2485 $scripts[] = array(
"source" => $p,
2486 "target" => $a_target_dir .
'/js/ilExtLink.js',
2489 if (is_int(strpos($p,
"linkify.min.js"))) {
2490 $scripts[] = array(
"source" => $p,
2491 "target" => $a_target_dir .
'/js/linkify.min.js',
2494 if (is_int(strpos($p,
"linkify-jquery.min.js"))) {
2495 $scripts[] = array(
"source" => $p,
2496 "target" => $a_target_dir .
'/js/linkify-jquery.min.js',
2509 $file_dir = $a_target_dir .
"/files/file_" . $a_file_id;
2511 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2512 $file_obj =
new ilObjFile($a_file_id,
false);
2513 $source_file = $file_obj->getDirectory($file_obj->getVersion()) .
"/" . $file_obj->getFileName();
2514 if (!is_file($source_file)) {
2515 $source_file = $file_obj->getDirectory() .
"/" . $file_obj->getFileName();
2517 if (is_file($source_file)) {
2518 copy($source_file, $file_dir .
"/" . $file_obj->getFileName());
2525 public function exportHTMLMOB($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
2529 $mob_dir = $a_target_dir .
"/mobs";
2532 if (@is_dir($source_dir)) {
2538 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2539 $_GET[
"obj_type"] =
"MediaObject";
2540 $_GET[
"mob_id"] = $a_mob_id;
2541 $_GET[
"frame"] = $a_frame;
2543 $content = $a_lm_gui->media();
2544 $file = $a_target_dir .
"/media_" . $a_mob_id .
".html";
2547 if (!($fp = @fopen($file,
"w+"))) {
2548 die(
"<b>Error</b>: Could not open \"" . $file .
"\" for writing" .
2549 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2552 fwrite($fp, $content);
2556 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2558 if ($mob_obj->hasFullscreenItem()) {
2560 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2561 $_GET[
"obj_type"] =
"";
2562 $_GET[
"frame"] =
"";
2563 $_GET[
"mob_id"] = $a_mob_id;
2564 $_GET[
"cmd"] =
"fullscreen";
2565 $content = $a_lm_gui->fullscreen();
2566 $file = $a_target_dir .
"/fullscreen_" . $a_mob_id .
".html";
2569 if (!($fp = @fopen($file,
"w+"))) {
2570 die(
"<b>Error</b>: Could not open \"" . $file .
"\" for writing" .
2571 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2574 fwrite($fp, $content);
2577 $linked_mobs = $mob_obj->getLinkedMediaObjects();
2578 foreach ($linked_mobs as
$id) {
2582 $a_linked_mobs = array_merge($a_linked_mobs, $linked_mobs);
2592 foreach ($this->offline_int_links as $int_link) {
2593 $ilLocator->clearItems();
2594 if ($int_link[
"type"] ==
"git") {
2596 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2598 $_GET[
"obj_id"] = $int_link[
"id"];
2599 $_GET[
"frame"] =
"_blank";
2600 $content = $a_lm_gui->glossary();
2601 $file = $a_target_dir .
"/term_" . $int_link[
"id"] .
".html";
2604 if (!($fp = @fopen($file,
"w+"))) {
2605 die(
"<b>Error</b>: Could not open \"" . $file .
"\" for writing" .
2606 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2609 fwrite($fp, $content);
2613 include_once(
"./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
2615 foreach ($defs as
$def) {
2617 foreach ($def_mobs as $def_mob) {
2618 $this->offline_mobs[$def_mob] = $def_mob;
2619 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
2626 $this->offline_files = array_merge($this->offline_files, $def_files);
2635 public function exportHTMLPages(&$a_lm_gui, $a_target_dir, $a_lang =
"", $a_all_languages =
false)
2643 $this->first_page_id = $first_page[
"child"];
2647 $int_links = array();
2648 $this->offline_files = array();
2650 include_once(
"./Services/COPage/classes/class.ilPageContentUsage.php");
2651 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2655 $exp_id_map = array();
2657 if (
$lm_set->get(
"html_export_ids")) {
2658 foreach ($pages as $page) {
2660 if (trim($exp_id) !=
"") {
2661 $exp_id_map[$page[
"obj_id"]] = trim($exp_id);
2666 if ($a_lang ==
"") {
2671 foreach ($pages as $page) {
2673 $ilLocator->clearItems();
2686 foreach ($pcs as $pc) {
2687 if ($pc[
"type"] ==
"incl") {
2689 foreach ($incl_mobs as $incl_mob) {
2690 $mobs[$incl_mob] = $incl_mob;
2691 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2692 $this->log->debug(
"HTML Export: Add media object $incl_mob (" .
ilObject::_lookupTitle($incl_mob) .
") " .
2693 " due to snippet " . $pc[
"id"] .
" in page " . $page[
"obj_id"] .
" (" .
ilLMObject::_lookupTitle($page[
"obj_id"]) .
").");
2700 foreach ($pg_mobs as $pg_mob) {
2701 $mobs[$pg_mob] = $pg_mob;
2702 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2709 $int_links = array_merge($int_links, $pg_links);
2712 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2714 $this->offline_files = array_merge($this->offline_files, $pg_files);
2717 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2719 foreach ($q_ids as $q_id) {
2720 $this->q_ids[$q_id] = $q_id;
2725 $this->offline_mobs[
$m] =
$m;
2727 foreach ($int_links as $k => $v) {
2728 $this->offline_int_links[$k] = $v;
2742 $a_exp_id_map = array(),
2744 $a_all_languages =
false
2749 if ($a_lang !=
"-" && $a_lang !=
"" && $a_all_languages) {
2750 $lang_suffix =
"_" . $a_lang;
2756 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2758 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2761 $_GET[
"obj_id"] = $a_lm_page_id;
2762 $_GET[
"frame"] = $a_frame;
2764 if ($a_frame ==
"") {
2766 if (is_array($a_exp_id_map) && isset($a_exp_id_map[$a_lm_page_id])) {
2767 $file = $a_target_dir .
"/lm_pg_" . $a_exp_id_map[$a_lm_page_id] . $lang_suffix .
".html";
2769 $file = $a_target_dir .
"/lm_pg_" . $a_lm_page_id . $lang_suffix .
".html";
2772 if ($a_frame !=
"toc") {
2773 $file = $a_target_dir .
"/frame_" . $a_lm_page_id .
"_" . $a_frame . $lang_suffix .
".html";
2775 $file = $a_target_dir .
"/frame_" . $a_frame . $lang_suffix .
".html";
2780 if (@is_file($file)) {
2784 $content = $a_lm_gui->layout(
"main.xml",
false);
2787 if (!($fp = @fopen($file,
"w+"))) {
2788 die(
"<b>Error</b>: Could not open \"" . $file .
"\" for writing" .
2789 " in <b>" . __FILE__ .
"</b> on line <b>" . __LINE__ .
"</b><br />");
2796 fwrite($fp, $content);
2801 if ($this->first_page_id == $a_lm_page_id && $a_frame ==
"") {
2802 copy($file, $a_target_dir .
"/index" . $lang_suffix .
".html");
2806 $frameset = $a_lm_gui->getCurrentFrameSet();
2808 foreach ($frameset as $frame) {
2809 $this->
exportPageHTML($a_lm_gui, $a_target_dir, $a_lm_page_id, $frame);
2819 public function exportFO(&$a_xml_writer, $a_target_dir)
2823 $attrs[
"xmlns:fo"] =
"http://www.w3.org/1999/XSL/Format";
2824 $a_xml_writer->xmlStartTag(
"fo:root", $attrs);
2828 $a_xml_writer->xmlStartTag(
"fo:layout-master-set", $attrs);
2832 $attrs[
"master-name"] =
"DinA4";
2833 $attrs[
"page-height"] =
"29.7cm";
2834 $attrs[
"page-width"] =
"21cm";
2835 $attrs[
"margin-top"] =
"4cm";
2836 $attrs[
"margin-bottom"] =
"1cm";
2837 $attrs[
"margin-left"] =
"2.8cm";
2838 $attrs[
"margin-right"] =
"7.3cm";
2839 $a_xml_writer->xmlStartTag(
"fo:simple-page-master", $attrs);
2843 $attrs[
"margin-top"] =
"0cm";
2844 $attrs[
"margin-bottom"] =
"1.25cm";
2845 $a_xml_writer->xmlElement(
"fo:region-body", $attrs);
2849 $attrs[
"extent"] =
"1cm";
2850 $a_xml_writer->xmlElement(
"fo:region-before", $attrs);
2854 $attrs[
"extent"] =
"1cm";
2855 $a_xml_writer->xmlElement(
"fo:region-after", $attrs);
2858 $a_xml_writer->xmlEndTag(
"fo:simple-page-master");
2861 $a_xml_writer->xmlEndTag(
"fo:layout-master-set");
2865 $attrs[
"master-reference"] =
"DinA4";
2866 $a_xml_writer->xmlStartTag(
"fo:page-sequence", $attrs);
2870 $attrs[
"flow-name"] =
"xsl-region-body";
2871 $a_xml_writer->xmlStartTag(
"fo:flow", $attrs);
2878 $a_xml_writer->xmlEndTag(
"fo:flow");
2881 $a_xml_writer->xmlEndTag(
"fo:page-sequence");
2884 $a_xml_writer->xmlEndTag(
"fo:root");
2895 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
2896 foreach ($childs as $child) {
2897 if ($child[
"type"] !=
"st") {
2902 $structure_obj->exportFO($a_xml_writer, $expLog);
2903 unset($structure_obj);
2909 include_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2913 $export_file = $cont_exp->buildExportFile();
2914 return $export_file;
2928 $lmtree->setTableNames(
'lm_tree',
'lm_data');
2929 $lmtree->setTreeTablePK(
"lm_id");
2932 $source_obj->setLMId($this->
getId());
2934 if (!$first_child) {
2936 $target_obj->setLMId($this->
getId());
2937 $target_parent = $lmtree->getParentId(
$target_id);
2941 if ($source_obj->getType() ==
"pg") {
2943 if ($lmtree->isInTree($source_obj->getId())) {
2944 $node_data = $lmtree->getNodeData($source_obj->getId());
2947 if ($movecopy ==
"move") {
2948 $parent_id = $lmtree->getParentId($source_obj->getId());
2949 $lmtree->deleteTree($node_data);
2952 require_once(
"./Services/History/classes/class.ilHistory.php");
2954 $source_obj->getId(),
2963 $this->getType() .
":st"
2967 $new_page = $source_obj->copy();
2968 $source_id = $new_page->getId();
2969 $source_obj = $new_page;
2973 if (!$lmtree->isInTree($source_obj->getId())) {
2977 } elseif ($as_subitem) {
2980 $pg_childs = $lmtree->getChildsByType($parent,
"pg");
2981 if (count($pg_childs) != 0) {
2982 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
2986 $parent = $target_parent;
2990 $lmtree->insertNode(
2991 $source_obj->getId(),
2997 if ($movecopy ==
"move") {
2999 include_once(
"./Services/History/classes/class.ilHistory.php");
3001 $source_obj->getId(),
3010 $this->getType() .
":st"
3018 if ($source_obj->getType() ==
"st") {
3020 $source_node = $lmtree->getNodeData($source_id);
3021 $subnodes = $lmtree->getSubtree($source_node);
3024 foreach ($subnodes as $subnode) {
3036 $pg_childs = $lmtree->getChildsByType($target_parent,
"pg");
3037 if (count($pg_childs) != 0) {
3038 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
3040 } elseif ($as_subitem) {
3043 $childs = $lmtree->getChilds($target_parent);
3044 if (count($childs) != 0) {
3045 $target_pos = $childs[count($childs) - 1][
"obj_id"];
3070 if ($movecopy ==
"move") {
3071 $lmtree->deleteTree($source_node);
3074 $new_chapter = $source_obj->copy($lmtree, $target_parent, $target_pos);
3077 if (!$lmtree->isInTree($source_id)) {
3078 $lmtree->insertNode($source_id, $target_parent, $target_pos);
3081 if ($movecopy ==
"move") {
3082 foreach ($subnodes as $node) {
3083 if ($node[
"obj_id"] != $source_id) {
3084 $lmtree->insertNode($node[
"obj_id"], $node[
"parent"]);
3102 include_once
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
3103 include_once
"./Modules/LearningModule/classes/class.ilLMPage.php";
3108 foreach ($pages as $page) {
3110 $cpage =
new ilLMPage($page[
"obj_id"]);
3112 $error = @$cpage->validateDom();
3115 $this->lng->loadLanguageModule(
"content");
3119 $mess .= $this->lng->txt(
"obj_pg") .
": " .
$title;
3120 $mess .=
'<div class="small">';
3122 $err_mess = implode($e,
" - ");
3123 if (!is_int(strpos($err_mess,
":0:"))) {
3124 $mess .= htmlentities($err_mess) .
"<br />";
3146 $a_import_into_help_module = 0
3154 $file = pathinfo($a_filename);
3157 ilUtil::moveUploadedFile(
3166 $subdir = basename($file[
"basename"],
"." . $file[
"extension"]);
3193 $this->log->debug(
"import from directory " . $a_directory);
3196 $subdir = basename($a_directory);
3197 $xml_file = $a_directory .
"/" . $subdir .
".xml";
3200 if (!is_dir($a_directory)) {
3201 $this->log->error(sprintf(
$lng->txt(
"cont_no_subdir_in_zip"), $subdir));
3202 return sprintf(
$lng->txt(
"cont_no_subdir_in_zip"), $subdir);
3206 if (!is_file($xml_file)) {
3207 $this->log->error(sprintf(
$lng->txt(
"cont_zip_file_invalid"), $subdir .
"/" . $subdir .
".xml"));
3208 return sprintf(
$lng->txt(
"cont_zip_file_invalid"), $subdir .
"/" . $subdir .
".xml");
3212 $this->log->debug(
"import qti");
3213 $qti_file = $a_directory .
"/qti.xml";
3215 if (is_file($qti_file)) {
3216 include_once
"./Services/QTI/classes/class.ilQTIParser.php";
3217 include_once(
"./Modules/Test/classes/class.ilObjTest.php");
3224 $result = $qtiParser->startParsing();
3225 $founditems = &$qtiParser->getFoundItems();
3227 if (count($founditems) > 0) {
3229 $qtiParser->setTestObject($testObj);
3230 $result = $qtiParser->startParsing();
3231 $qtis = array_merge($qtis, $qtiParser->getImportMapping());
3235 $this->log->debug(
"get ilContObjParser");
3236 include_once(
"./Modules/LearningModule/classes/class.ilContObjParser.php");
3238 $contParser =
new ilContObjParser($this, $xml_file, $subdir, $a_directory);
3240 $contParser->setImportMapping($a_mapping);
3241 $contParser->setQuestionMapping($qtis);
3242 $contParser->startParsing();
3247 $style_file = $a_directory .
"/style.xml";
3248 $style_zip_file = $a_directory .
"/style.zip";
3249 if (is_file($style_zip_file)) {
3250 require_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3252 $style->import($style_zip_file);
3254 } elseif (is_file($style_file)) {
3255 require_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3257 $style->import($style_file);
3268 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3287 public function cloneObject($a_target_id, $a_copy_id = 0, $a_omit_tree =
false)
3289 $new_obj = parent::cloneObject($a_target_id, $a_copy_id, $a_omit_tree);
3296 if (!$cp_options->isRootNode($this->getRefId())) {
3303 $new_obj->setLayout($this->
getLayout());
3317 $new_obj->setRating($this->
hasRating());
3327 $new_obj->createLMTree();
3330 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
3335 $new_id = $style_obj->ilClone();
3336 $new_obj->setStyleSheetId($new_id);
3347 $new_obj->setHeaderPage($new_page_header);
3350 $new_obj->setFooterPage($new_page_footer);
3355 include_once(
'Services/Tracking/classes/class.ilLPObjSettings.php');
3357 $obj_settings->cloneSettings($new_obj->getId());
3358 unset($obj_settings);
3361 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3363 $ot->copy($new_obj->getId());
3366 include_once
'./Modules/LearningModule/classes/class.ilLMMenuEditor.php';
3368 $menu->setObjId($this->
getId());
3370 $new_menu->setObjId($new_obj->getId());
3371 foreach ($menu->getMenuEntries() as $entry) {
3379 $new_menu->setTarget($entry[
"link"]);
3380 $new_menu->setTitle($entry[
"title"]);
3381 $new_menu->setLinkType($entry[
"type"]);
3382 $new_menu->setLinkRefId($entry[
"ref_id"]);
3383 $new_menu->create();
3398 $parent_id = $a_target_obj->lm_tree->readRootId();
3400 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
3401 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
3404 $chapters = $this->lm_tree->getChildsByType($this->lm_tree->readRootId(),
"st");
3405 $copied_nodes = array();
3407 foreach ($chapters as $chap) {
3423 foreach ($pages as $p) {
3424 if (!$this->lm_tree->isInTree($p[
"obj_id"])) {
3426 $target_item = $item->copy($a_target_obj);
3427 $copied_nodes[$item->getId()] = $target_item->getId();
3432 include_once
'./Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
3434 foreach ($copied_nodes as $old_id => $new_id) {
3437 $a_target_obj->getRefId() .
'_' . $new_id
3443 $a_target_obj->checkTree();
3445 return $copied_nodes;
3462 $set =
$ilDB->query(
3463 "SELECT * FROM lm_glossaries " .
3464 " WHERE lm_id = " .
$ilDB->quote($a_lm_id,
"integer")
3467 while ($rec =
$ilDB->fetchAssoc($set)) {
3468 $glos[] = $rec[
"glo_id"];
3482 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
3486 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3490 $found_pages = array();
3491 foreach ($pages as $p) {
3493 $c = $pg->getXMLContent();
3494 foreach ($terms as
$t) {
3495 if (is_int(stripos(
$c,
$t[
"term"]))) {
3496 $found_pages[$p[
"id"]][
"terms"][] =
$t;
3497 if (!is_object($found_pages[$p[
"id"]][
"page"])) {
3498 $found_pages[$p[
"id"]][
"page"] = $pg;
3506 include_once(
"./Services/COPage/classes/class.ilPCParagraph.php");
3507 foreach ($found_pages as
$id => $fp) {
3524 if (!$a_as_obj_id && $a_id > 0 && $a_id == OH_REF_ID) {
3535 $this->rating = (bool) $a_value;
3545 $this->rating_pages = (bool) $a_value;
3556 parent::MDUpdateListener($a_element);
3558 include_once
'Services/MetaData/classes/class.ilMD.php';
3560 switch ($a_element) {
3562 include_once(
"./Services/Object/classes/class.ilObjectLP.php");
3565 $obj_lp->getCurrentMode(),
3568 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
3577 if (!is_object($md_gen = $md->getGeneral())) {
3581 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3583 if ($ot->getContentActivated()) {
3584 $ot->setDefaultTitle($md_gen->getTitle());
3586 foreach ($md_gen->getDescriptionIds() as
$id) {
3587 $md_des = $md_gen->getDescription(
$id);
3588 $ot->setDefaultDescription($md_des->getDescription());
3606 $dirs = array(
"xml",
"scorm");
3607 $export_files = array();
3609 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3611 if ($ot->getContentActivated()) {
3612 $langs = $ot->getLanguages();
3613 foreach ($langs as
$l => $ldata) {
3614 $dirs[] =
"html_" .
$l;
3616 $dirs[] =
"html_all";
3621 foreach ($dirs as $dir) {
3622 $type = explode(
"_", $dir);
3629 $export_files[] = array(
"type" =>
$type,
3637 return $export_files;
if(strpos( $jquery_path, './')===0) elseif(strpos($jquery_path, '.')===0) $mathJaxSetting
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
static _checkCondition($condition, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
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
static _getPersistedConditionsOfTarget($a_target_ref_id, $a_target_obj_id, $a_target_type="")
get all persisted conditions of target object
Export class for content objects.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
static getLocalJsTreeCssPath()
Get local path of jsTree js.
static getLocalExplorerJsPath()
Get local path of explorer js.
static getLocalJsTreeJsPath()
Get local path of jsTree js.
static createHTMLExportDirs($a_target_dir)
Create html export directories.
static getDefinitionList($a_term_id)
static
static getTermList( $a_glo_ref_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.
static _lookGlossaryTerm($term_id)
get glossary term
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)
Content Object (ILIAS native learning module / digilib book) Manifest export class.
static getInstance(&$a_content_obj, $a_id=0, $a_halt=true)
static getExportId($a_lm_id, $a_lmobj_id, $a_type="pg")
Get export ID.
static updateInternalLinks($a_copied_nodes, $a_parent_type="lm")
Update internal links, after multiple pages have been copied.
static _lookupTitle($a_obj_id)
Lookup title.
static putInTree($a_obj, $a_parent_id="", $a_target_node_id="")
put this object into content object tree
static _deleteAllObjectData(&$a_cobj)
delete all objects of content object (digi book / learning module)
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 getPageList($lm_id)
static
Extension of ilPageObject for learning modules.
Class ilLMPresentationGUI.
const LP_MODE_COLLECTION_TLT
static _refreshStatus($a_obj_id, $a_users=null)
Set dirty.
static getLocalJsPaths()
Get paths of necessary js files.
static getLogger($a_component_id)
Get component logger.
static getInstance()
Singleton: get instance.
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type, $a_news_id=0)
Are comments activated for object?
static activateComments($a_rep_obj_id, $a_obj_id, $a_obj_type, $a_activate=true)
Activate notes feature.
Class ilObjContentObject.
exportXMLMediaObjects(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
export media objects to xml (see ilias_co.dtd)
exportFO(&$a_xml_writer, $a_target_dir)
export object to fo
exportHTML($a_target_dir, $log, $a_zip_file=true, $a_export_format="html", $a_lang="")
export html package
exportHTMLGlossaryTerms(&$a_lm_gui, $a_target_dir)
export glossary terms
static lookupAutoGlossaries($a_lm_id)
Lookup auto glossaries.
putInTree($a_parent)
put content object in main tree
__construct($a_id=0, $a_call_by_reference=true)
Constructor @access public.
updateProperties()
Update content object properties.
setAutoGlossaries($a_val)
Set auto glossaries.
setTitle($a_title)
set title of content object
exportFileItems($a_target_dir, &$expLog)
export files of file itmes
exportHTMLPages(&$a_lm_gui, $a_target_dir, $a_lang="", $a_all_languages=false)
export all pages of learning module to html file
setActiveLMMenu($a_act_lm_menu)
getLayoutPerPage()
Get layout per page.
createProperties()
create new properties record
& getLMTree()
get content object tree
static _getNrLMsIndividualStyles()
get number of learning modules with individual styles
setForTranslation($a_val)
Set for translation.
static getAvailableLayouts()
get all available lm layouts
exportSCORM($a_target_dir, $log)
export scorm package
isActiveHistoryUserComments()
getRestrictForwardNavigation()
Get restrict forward navigation.
getDataDirectory()
get data directory
getHideHeaderFooterPrint()
Get hide header footer in print mode.
exportHTMLFile($a_target_dir, $a_file_id)
export file object
copyAllPagesAndChapters($a_target_obj, $a_copy_id=0)
Copy all pages and chapters.
setActiveDownloadsPublic($a_down)
update()
update complete object (meta data and properties)
getTOCMode()
get toc mode ("chapters" | "pages")
exportXMLPageObjects(&$a_xml_writer, $a_inst, &$expLog)
export page objects to xml (see ilias_co.dtd)
getExportDirectory($a_type="xml")
get export directory of lm
exportXMLMetaData(&$a_xml_writer)
export content objects meta data to xml (see ilias_co.dtd)
static _lookupRestrictForwardNavigation($a_obj_id)
Lookup forward restriction navigation.
static writeHeaderPage($a_lm_id, $a_page_id)
Write header page.
setActiveNumbering($a_num)
setImportDirectory($a_import_dir)
Set import directory for further use in ilContObjParser.
getForTranslation()
Get for translation.
importFromDirectory($a_directory, $a_validate=true, $a_mapping=null)
Import lm from directory.
getTitle()
get title of content object
static _lookupStoreTries($a_id)
Lookup disable default feedback.
createImportDirectory()
creates data directory for import files (data_dir/lm_data/lm_<id>/import, depending on data directory...
create($a_no_meta_data=false)
create content object
getAutoGlossaries()
Get auto glossaries.
static getSupplyingExportFiles($a_target_dir=".")
Get supplying export files.
static _lookupStyleSheetId($a_cont_obj_id)
lookup style sheet ID
isActivePreventGlossaryAppendix()
static _getNrLMsNoStyle()
get number of learning modules assigned no style
static writeFooterPage($a_lm_id, $a_page_id)
Write footer page.
static _getMissingPreconditionsTopChapter($cont_obj_ref_id, $cont_obj_id, $page_id)
get top chapter of page for that any precondition is missing
writeStyleSheetId($a_style_id)
write ID of assigned style sheet object to db
setPageHeader($a_pg_header=IL_CHAPTER_TITLE)
set page header mode
setHistoryUserComments($a_comm)
removeAutoGlossary($a_glo_id)
Remove auto glossary.
setProgressIcons($a_val)
Set progress icons.
setLayoutPerPage($a_val)
Set layout per page.
autoLinkGlossaryTerms($a_glo_ref_id)
Auto link glossary terms.
createLMTree()
create content object tree (that stores structure object hierarchie)
importFromZipFile( $a_tmp_file, $a_filename, $a_validate=true, $a_import_into_help_module=0)
Import lm from zip file.
getExportFiles()
get export files
getLayout()
get default page layout of content object (see directory layouts/)
getDescription()
get description of content object
exportHTMLMOB($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
export media object to html
getPageHeader()
get page header mode (IL_CHAPTER_TITLE | IL_PAGE_TITLE | IL_NO_HEADER)
exportXMLProperties($a_xml_writer, &$expLog)
export properties of content object
static _lookup($a_obj_id, $a_field)
Lookup property.
getPublicAccessMode()
get public access mode ("complete" | "selected")
setRestrictForwardNavigation($a_val)
Set restrict forward navigation.
getImportDirectory()
get import directory of lm
setDisableDefaultFeedback($a_val)
Set disable default feedback for questions.
checkStructure()
Check tree (this has been copied from fixTree due to a bug fixing, should be reorganised)
addFirstChapterAndPage()
Add first chapter and page.
setImportId($a_id)
set import id
readProperties()
read content object properties
getStyleSheetId()
get ID of assigned style sheet object
setHideHeaderFooterPrint($a_val)
Set hide header footer in print mode.
exportXMLStructureObjects(&$a_xml_writer, $a_inst, &$expLog)
export structure objects to xml (see ilias_co.dtd)
MDUpdateListener($a_element)
Meta data update listener.
static hasSuccessorPage($a_cont_obj_id, $a_page_id)
checks if page has a successor page
static _checkPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
checks wether the preconditions of a page are fulfilled or not
setDescription($a_description)
set description of content object
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
executeDragDrop($source_id, $target_id, $first_child, $as_subitem=false, $movecopy="move")
Execute Drag Drop Action.
setPublicExportFile($a_type, $a_file)
specify public export file for type
validatePages()
Validate all pages.
static _lookupContObjIdByStyleId($a_style_id)
lookup style sheet ID
isActiveDownloadsPublic()
getStoreTries()
Get store tries.
read()
read data of content object
setActivePrintView($a_print)
exportFOStructureObjects(&$a_xml_writer)
export structure objects to fo
updateAutoGlossaries()
Update auto glossaries.
createExportDirectory($a_type="xml")
creates data directory for export files (data_dir/lm_data/lm_<id>/export, depending on data directory...
setStoreTries($a_val)
Set store tries.
setTOCMode($a_toc_mode="chapters")
set toc mode
getProgressIcons()
Get progress icons.
setPublicNotes($a_pub_notes)
static _getMissingPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
gets all missing preconditions of page
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
static isOnlineHelpModule($a_id, $a_as_obj_id=false)
Is module an online module.
static _getNrOfAssignedLMs($a_style_id)
gets the number of learning modules assigned to a content style
static _lookupDisableDefaultFeedback($a_id)
Lookup disable default feedback.
setActiveDownloads($a_down)
static _deleteStyleAssignments($a_style_id)
delete all style references to style
exportXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
export object to xml (see ilias_co.dtd)
getPublicExportFiles()
Get public export files.
setActivePreventGlossaryAppendix($a_print)
setLayout($a_layout)
set default page layout
setPublicAccessMode($a_mode)
cloneObject($a_target_id, $a_copy_id=0, $a_omit_tree=false)
Clone learning module.
getImportId()
get import id
static _moveLMStyles($a_from_style, $a_to_style)
move learning modules from one style to another
getOfflineFiles($dir)
get offline files
getDisableDefaultFeedback()
Get disable default feedback for questions.
getPublicExportFile($a_type)
get public export file
static _getFilesOfObject($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
get all files of an object
static _lookupStandard($a_id)
Lookup standard flag.
static getSyntaxStylePath()
get syntax style path
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstance($a_obj_id)
static getInstance($a_obj_id)
Get instance.
Class ilObject Basic functions for all objects.
static _writeImportId($a_obj_id, $a_import_id)
write import id to db (static)
getType()
get object type @access public
static _lookupObjId($a_id)
setOfflineStatus($a_status)
Set offline status.
static _lookupTitle($a_id)
lookup object title
deleteMetaData()
delete meta data entry
updateMetaData()
update meta data entry
getOfflineStatus()
Get offline status.
createMetaData()
create meta data entry
getRefId()
get reference id @access public
cloneMetaData($target_obj)
Copy meta data.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
getId()
get object id @access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static autoLinkGlossariesPage($a_page, $a_terms)
Auto link glossary of whole page.
static resetInitialState()
Reset initial state (for exports)
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
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.
static _handleImportRepositoryLinks($a_rep_import_id, $a_rep_type, $a_rep_ref_id)
Change targest of repository links.
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static getAllPages($a_parent_type, $a_parent_id, $a_lang="-")
Get all pages for parent object.
static getLocalMediaElementJsPath()
Get local path of jQuery file.
static getFlashVideoPlayerDirectory()
Get flash video player directory.
static getLocalMediaElementCssPath()
Get local path of jQuery file.
static copyPlayerFilesToTargetDirectory($a_target_dir)
Copy css files to target dir.
special template class to simplify handling of ITX/PEAR
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static getDataDir()
get data directory (outside webspace)
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static tf2yn($a_tf)
convert true/false to "y"/"n"
static getWebspaceDir($mode="filesystem")
get webspace directory
static rCopy($a_sdir, $a_tdir, $preserveTimeAttributes=false)
Copies content of a directory $a_sdir recursively to a directory $a_tdir.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static zip($a_dir, $a_file, $compress_content=false)
zips given directory/file into given zip.file
static unzip($a_file, $overwrite=false, $a_flat=false)
unzip file
static yn2tf($a_yn)
convert "y"/"n" to true/false
static makeDirParents($a_dir)
Create a new directory and all parent directories.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
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 ...
static getLocalPath($a_name="")
Get local path of a YUI js file.
static getLocaljQueryUIPath()
static getLocaljQueryPath()
static getLocalMaphilightPath()
Get local path of maphilight file.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
update($pash, $contents, Config $config)
foreach($_POST as $key=> $value) $res