4 require_once
"./Services/Object/classes/class.ilObject.php";
5 require_once
"Services/MetaData/classes/class.ilMDLanguageItem.php";
6 require_once(
"./Services/Xml/classes/class.ilNestedSetXML.php");
49 $this->
ilObject($a_id,$a_call_by_reference);
53 $this->mob_ids = array();
54 $this->file_ids = array();
55 $this->q_ids = array();
61 function create($a_no_meta_data =
false)
88 # echo "Content<br>\n"; 91 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
92 $this->lm_tree->setTreeTablePK(
"lm_id");
97 $set = $ilDB->query(
"SELECT * FROM lm_glossaries ".
98 " WHERE lm_id = ".$ilDB->quote($this->getId(),
"integer")
101 while ($rec = $ilDB->fetchAssoc($set))
103 $glos[] = $rec[
"glo_id"];
117 return parent::getTitle();
125 parent::setTitle($a_title);
136 return parent::getDescription();
144 parent::setDescription($a_description);
156 $this->import_id = $a_id;
166 $this->layout_per_page = $a_val;
176 return $this->layout_per_page;
186 $this->disable_def_feedback = $a_val;
196 return $this->disable_def_feedback;
206 $this->progr_icons = $a_val;
216 return $this->progr_icons;
226 $this->store_tries = $a_val;
236 return $this->store_tries;
246 $this->restrict_forw_nav = $a_val;
256 return $this->restrict_forw_nav;
287 $ilDB->manipulate(
"DELETE FROM lm_glossaries WHERE ".
288 " lm_id = ".$ilDB->quote($this->getId(),
"integer")
292 $ilDB->manipulate(
"INSERT INTO lm_glossaries ".
293 "(lm_id, glo_id) VALUES (".
294 $ilDB->quote($this->getId(),
"integer").
",".
295 $ilDB->quote($glo_id,
"integer").
320 parent::putInTree($a_parent);
335 $this->lm_tree->setTreeTablePK(
"lm_id");
336 $this->lm_tree->setTableNames(
'lm_tree',
'lm_data');
337 $this->lm_tree->addTree($this->
getId(), 1);
347 $this->auto_glossaries = array();
348 if (is_array($a_val))
350 foreach ($a_val as $v)
354 !in_array($v, $this->auto_glossaries))
356 $this->auto_glossaries[] = $v;
399 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
400 include_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
401 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
403 $root_id = $this->lm_tree->getRootId();
407 $chap->setType(
"st");
408 $chap->setTitle($lng->txt(
"cont_new_chap"));
409 $chap->setLMId($this->
getId());
415 $page->setType(
"pg");
416 $page->setTitle($lng->txt(
"cont_new_page"));
417 $page->setLMId($this->
getId());
429 $this->for_translation = $a_val;
459 if(!is_writable($lm_data_dir))
461 $this->
ilias->raiseError(
"Content object Data Directory (".$lm_data_dir
462 .
") not writeable.",$this->
ilias->error_obj->FATAL);
466 $lm_dir = $lm_data_dir.
"/lm_".$this->
getId();
468 if(!@is_dir($lm_dir))
470 $this->
ilias->raiseError(
"Creation of Learning Module Directory failed.",$this->
ilias->error_obj->FATAL);
478 $this->
ilias->raiseError(
"Creation of Import Directory failed.",$this->
ilias->error_obj->FATAL);
488 "/lm_".$this->getId();
496 if(strlen($this->import_dir))
502 "/lm_".$this->getId().
"/import";
521 $this->import_dir = $a_import_dir;
533 if(!is_writable($lm_data_dir))
535 $this->
ilias->raiseError(
"Content object Data Directory (".$lm_data_dir
536 .
") not writeable.",$this->
ilias->error_obj->FATAL);
539 $lm_dir = $lm_data_dir.
"/lm_".$this->
getId();
541 if(!@is_dir($lm_dir))
543 $this->
ilias->raiseError(
"Creation of Learning Module Directory failed.",$this->
ilias->error_obj->FATAL);
550 $export_dir = $lm_dir.
"/export_scorm";
554 if (substr($a_type, 0, 4) ==
"html")
556 $export_dir = $lm_dir.
"/export_".$a_type;
560 $export_dir = $lm_dir.
"/export";
566 if(!@is_dir($export_dir))
568 $this->
ilias->raiseError(
"Creation of Export Directory failed.",$this->
ilias->error_obj->FATAL);
584 if (substr($a_type, 0, 4) ==
"html")
586 $export_dir =
ilUtil::getDataDir().
"/lm_data".
"/lm_".$this->getId().
"/export_".$a_type;
615 if (!parent::delete())
621 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
629 $nested->init($this->
getId(),
"bib");
630 $nested->deleteAllDBData();
634 $this->lm_tree->removeTree($this->lm_tree->getTreeId());
640 $q =
"DELETE FROM content_object WHERE id = ".
641 $ilDB->quote($this->
getId(),
"integer");
642 $ilDB->manipulate($q);
645 $q =
"DELETE FROM lm_menu WHERE lm_id = ".
646 $ilDB->quote($this->
getId(),
"integer");
647 $ilDB->manipulate($q);
650 $ilDB->manipulate(
"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;
720 $ilDB->manipulate(
"UPDATE content_object SET ".
721 " header_page = ".$ilDB->quote($a_page_id,
"integer").
722 " WHERE id = ".$ilDB->quote($a_lm_id,
"integer")
736 $ilDB->manipulate(
"UPDATE content_object SET ".
737 " footer_page = ".$ilDB->quote($a_page_id,
"integer").
738 " WHERE id = ".$ilDB->quote($a_lm_id,
"integer")
750 if ($a_from_style < 0)
752 $q =
"SELECT stylesheet FROM content_object, style_data ".
753 " WHERE content_object.stylesheet = style_data.id ".
754 " AND style_data.standard = ".$ilDB->quote(0,
"integer").
755 " AND content_object.stylesheet > ".$ilDB->quote(0,
"integer");
756 $style_set = $ilDB->query($q);
757 while($style_rec = $ilDB->fetchAssoc($style_set))
760 $q =
"UPDATE content_object SET ".
761 " stylesheet = ".$ilDB->quote((
int) $a_to_style,
"integer").
762 " WHERE stylesheet = ".$ilDB->quote($style_rec[
"stylesheet"],
"integer");
763 $ilDB->manipulate($q);
766 $style_obj =& $ilias->obj_factory->getInstanceByObjId($style_rec[
"stylesheet"]);
767 $style_obj->delete();
772 $q =
"UPDATE content_object SET ".
773 " stylesheet = ".$ilDB->quote((
int) $a_to_style,
"integer").
774 " WHERE stylesheet = ".$ilDB->quote($a_from_style,
"integer");
775 $ilDB->manipulate($q);
786 static protected function _lookup($a_obj_id, $a_field)
790 $q =
"SELECT ".$a_field.
" FROM content_object ".
791 " WHERE id = ".$ilDB->quote($a_obj_id,
"integer");
793 $res = $ilDB->query($q);
794 $rec = $ilDB->fetchAssoc(
$res);
796 return $rec[$a_field];
807 return self::_lookup($a_obj_id,
"restrict_forw_nav");
817 $q =
"SELECT stylesheet FROM content_object ".
818 " WHERE id = ".$ilDB->quote($a_cont_obj_id,
"integer");
819 $res = $ilDB->query($q);
820 $sheet = $ilDB->fetchAssoc(
$res);
822 return $sheet[
"stylesheet"];
832 $q =
"SELECT id FROM content_object ".
833 " WHERE stylesheet = ".$ilDB->quote($a_style_id,
"integer");
834 $res = $ilDB->query($q);
836 while($cont = $ilDB->fetchAssoc(
$res))
838 $obj_ids[] = $cont[
"id"];
850 $q =
"SELECT disable_def_feedback FROM content_object ".
851 " WHERE id = ".$ilDB->quote($a_id,
"integer");
852 $res = $ilDB->query($q);
853 $rec = $ilDB->fetchAssoc(
$res);
855 return $rec[
"disable_def_feedback"];
865 $q =
"SELECT store_tries FROM content_object ".
866 " WHERE id = ".$ilDB->quote($a_id,
"integer");
867 $res = $ilDB->query($q);
868 $rec = $ilDB->fetchAssoc(
$res);
870 return $rec[
"store_tries"];
883 $q =
"SELECT count(*) as cnt FROM content_object ".
884 " WHERE stylesheet = ".$ilDB->quote($a_style_id,
"integer");
885 $cset = $ilDB->query($q);
886 $crow = $ilDB->fetchAssoc($cset);
888 return (
int) $crow[
"cnt"];
900 $q =
"SELECT count(*) as cnt FROM content_object, style_data ".
901 " WHERE stylesheet = style_data.id ".
902 " AND standard = ".$ilDB->quote(0,
"integer");
903 $cset = $ilDB->query($q);
904 $crow = $ilDB->fetchAssoc($cset);
906 return (
int) $crow[
"cnt"];
916 $q =
"SELECT count(*) as cnt FROM content_object ".
917 " WHERE stylesheet = ".$ilDB->quote(0,
"integer");
918 $cset = $ilDB->query($q);
919 $crow = $ilDB->fetchAssoc($cset);
921 return (
int) $crow[
"cnt"];
933 $q =
"UPDATE content_object SET ".
934 " stylesheet = ".$ilDB->quote(0,
"integer").
935 " WHERE stylesheet = ".$ilDB->quote((
int) $this->
getId($a_style_id),
"integer");
937 $ilDB->manipulate($q);
955 $this->pg_header = $a_pg_header;
963 return $this->toc_mode;
971 return $this->public_access_mode;
981 $this->toc_mode = $a_toc_mode;
986 $this->online = $a_online;
996 $this->lm_menu_active = $a_act_lm_menu;
1001 return $this->lm_menu_active;
1006 $this->toc_active = $a_toc;
1011 return $this->toc_active;
1016 $this->numbering = $a_num;
1021 return $this->numbering;
1026 $this->print_view_active = $a_print;
1031 return $this->print_view_active;
1036 $this->prevent_glossary_appendix_active = $a_print;
1041 return $this->prevent_glossary_appendix_active;
1051 $this->hide_header_footer_print = $a_val;
1061 return $this->hide_header_footer_print;
1066 $this->downloads_active = $a_down;
1071 return $this->downloads_active;
1076 $this->downloads_public_active = $a_down;
1081 return $this->downloads_public_active;
1086 $this->pub_notes = $a_pub_notes;
1091 return $this->pub_notes;
1096 $this->clean_frames = $a_clean;
1101 return $this->clean_frames;
1106 $this->user_comments = $a_comm;
1111 $this->public_access_mode = $a_mode;
1116 return $this->user_comments;
1121 $this->header_page = $a_pg;
1126 return $this->header_page;
1131 $this->footer_page = $a_pg;
1136 return $this->footer_page;
1146 $q =
"SELECT * FROM content_object WHERE id = ".
1147 $ilDB->quote($this->
getId(),
"integer");
1149 $lm_rec = $ilDB->fetchAssoc(
$lm_set);
1150 $this->
setLayout($lm_rec[
"default_layout"]);
1180 include_once(
"./Services/Notes/classes/class.ilNote.php");
1199 $q =
"UPDATE content_object SET ".
1200 " default_layout = ".$ilDB->quote($this->
getLayout(),
"text").
", ".
1201 " stylesheet = ".$ilDB->quote($this->
getStyleSheetId(),
"integer").
",".
1202 " page_header = ".$ilDB->quote($this->
getPageHeader(),
"text").
",".
1203 " toc_mode = ".$ilDB->quote($this->
getTOCMode(),
"text").
",".
1218 " header_page = ".$ilDB->quote($this->
getHeaderPage(),
"integer").
",".
1219 " footer_page = ".$ilDB->quote($this->
getFooterPage(),
"integer").
",".
1221 " layout_per_page = ".$ilDB->quote($this->
getLayoutPerPage(),
"integer").
", ".
1222 " rating = ".$ilDB->quote($this->
hasRating(),
"integer").
", ".
1223 " rating_pages = ".$ilDB->quote($this->
hasRatingPages(),
"integer").
", ".
1226 " store_tries = ".$ilDB->quote($this->
getStoreTries(),
"integer").
", ".
1228 " for_translation = ".$ilDB->quote((
int) $this->
getForTranslation(),
"integer").
" ".
1229 " WHERE id = ".$ilDB->quote($this->
getId(),
"integer");
1230 $ilDB->manipulate($q);
1233 include_once(
"./Services/Notes/classes/class.ilNote.php");
1244 $q =
"INSERT INTO content_object (id) VALUES (".$ilDB->quote($this->
getId(),
"integer").
")";
1245 $ilDB->manipulate($q);
1248 include_once(
"./Services/Notes/classes/class.ilNote.php");
1263 $q =
"SELECT is_online FROM content_object WHERE id = ".$ilDB->quote($a_id,
"integer");
1265 $lm_rec = $ilDB->fetchAssoc(
$lm_set);
1277 $dir = opendir(
"./Modules/LearningModule/layouts/lm");
1281 while(
$file = readdir($dir))
1286 if (@is_dir(
"./Modules/LearningModule/layouts/lm/".
$file))
1296 'toc2win' =>
'toc2win',
1297 'toc2windyn' =>
'toc2windyn',
1298 '1window' =>
'1window',
1299 '2window' =>
'2window',
1300 '3window' =>
'3window',
1301 'presentation' =>
'presentation',
1302 'fullscreen' =>
'fullscreen' 1305 foreach ($layouts as
$l)
1307 if (!in_array($l,
$ret))
1323 $lm_tree =
new ilTree($cont_obj_id);
1324 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1325 $lm_tree->setTreeTablePK(
"lm_id");
1327 if ($lm_tree->isInTree($page_id))
1329 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1330 foreach (
$path as $node)
1332 if ($node[
"type"] ==
"st")
1350 $lm_tree =
new ilTree($cont_obj_id);
1351 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1352 $lm_tree->setTreeTablePK(
"lm_id");
1355 if ($lm_tree->isInTree($page_id))
1358 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1359 foreach (
$path as $node)
1361 if ($node[
"type"] ==
"st")
1365 foreach ($tconds as $tcond)
1385 $lm_tree =
new ilTree($cont_obj_id);
1386 $lm_tree->setTableNames(
'lm_tree',
'lm_data');
1387 $lm_tree->setTreeTablePK(
"lm_id");
1390 if ($lm_tree->isInTree($page_id))
1393 $path = $lm_tree->getPathFull($page_id, $lm_tree->readRootId());
1394 foreach (
$path as $node)
1396 if ($node[
"type"] ==
"st")
1400 foreach ($tconds as $tcond)
1405 return $node[
"child"];
1425 function notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params = 0)
1465 if ($a_node_id==
$_GET[
"ref_id"])
1467 $parent_obj =& $this->
ilias->obj_factory->getInstanceByRefId($a_node_id);
1468 $parent_type = $parent_obj->getType();
1469 if($parent_type == $this->
getType())
1471 $a_node_id = (int) $tree->getParentId($a_node_id);
1475 parent::notify($a_event,$a_ref_id,$a_parent_non_rbac_id,$a_node_id,$a_params);
1484 $tree =
new ilTree($a_cont_obj_id);
1485 $tree->setTableNames(
'lm_tree',
'lm_data');
1486 $tree->setTreeTablePK(
"lm_id");
1487 if ($tree->isInTree($a_page_id))
1489 $succ = $tree->fetchSuccessorNode($a_page_id,
"pg");
1502 $tree->setTableNames(
'lm_tree',
'lm_data');
1503 $tree->setTreeTablePK(
"lm_id");
1505 $tree->checkTreeChilds();
1521 $set = $ilDB->query(
"SELECT DISTINCT l1.lm_id".
1523 " JOIN lm_tree l2 ON ( l1.child = l2.parent".
1524 " AND l1.lm_id = l2.lm_id )".
1525 " JOIN lm_data ON ( l1.child = lm_data.obj_id )".
1526 " WHERE (l2.lft < l1.lft".
1527 " OR l2.rgt > l1.rgt OR l2.lft > l1.rgt OR l2.rgt < l1.lft)".
1528 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer").
1529 " ORDER BY lm_data.create_date DESC" 1531 if ($rec = $ilDB->fetchAssoc($set))
1537 $nodes = $tree->getSubtree($tree->getNodeData($tree->getRootId()));
1538 foreach ($nodes as $node)
1540 $q =
"SELECT * FROM lm_data WHERE obj_id = ".
1541 $ilDB->quote($node[
"child"],
"integer");
1542 $obj_set = $ilDB->query($q);
1543 $obj_rec = $ilDB->fetchAssoc($obj_set);
1546 $node_data = $tree->getNodeData($node[
"child"]);
1547 $tree->deleteTree($node_data);
1552 $nodes = $tree->getSubtree($tree->getNodeData($tree->getRootId()));
1553 foreach ($nodes as $node)
1555 $q =
"SELECT * FROM lm_data WHERE obj_id = ".
1556 $ilDB->quote($node[
"parent"],
"integer");
1557 $obj_set = $ilDB->query($q);
1558 $obj_rec = $ilDB->fetchAssoc($obj_set);
1559 if ($obj_rec[
"type"] ==
"pg")
1561 $node_data = $tree->getNodeData($node[
"child"]);
1562 if ($tree->isInTree($node[
"child"]))
1564 $tree->deleteTree($node_data);
1571 $set = $ilDB->query(
"SELECT DISTINCT l1.lm_id".
1573 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )".
1574 " JOIN lm_data ON (l1.child = lm_data.obj_id)".
1575 " WHERE l1.child <> 1".
1576 " AND l1.lm_id <> lm_data.lm_id".
1577 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer"));
1578 if ($rec = $ilDB->fetchAssoc($set))
1580 $set = $ilDB->query(
"SELECT DISTINCT l1.child ".
1582 " JOIN lm_tree l2 ON ( l1.child = l2.child AND l1.lm_id <> l2.lm_id )".
1583 " JOIN lm_data ON (l1.child = lm_data.obj_id)".
1584 " WHERE l1.child <> 1".
1585 " AND l1.lm_id <> lm_data.lm_id".
1586 " AND l1.lm_id = ".$ilDB->quote($this->getId(),
"integer"));
1587 include_once(
"./Modules/LearningModule/classes/class.ilLMObjectFactory.php");
1588 while ($rec = $ilDB->fetchAssoc($set))
1592 if (is_object($cobj))
1594 if ($cobj->getType() ==
"pg")
1597 $pg_copy = $cobj->copy($this);
1600 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1601 " child = ".$ilDB->quote($pg_copy->getId(),
"integer").
1602 " WHERE child = ".$ilDB->quote($cobj->getId(),
"integer").
1603 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1606 else if ($cobj->getType() ==
"st")
1609 $st_copy = $cobj->copy($this);
1612 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1613 " child = ".$ilDB->quote($st_copy->getId(),
"integer").
1614 " WHERE child = ".$ilDB->quote($cobj->getId(),
"integer").
1615 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1619 $ilDB->manipulate(
"UPDATE lm_tree SET ".
1620 " parent = ".$ilDB->quote($st_copy->getId(),
"integer").
1621 " WHERE parent = ".$ilDB->quote($cobj->getId(),
"integer").
1622 " AND lm_id = ".$ilDB->quote($this->getId(),
"integer")
1637 function exportXML(&$a_xml_writer, $a_inst, $a_target_dir, &$expLog)
1645 $attrs[
"Type"] =
"LearningModule";
1649 $attrs[
"Type"] =
"LibObject";
1652 $a_xml_writer->xmlStartTag(
"ContentObject", $attrs);
1659 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Structure Objects");
1660 $ilBench->start(
"ContentObjectExport",
"exportStructureObjects");
1662 $ilBench->stop(
"ContentObjectExport",
"exportStructureObjects");
1663 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Structure Objects");
1666 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Page Objects");
1667 $ilBench->start(
"ContentObjectExport",
"exportPageObjects");
1669 $ilBench->stop(
"ContentObjectExport",
"exportPageObjects");
1670 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Page Objects");
1673 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Media Objects");
1674 $ilBench->start(
"ContentObjectExport",
"exportMediaObjects");
1676 $ilBench->stop(
"ContentObjectExport",
"exportMediaObjects");
1677 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Media Objects");
1680 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export File Items");
1681 $ilBench->start(
"ContentObjectExport",
"exportFileItems");
1683 $ilBench->stop(
"ContentObjectExport",
"exportFileItems");
1684 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export File Items");
1687 if (count($this->q_ids) > 0)
1689 $qti_file = fopen($a_target_dir.
"/qti.xml",
"w");
1690 include_once(
"./Modules/TestQuestionPool/classes/class.ilObjQuestionPool.php");
1692 fwrite($qti_file, $pool->toXML($this->q_ids));
1698 $expLog->write(date(
"[y-m-d H:i:s] ").
"Start Export Properties");
1700 $expLog->write(date(
"[y-m-d H:i:s] ").
"Finished Export Properties");
1702 $a_xml_writer->xmlEndTag(
"ContentObject");
1713 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
1715 $md2xml->setExportMode(
true);
1716 $md2xml->startExport();
1717 $a_xml_writer->appendXML($md2xml->getXML());
1728 include_once
'./Modules/LearningModule/classes/class.ilStructureObject.php';
1730 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
1731 foreach ($childs as $child)
1733 if($child[
"type"] !=
"st")
1739 $structure_obj->exportXML($a_xml_writer, $a_inst, $expLog);
1740 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)
1763 $expLog->write(date(
"[y-m-d H:i:s] ").
"Page Object ".$page[
"obj_id"]);
1767 $page_obj->exportXML($a_xml_writer,
"normal", $a_inst);
1770 $mob_ids = $page_obj->getMediaObjectIDs();
1771 foreach($mob_ids as $mob_id)
1773 $this->mob_ids[$mob_id] = $mob_id;
1777 $file_ids = $page_obj->getFileItemIds();
1778 foreach($file_ids as $file_id)
1780 $this->file_ids[$file_id] = $file_id;
1784 $q_ids = $page_obj->getQuestionIds();
1785 foreach($q_ids as $q_id)
1787 $this->q_ids[$q_id] = $q_id;
1803 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
1805 $linked_mobs = array();
1808 foreach ($this->mob_ids as $mob_id)
1812 $expLog->write(date(
"[y-m-d H:i:s] ").
"Media Object ".$mob_id);
1814 $media_obj->exportXML($a_xml_writer, $a_inst);
1815 $media_obj->exportFiles($a_target_dir);
1817 $lmobs = $media_obj->getLinkedMediaObjects($this->mob_ids);
1818 $linked_mobs = array_merge($linked_mobs, $lmobs);
1825 foreach ($linked_mobs as $mob_id)
1829 $expLog->write(date(
"[y-m-d H:i:s] ").
"Media Object ".$mob_id);
1831 $media_obj->exportXML($a_xml_writer, $a_inst);
1832 $media_obj->exportFiles($a_target_dir);
1845 include_once(
"./Modules/File/classes/class.ilObjFile.php");
1847 foreach ($this->file_ids as $file_id)
1849 $expLog->write(date(
"[y-m-d H:i:s] ").
"File Item ".$file_id);
1850 $file_obj =
new ilObjFile($file_id,
false);
1851 $file_obj->export($a_target_dir);
1863 $a_xml_writer->xmlStartTag(
"Properties", $attrs);
1866 $attrs = array(
"Name" =>
"Layout",
"Value" => $this->
getLayout());
1867 $a_xml_writer->xmlElement(
"Property", $attrs);
1870 $attrs = array(
"Name" =>
"PageHeader",
"Value" => $this->
getPageHeader());
1871 $a_xml_writer->xmlElement(
"Property", $attrs);
1874 $attrs = array(
"Name" =>
"TOCMode",
"Value" => $this->
getTOCMode());
1875 $a_xml_writer->xmlElement(
"Property", $attrs);
1878 $attrs = array(
"Name" =>
"ActiveLMMenu",
"Value" =>
1880 $a_xml_writer->xmlElement(
"Property", $attrs);
1883 $attrs = array(
"Name" =>
"ActiveNumbering",
"Value" =>
1885 $a_xml_writer->xmlElement(
"Property", $attrs);
1888 $attrs = array(
"Name" =>
"ActiveTOC",
"Value" =>
1890 $a_xml_writer->xmlElement(
"Property", $attrs);
1893 $attrs = array(
"Name" =>
"ActivePrintView",
"Value" =>
1895 $a_xml_writer->xmlElement(
"Property", $attrs);
1901 $attrs = array(
"Name" =>
"CleanFrames",
"Value" =>
1903 $a_xml_writer->xmlElement(
"Property", $attrs);
1906 $attrs = array(
"Name" =>
"PublicNotes",
"Value" =>
1908 $a_xml_writer->xmlElement(
"Property", $attrs);
1911 $attrs = array(
"Name" =>
"HistoryUserComments",
"Value" =>
1913 $a_xml_writer->xmlElement(
"Property", $attrs);
1916 $attrs = array(
"Name" =>
"Rating",
"Value" =>
1918 $a_xml_writer->xmlElement(
"Property", $attrs);
1919 $attrs = array(
"Name" =>
"RatingPages",
"Value" =>
1921 $a_xml_writer->xmlElement(
"Property", $attrs);
1926 $attrs = array(
"Name" =>
"HeaderPage",
"Value" =>
1927 "il_".IL_INST_ID.
"_pg_".$this->getHeaderPage());
1928 $a_xml_writer->xmlElement(
"Property", $attrs);
1934 $attrs = array(
"Name" =>
"FooterPage",
"Value" =>
1935 "il_".IL_INST_ID.
"_pg_".$this->getFooterPage());
1936 $a_xml_writer->xmlElement(
"Property", $attrs);
1940 $attrs = array(
"Name" =>
"LayoutPerPage",
"Value" =>
1942 $a_xml_writer->xmlElement(
"Property", $attrs);
1945 $attrs = array(
"Name" =>
"ProgressIcons",
"Value" =>
1947 $a_xml_writer->xmlElement(
"Property", $attrs);
1950 $attrs = array(
"Name" =>
"StoreTries",
"Value" =>
1952 $a_xml_writer->xmlElement(
"Property", $attrs);
1955 $attrs = array(
"Name" =>
"RestrictForwardNavigation",
"Value" =>
1957 $a_xml_writer->xmlElement(
"Property", $attrs);
1960 $attrs = array(
"Name" =>
"DisableDefaultFeedback",
"Value" =>
1962 $a_xml_writer->xmlElement(
"Property", $attrs);
1964 $a_xml_writer->xmlEndTag(
"Properties");
1974 $types = array(
"xml",
"html",
"scorm");
1976 foreach ($types as
$type)
1980 if (!@is_dir($dir) or
1981 !is_writeable($dir))
1992 while ($entry = $cdir->read())
1994 if ($entry !=
"." and
1996 substr($entry, -4) ==
".zip" and
1997 ereg(
"^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.zip\$", $entry))
1999 $file[$entry.$type] = array(
"type" => $type,
"file" => $entry,
2000 "size" => filesize($dir.
"/".$entry));
2022 $this->public_export_file[$a_type] = $a_file;
2034 return $this->public_export_file[$a_type];
2043 if (!@is_dir($dir) or
2044 !is_writeable($dir))
2056 while ($entry = $dir->read())
2058 if ($entry !=
"." and
2060 substr($entry, -4) ==
".pdf" and
2061 ereg(
"^[0-9]{10}_{2}[0-9]+_{2}(lm_)*[0-9]+\.pdf\$", $entry))
2090 include(
"./Modules/LearningModule/classes/class.ilContObjectManifestBuilder.php");
2092 $man_builder->buildManifest();
2093 $man_builder->dump($a_target_dir);
2096 copy(
"Modules/LearningModule/scorm_xsd/adlcp_rootv1p2.xsd", $a_target_dir.
"/adlcp_rootv1p2.xsd");
2097 copy(
"Modules/LearningModule/scorm_xsd/imscp_rootv1p1p2.xsd", $a_target_dir.
"/imscp_rootv1p1p2.xsd");
2098 copy(
"Modules/LearningModule/scorm_xsd/imsmd_rootv1p2p1.xsd", $a_target_dir.
"/imsmd_rootv1p2p1.xsd");
2099 copy(
"Modules/LearningModule/scorm_xsd/ims_xml.xsd", $a_target_dir.
"/ims_xml.xsd");
2103 $zip_file = $a_target_dir.
"/".$date.
"__".IL_INST_ID.
"__".
2107 $a_target_dir.
"/imsmanifest.xml",
2108 $a_target_dir.
"/adlcp_rootv1p2.xsd",
2109 $a_target_dir.
"/imscp_rootv1p1p2.xsd",
2110 $a_target_dir.
"/ims_xml.xsd",
2111 $a_target_dir.
"/imsmd_rootv1p2p1.xsd")
2117 rename($zip_file, $dest_file);
2126 function exportHTML($a_target_dir,
$log, $a_zip_file =
true, $a_export_format =
"html", $a_lang =
"")
2130 $user_lang = $ilUser->getLanguage();
2135 $mob_dir = $a_target_dir.
"/mobs";
2137 $file_dir = $a_target_dir.
"/files";
2139 $teximg_dir = $a_target_dir.
"/teximg";
2141 $style_dir = $a_target_dir.
"/style";
2143 $style_img_dir = $a_target_dir.
"/style/images";
2145 $content_style_dir = $a_target_dir.
"/content_style";
2147 $content_style_img_dir = $a_target_dir.
"/content_style/images";
2153 $style_name = $ilUser->prefs[
"style"].
".css";
2154 copy($location_stylesheet, $style_dir.
"/".$style_name);
2155 $fh = fopen($location_stylesheet,
"r");
2156 $css = fread($fh, filesize($location_stylesheet));
2157 preg_match_all(
"/url\(([^\)]*)\)/",$css,$files);
2158 foreach (array_unique($files[1]) as $fileref)
2160 $css_fileref = str_replace(array(
"'",
'"'),
"", $fileref);
2161 $fileref = dirname($location_stylesheet).
"/".$css_fileref;
2162 if (is_file($fileref))
2167 copy($fileref, $style_dir.
"/".$css_fileref);
2174 $ilBench->start(
"ExportHTML",
"exportContentStyle");
2177 $cont_stylesheet =
"./Services/COPage/css/content.css";
2179 $css = fread(fopen($cont_stylesheet,
'r'),filesize($cont_stylesheet));
2180 preg_match_all(
"/url\(([^\)]*)\)/",$css,$files);
2181 foreach (array_unique($files[1]) as $fileref)
2183 if (is_file(str_replace(
"..",
".", $fileref)))
2185 copy(str_replace(
"..",
".", $fileref), $content_style_img_dir.
"/".basename($fileref));
2187 $css = str_replace($fileref,
"images/".basename($fileref),$css);
2189 fwrite(fopen($content_style_dir.
"/content.css",
'w'),$css);
2194 $style->writeCSSFile($content_style_dir.
"/content.css",
"images");
2195 $style->copyImagesToDir($content_style_img_dir);
2197 $ilBench->stop(
"ExportHTML",
"exportContentStyle");
2201 copy($syn_stylesheet, $a_target_dir.
"/syntaxhighlight.css");
2204 include_once(
"./Modules/LearningModule/classes/class.ilLMPresentationGUI.php");
2205 $_GET[
"cmd"] =
"nop";
2206 $get_transl =
$_GET[
"transl"];
2207 $_GET[
"transl"] =
"";
2209 $lm_gui->setOfflineMode(
true, ($a_lang ==
"all"));
2210 $lm_gui->setOfflineDirectory($a_target_dir);
2211 $lm_gui->setExportFormat($a_export_format);
2215 if ($a_lang !=
"all")
2217 $langs = array($a_lang);
2221 $ot_langs = $ot->getLanguages();
2222 foreach ($ot_langs as $otl)
2224 $langs[] = $otl[
"lang_code"];
2229 $this->offline_mobs = array();
2230 $this->offline_int_links = array();
2231 $this->offline_files = array();
2234 foreach ($langs as
$lang)
2239 $ilUser->setLanguage($lang);
2240 $ilUser->setCurrentLanguage($lang);
2244 $ilUser->setLanguage($user_lang);
2245 $ilUser->setCurrentLanguage($user_lang);
2250 if ($lang == $ot->getMasterLanguage())
2256 $lm_gui->lang =
$lang;
2261 $ilBench->start(
"ExportHTML",
"exportHTMLPages");
2263 $this->
exportHTMLPages($lm_gui, $a_target_dir, $lm_gui->lang, ($a_lang ==
"all"));
2264 $ilBench->stop(
"ExportHTML",
"exportHTMLPages");
2268 $ilBench->start(
"ExportHTML",
"exportHTMLGlossaryTerms");
2270 $ilBench->stop(
"ExportHTML",
"exportHTMLGlossaryTerms");
2273 $ilBench->start(
"ExportHTML",
"exportHTMLMediaObjects");
2274 $linked_mobs = array();
2275 foreach ($this->offline_mobs as $mob)
2279 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs);
2282 $linked_mobs2 = array();
2283 foreach ($linked_mobs as $mob)
2287 $this->
exportHTMLMOB($a_target_dir, $lm_gui, $mob,
"_blank", $linked_mobs2);
2290 $_GET[
"obj_type"] =
"MediaObject";
2291 $_GET[
"obj_id"] = $a_mob_id;
2293 $ilBench->stop(
"ExportHTML",
"exportHTMLMediaObjects");
2296 $ilBench->start(
"ExportHTML",
"exportHTMLFileObjects");
2297 foreach ($this->offline_files as
$file)
2301 $ilBench->stop(
"ExportHTML",
"exportHTMLFileObjects");
2304 if (count($this->q_ids) > 0)
2306 foreach ($this->q_ids as $q_id)
2310 $a_target_dir.
"/assessment/0/".$q_id.
"/images");
2315 $ilBench->start(
"ExportHTML",
"exportHTMLTOC");
2316 $ilLocator->clearItems();
2319 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2321 $content =& $lm_gui->showTableOfContents();
2322 $file = $a_target_dir.
"/table_of_contents.html";
2325 if (!($fp = @fopen($file,
"w+")))
2327 die (
"<b>Error</b>: Could not open \"".$file.
"\" for writing".
2328 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2331 fwrite($fp, $content);
2334 $ilBench->stop(
"ExportHTML",
"exportHTMLTOC");
2337 $ilBench->start(
"ExportHTML",
"exportHTMLImages");
2338 $image_dir = $a_target_dir.
"/images";
2342 $image_dir.
"/enlarge.svg");
2344 $image_dir.
"/browser/plus.png");
2346 $image_dir.
"/browser/minus.png");
2348 $image_dir.
"/browser/blank.png");
2350 $image_dir.
"/spacer.png");
2352 $image_dir.
"/icon_st.svg");
2354 $image_dir.
"/icon_pg.svg");
2356 $image_dir.
"/icon_lm.svg");
2358 $image_dir.
"/nav_arr_L.png");
2360 $image_dir.
"/nav_arr_R.png");
2362 $ilBench->stop(
"ExportHTML",
"exportHTMLImages");
2365 $services_dir = $a_target_dir.
"/Services";
2367 $media_service_dir = $services_dir.
"/MediaObjects";
2369 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2372 $mp3_dir = $media_service_dir.
"/flash_mp3_player";
2377 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2385 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2386 foreach (self::getSupplyingExportFiles($a_target_dir) as $f)
2388 if ($f[
"source"] !=
"")
2390 copy($f[
"source"], $f[
"target"]);
2395 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2396 $tpl->setVariable(
"LOCATION_STYLESHEET",$location_stylesheet);
2397 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2401 $ilUser->setLanguage($user_lang);
2402 $ilUser->setCurrentLanguage($user_lang);
2420 $zip_file = $zip_target_dir.
"/".$date.
"__".IL_INST_ID.
"__".
2436 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
2437 include_once(
"./Services/jQuery/classes/class.iljQueryUtil.php");
2438 include_once(
"./Services/MediaObjects/classes/class.ilPlayerUtil.php");
2439 include_once(
"./Services/UIComponent/Explorer2/classes/class.ilExplorerBaseGUI.php");
2442 "target" => $a_target_dir.
'/js/yahoo/yahoo-min.js',
2445 "target" => $a_target_dir.
'/js/yahoo/yahoo-dom-event.js',
2448 "target" => $a_target_dir.
'/js/yahoo/animation-min.js',
2450 array(
"source" =>
'./Services/JavaScript/js/Basic.js',
2451 "target" => $a_target_dir.
'/js/Basic.js',
2453 array(
"source" =>
'./Services/Accordion/js/accordion.js',
2454 "target" => $a_target_dir.
'/js/accordion.js',
2456 array(
"source" =>
'./Services/Accordion/css/accordion.css',
2457 "target" => $a_target_dir.
'/css/accordion.css',
2460 "target" => $a_target_dir.
'/js/jquery.js',
2463 "target" => $a_target_dir.
'/js/maphilight.js',
2466 "target" => $a_target_dir.
'/js/jquery-ui-min.js',
2468 array(
"source" =>
'./Services/COPage/js/ilCOPagePres.js',
2469 "target" => $a_target_dir.
'/js/ilCOPagePres.js',
2471 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/pure.js',
2472 "target" => $a_target_dir.
'/js/pure.js',
2474 array(
"source" =>
'./Modules/Scorm2004/scripts/questions/question_handling.js',
2475 "target" => $a_target_dir.
'/js/question_handling.js',
2477 array(
"source" =>
'./Modules/TestQuestionPool/js/ilMatchingQuestion.js',
2478 "target" => $a_target_dir.
'/js/ilMatchingQuestion.js',
2480 array(
"source" =>
'./Modules/Scorm2004/templates/default/question_handling.css',
2481 "target" => $a_target_dir.
'/css/question_handling.css',
2483 array(
"source" =>
'./Modules/TestQuestionPool/templates/default/test_javascript.css',
2484 "target" => $a_target_dir.
'/css/test_javascript.css',
2498 array(
"source" =>
'./Modules/LearningModule/js/LearningModule.js',
2499 "target" => $a_target_dir.
'/js/LearningModule.js',
2507 $scripts[] = array(
"source" =>
"",
2513 include_once(
"./Services/Link/classes/class.ilLinkifyUtil.php");
2516 if (is_int(strpos($p,
"ExtLink")))
2518 $scripts[] = array(
"source" => $p,
2519 "target" => $a_target_dir.
'/js/ilExtLink.js',
2522 if (is_int(strpos($p,
"linkify")))
2524 $scripts[] = array(
"source" => $p,
2525 "target" => $a_target_dir.
'/js/linkify.js',
2539 $file_dir = $a_target_dir.
"/files/file_".$a_file_id;
2541 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2542 $file_obj =
new ilObjFile($a_file_id,
false);
2543 $source_file = $file_obj->getDirectory($file_obj->getVersion()).
"/".$file_obj->getFileName();
2544 if (!is_file($source_file))
2546 $source_file = $file_obj->getDirectory().
"/".$file_obj->getFileName();
2548 if (is_file($source_file))
2550 copy($source_file, $file_dir.
"/".$file_obj->getFileName());
2557 function exportHTMLMOB($a_target_dir, &$a_lm_gui, $a_mob_id, $a_frame, &$a_linked_mobs)
2561 $mob_dir = $a_target_dir.
"/mobs";
2564 if (@is_dir($source_dir))
2570 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2571 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2572 $_GET[
"obj_type"] =
"MediaObject";
2573 $_GET[
"mob_id"] = $a_mob_id;
2574 $_GET[
"frame"] = $a_frame;
2576 $content =& $a_lm_gui->media();
2577 $file = $a_target_dir.
"/media_".$a_mob_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(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2592 if ($mob_obj->hasFullscreenItem())
2594 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2595 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2596 $_GET[
"obj_type"] =
"";
2597 $_GET[
"frame"] =
"";
2598 $_GET[
"mob_id"] = $a_mob_id;
2599 $_GET[
"cmd"] =
"fullscreen";
2600 $content =& $a_lm_gui->fullscreen();
2601 $file = $a_target_dir.
"/fullscreen_".$a_mob_id.
".html";
2604 if (!($fp = @fopen(
$file,
"w+")))
2606 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2607 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2610 fwrite($fp, $content);
2613 $linked_mobs = $mob_obj->getLinkedMediaObjects();
2614 foreach ($linked_mobs as
$id)
2619 $a_linked_mobs = array_merge($a_linked_mobs, $linked_mobs);
2629 foreach($this->offline_int_links as $int_link)
2631 $ilLocator->clearItems();
2632 if ($int_link[
"type"] ==
"git")
2635 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2637 $_GET[
"obj_id"] = $int_link[
"id"];
2638 $_GET[
"frame"] =
"_blank";
2639 $content =& $a_lm_gui->glossary();
2640 $file = $a_target_dir.
"/term_".$int_link[
"id"].
".html";
2643 if (!($fp = @fopen(
$file,
"w+")))
2645 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2646 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2649 fwrite($fp, $content);
2653 include_once(
"./Modules/Glossary/classes/class.ilGlossaryDefinition.php");
2655 foreach($defs as $def)
2658 foreach($def_mobs as $def_mob)
2660 $this->offline_mobs[$def_mob] = $def_mob;
2661 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
2668 $this->offline_files = array_merge($this->offline_files, $def_files);
2679 function exportHTMLPages(&$a_lm_gui, $a_target_dir, $a_lang =
"", $a_all_languages =
false)
2686 $first_page = $lm_tree->fetchSuccessorNode($lm_tree->getRootId(),
"pg");
2687 $this->first_page_id = $first_page[
"child"];
2691 $int_links = array();
2692 $this->offline_files = array();
2694 include_once(
"./Services/COPage/classes/class.ilPageContentUsage.php");
2695 include_once(
"./Services/MediaObjects/classes/class.ilObjMediaObject.php");
2699 $exp_id_map = array();
2701 if (
$lm_set->get(
"html_export_ids"))
2703 foreach ($pages as $page)
2706 if (trim($exp_id) !=
"")
2708 $exp_id_map[$page[
"obj_id"]] = trim($exp_id);
2719 foreach ($pages as $page)
2723 $ilLocator->clearItems();
2724 $ilBench->start(
"ExportHTML",
"exportHTMLPage");
2725 $ilBench->start(
"ExportHTML",
"exportPageHTML");
2727 "", $exp_id_map, $a_lang, $a_all_languages);
2728 $ilBench->stop(
"ExportHTML",
"exportPageHTML");
2732 foreach ($pcs as $pc)
2734 if ($pc[
"type"] ==
"incl")
2737 foreach($incl_mobs as $incl_mob)
2739 $mobs[$incl_mob] = $incl_mob;
2740 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2749 foreach($pg_mobs as $pg_mob)
2751 $mobs[$pg_mob] = $pg_mob;
2752 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
2759 $int_links = array_merge($int_links, $pg_links);
2762 include_once(
"./Modules/File/classes/class.ilObjFile.php");
2764 $this->offline_files = array_merge($this->offline_files, $pg_files);
2767 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2769 foreach($q_ids as $q_id)
2771 $this->q_ids[$q_id] = $q_id;
2774 $ilBench->stop(
"ExportHTML",
"exportHTMLPage");
2777 foreach (
$mobs as $m)
2779 $this->offline_mobs[$m] = $m;
2781 foreach ($int_links as $k => $v)
2783 $this->offline_int_links[$k] = $v;
2793 $a_exp_id_map = array(), $a_lang =
"-", $a_all_languages =
false)
2798 if ($a_lang !=
"-" && $a_lang !=
"" && $a_all_languages)
2800 $lang_suffix =
"_".$a_lang;
2805 $tpl =
new ilTemplate(
"tpl.main.html",
true,
true);
2806 $tpl->addBlockFile(
"CONTENT",
"content",
"tpl.adm_content.html");
2808 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
2811 $_GET[
"obj_id"] = $a_lm_page_id;
2812 $_GET[
"frame"] = $a_frame;
2817 if (is_array($a_exp_id_map) && isset($a_exp_id_map[$a_lm_page_id]))
2819 $file = $a_target_dir.
"/lm_pg_".$a_exp_id_map[$a_lm_page_id].$lang_suffix.
".html";
2823 $file = $a_target_dir.
"/lm_pg_".$a_lm_page_id.$lang_suffix.
".html";
2828 if ($a_frame !=
"toc")
2830 $file = $a_target_dir.
"/frame_".$a_lm_page_id.
"_".$a_frame.$lang_suffix.
".html";
2834 $file = $a_target_dir.
"/frame_".$a_frame.$lang_suffix.
".html";
2839 if (@is_file(
$file))
2844 $content =& $a_lm_gui->layout(
"main.xml",
false);
2847 if (!($fp = @fopen(
$file,
"w+")))
2849 die (
"<b>Error</b>: Could not open \"".
$file.
"\" for writing".
2850 " in <b>".__FILE__.
"</b> on line <b>".__LINE__.
"</b><br />");
2857 fwrite($fp, $content);
2862 if ($this->first_page_id == $a_lm_page_id && $a_frame ==
"")
2864 copy(
$file, $a_target_dir.
"/index".$lang_suffix.
".html");
2868 $frameset = $a_lm_gui->getCurrentFrameSet();
2870 foreach ($frameset as $frame)
2872 $this->
exportPageHTML($a_lm_gui, $a_target_dir, $a_lm_page_id, $frame);
2889 $attrs[
"xmlns:fo"] =
"http://www.w3.org/1999/XSL/Format";
2890 $a_xml_writer->xmlStartTag(
"fo:root", $attrs);
2894 $a_xml_writer->xmlStartTag(
"fo:layout-master-set", $attrs);
2898 $attrs[
"master-name"] =
"DinA4";
2899 $attrs[
"page-height"] =
"29.7cm";
2900 $attrs[
"page-width"] =
"21cm";
2901 $attrs[
"margin-top"] =
"4cm";
2902 $attrs[
"margin-bottom"] =
"1cm";
2903 $attrs[
"margin-left"] =
"2.8cm";
2904 $attrs[
"margin-right"] =
"7.3cm";
2905 $a_xml_writer->xmlStartTag(
"fo:simple-page-master", $attrs);
2909 $attrs[
"margin-top"] =
"0cm";
2910 $attrs[
"margin-bottom"] =
"1.25cm";
2911 $a_xml_writer->xmlElement(
"fo:region-body", $attrs);
2915 $attrs[
"extent"] =
"1cm";
2916 $a_xml_writer->xmlElement(
"fo:region-before", $attrs);
2920 $attrs[
"extent"] =
"1cm";
2921 $a_xml_writer->xmlElement(
"fo:region-after", $attrs);
2924 $a_xml_writer->xmlEndTag(
"fo:simple-page-master");
2927 $a_xml_writer->xmlEndTag(
"fo:layout-master-set");
2931 $attrs[
"master-reference"] =
"DinA4";
2932 $a_xml_writer->xmlStartTag(
"fo:page-sequence", $attrs);
2936 $attrs[
"flow-name"] =
"xsl-region-body";
2937 $a_xml_writer->xmlStartTag(
"fo:flow", $attrs);
2942 $ilBench->start(
"ContentObjectExport",
"exportFOStructureObjects");
2944 $ilBench->stop(
"ContentObjectExport",
"exportFOStructureObjects");
2948 $a_xml_writer->xmlEndTag(
"fo:flow");
2951 $a_xml_writer->xmlEndTag(
"fo:page-sequence");
2954 $a_xml_writer->xmlEndTag(
"fo:root");
2965 $childs = $this->lm_tree->getChilds($this->lm_tree->getRootId());
2966 foreach ($childs as $child)
2968 if($child[
"type"] !=
"st")
2974 $structure_obj->exportFO($a_xml_writer, $expLog);
2975 unset($structure_obj);
2981 include_once(
"./Modules/LearningModule/classes/class.ilContObjectExport.php");
2985 $export_file = $cont_exp->buildExportFile();
2986 return $export_file;
3000 $lmtree->setTableNames(
'lm_tree',
'lm_data');
3001 $lmtree->setTreeTablePK(
"lm_id");
3004 $source_obj->setLMId($this->
getId());
3009 $target_obj->setLMId($this->
getId());
3010 $target_parent = $lmtree->getParentId(
$target_id);
3014 if ($source_obj->getType() ==
"pg")
3017 if ($lmtree->isInTree($source_obj->getId()))
3019 $node_data = $lmtree->getNodeData($source_obj->getId());
3022 if ($movecopy ==
"move")
3024 $parent_id = $lmtree->getParentId($source_obj->getId());
3025 $lmtree->deleteTree($node_data);
3028 require_once(
"./Services/History/classes/class.ilHistory.php");
3039 $new_page =& $source_obj->copy();
3040 $source_id = $new_page->getId();
3041 $source_obj =& $new_page;
3045 if(!$lmtree->isInTree($source_obj->getId()))
3052 else if ($as_subitem)
3056 $pg_childs =& $lmtree->getChildsByType($parent,
"pg");
3057 if (count($pg_childs) != 0)
3059 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
3065 $parent = $target_parent;
3069 $lmtree->insertNode($source_obj->getId(),
3070 $parent, $target_pos);
3073 if ($movecopy ==
"move")
3076 include_once(
"./Services/History/classes/class.ilHistory.php");
3090 if ($source_obj->getType() ==
"st")
3093 $source_node = $lmtree->getNodeData($source_id);
3094 $subnodes = $lmtree->getSubtree($source_node);
3097 foreach ($subnodes as $subnode)
3112 $pg_childs =& $lmtree->getChildsByType($target_parent,
"pg");
3113 if (count($pg_childs) != 0)
3115 $target_pos = $pg_childs[count($pg_childs) - 1][
"obj_id"];
3118 else if ($as_subitem)
3122 $childs =& $lmtree->getChilds($target_parent);
3123 if (count($childs) != 0)
3125 $target_pos = $childs[count($childs) - 1][
"obj_id"];
3150 if ($movecopy ==
"move")
3152 $lmtree->deleteTree($source_node);
3157 $new_chapter =& $source_obj->copy($lmtree, $target_parent, $target_pos);
3160 if (!$lmtree->isInTree($source_id))
3162 $lmtree->insertNode($source_id, $target_parent, $target_pos);
3165 if ($movecopy ==
"move")
3167 foreach ($subnodes as $node)
3169 if($node[
"obj_id"] != $source_id)
3171 $lmtree->insertNode($node[
"obj_id"], $node[
"parent"]);
3189 include_once
"./Modules/LearningModule/classes/class.ilLMPageObject.php";
3190 include_once
"./Modules/LearningModule/classes/class.ilLMPage.php";
3195 foreach ($pages as $page)
3199 $cpage =
new ilLMPage($page[
"obj_id"]);
3201 $error = @$cpage->validateDom();
3205 $this->lng->loadLanguageModule(
"content");
3209 $mess.= $this->lng->txt(
"obj_pg").
": ".
$title;
3210 $mess.=
'<div class="small">';
3211 foreach ($error as $e)
3213 $err_mess = implode($e,
" - ");
3214 if (!is_int(strpos($err_mess,
":0:")))
3216 $mess.= htmlentities($err_mess).
"<br />";
3235 $a_import_into_help_module = 0)
3243 $file = pathinfo($a_filename);
3247 $a_filename, $full_path);
3252 $subdir = basename(
$file[
"basename"],
".".
$file[
"extension"]);
3277 $this->log->debug(
"import from directory ".$a_directory);
3280 $subdir = basename($a_directory);
3281 $xml_file = $a_directory.
"/".$subdir.
".xml";
3284 if (!is_dir($a_directory))
3286 $this->log->error(sprintf($lng->txt(
"cont_no_subdir_in_zip"), $subdir));
3287 return sprintf($lng->txt(
"cont_no_subdir_in_zip"), $subdir);
3291 if (!is_file($xml_file))
3293 $this->log->error(sprintf($lng->txt(
"cont_zip_file_invalid"), $subdir.
"/".$subdir.
".xml"));
3294 return sprintf($lng->txt(
"cont_zip_file_invalid"), $subdir.
"/".$subdir.
".xml");
3298 $this->log->debug(
"import qti");
3299 $qti_file = $a_directory.
"/qti.xml";
3301 if (is_file($qti_file))
3303 include_once
"./Services/QTI/classes/class.ilQTIParser.php";
3304 include_once(
"./Modules/Test/classes/class.ilObjTest.php");
3307 $result = $qtiParser->startParsing ();
3308 $founditems = & $qtiParser->getFoundItems ();
3310 if (count($founditems) > 0)
3313 $qtiParser->setTestObject($testObj);
3314 $result = $qtiParser->startParsing();
3315 $qtis = array_merge($qtis, $qtiParser->getImportMapping());
3319 $this->log->debug(
"get ilContObjParser");
3320 include_once (
"./Modules/LearningModule/classes/class.ilContObjParser.php");
3322 $contParser =
new ilContObjParser($this, $xml_file, $subdir, $a_directory);
3324 $contParser->setImportMapping($a_mapping);
3325 $contParser->setQuestionMapping($qtis);
3326 $contParser->startParsing();
3331 $style_file = $a_directory.
"/style.xml";
3332 $style_zip_file = $a_directory.
"/style.zip";
3333 if (is_file($style_zip_file))
3335 require_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
3337 $style->import($style_zip_file);
3340 else if (is_file($style_file))
3342 require_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
3344 $style->import($style_file);
3357 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3377 $new_obj = parent::cloneObject($a_target_id,$a_copy_id);
3384 if(!$cp_options->isRootNode($this->getRefId()))
3386 $new_obj->setOnline($this->
getOnline());
3392 $new_obj->setLayout($this->
getLayout());
3406 $new_obj->setRating($this->
hasRating());
3416 $new_obj->createLMTree();
3419 include_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
3421 if ($style_id > 0 &&
3424 $style_obj = $ilias->obj_factory->getInstanceByObjId($style_id);
3425 $new_id = $style_obj->ilClone();
3426 $new_obj->setStyleSheetId($new_id);
3436 $new_obj->setHeaderPage($new_page_header);
3440 $new_obj->setFooterPage($new_page_footer);
3445 include_once(
'Services/Tracking/classes/class.ilLPObjSettings.php');
3447 $obj_settings->cloneSettings($new_obj->getId());
3448 unset($obj_settings);
3451 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3453 $ot->copy($new_obj->getId());
3465 $parent_id = $a_target_obj->lm_tree->readRootId();
3467 include_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
3468 include_once(
"./Modules/LearningModule/classes/class.ilLMPageObject.php");
3471 $chapters = $this->lm_tree->getChildsByType($this->lm_tree->readRootId(),
"st");
3472 $copied_nodes = array();
3474 foreach ($chapters as $chap)
3483 foreach ($pages as $p)
3485 if (!$this->lm_tree->isInTree($p[
"obj_id"]))
3488 $target_item = $item->copy($a_target_obj);
3489 $copied_nodes[$item->getId()] = $target_item->getId();
3494 include_once
'./Services/CopyWizard/classes/class.ilCopyWizardOptions.php';
3496 foreach($copied_nodes as $old_id => $new_id)
3500 $a_target_obj->getRefId().
'_'.$new_id
3506 $a_target_obj->checkTree();
3508 return $copied_nodes;
3523 $set = $ilDB->query(
"SELECT * FROM lm_glossaries ".
3524 " WHERE lm_id = ".$ilDB->quote($a_lm_id,
"integer")
3527 while ($rec = $ilDB->fetchAssoc($set))
3529 $glos[] = $rec[
"glo_id"];
3543 include_once(
"./Modules/Glossary/classes/class.ilGlossaryTerm.php");
3547 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
3551 $found_pages = array();
3552 foreach ($pages as $p)
3555 $c = $pg->getXMLContent();
3556 foreach ($terms as
$t)
3558 if (is_int(stripos($c, $t[
"term"])))
3560 $found_pages[$p[
"id"]][
"terms"][] =
$t;
3561 if (!is_object($found_pages[$p[
"id"]][
"page"]))
3563 $found_pages[$p[
"id"]][
"page"] = $pg;
3571 include_once(
"./Services/COPage/classes/class.ilPCParagraph.php");
3572 foreach ($found_pages as
$id => $fp)
3592 if (!$a_as_obj_id && $a_id > 0 && $a_id == OH_REF_ID)
3605 $this->rating = (bool)$a_value;
3615 $this->rating_pages = (bool)$a_value;
3626 parent::MDUpdateListener($a_element);
3628 include_once
'Services/MetaData/classes/class.ilMD.php';
3633 include_once(
"./Services/Object/classes/class.ilObjectLP.php");
3635 if(in_array($obj_lp->getCurrentMode(),
3638 include_once(
"./Services/Tracking/classes/class.ilLPStatusWrapper.php");
3647 if(!is_object($md_gen = $md->getGeneral()))
3652 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
3654 if ($ot->getContentActivated())
3656 $ot->setDefaultTitle($md_gen->getTitle());
3658 foreach($md_gen->getDescriptionIds() as
$id)
3660 $md_des = $md_gen->getDescription(
$id);
3661 $ot->setDefaultDescription($md_des->getDescription());
getHideHeaderFooterPrint()
Get hide header footer in print mode.
_getTargetsOfSource($a_source_type, $a_source_id, $a_source_lang="-")
Get all targets of a source object (e.g., a page)
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
static makeDirParents($a_dir)
Create a new directory and all parent directories.
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.
read()
read data of content object
Class NestedSetXML functions for storing XML-Data into nested-set-database-strcture.
getStyleSheetId()
get ID of assigned style sheet object
_checkPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
checks wether the preconditions of a page are fulfilled or not
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
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)
getDefinitionList($a_term_id)
static
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
_lookupStyleSheetId($a_cont_obj_id)
lookup style sheet ID
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
copyPlayerFilesToTargetDirectory($a_target_dir)
Copy css files to target dir.
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()
getInstance(&$a_content_obj, $a_id=0, $a_halt=true)
getLayout()
get default page layout of content object (see directory layouts/)
getLocalMediaElementCssPath()
Get local path of jQuery file.
getStoreTries()
Get store tries.
updateMetaData()
update meta data entry
if(strpos($jquery_path, './')===0) else if(strpos($jquery_path, '.')===0) $mathJaxSetting
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 writeHeaderPage($a_lm_id, $a_page_id)
Write header page.
getImportDirectory()
get import directory of lm
getExportFiles()
get export files
ilObjContentObject($a_id=0, $a_call_by_reference=true)
Constructor public.
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.
_lookupContObjIdByStyleId($a_style_id)
lookup style sheet ID
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
isActiveDownloadsPublic()
setDisableDefaultFeedback($a_val)
Set disable default feedback for questions.
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
getAvailableLayouts()
get all available lm layouts
getAutoGlossaries()
Get auto glossaries.
removeAutoGlossary($a_glo_id)
Remove auto glossary.
hasSuccessorPage($a_cont_obj_id, $a_page_id)
checks if page has a successor page
static _lookupTitle($a_obj_id)
Lookup title.
MDUpdateListener($a_element)
getSyntaxStylePath()
get syntax style path
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")
getLocalMediaElementJsPath()
Get local path of jQuery file.
ilObject($a_id=0, $a_reference=true)
Constructor public.
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
setActiveLMMenu($a_act_lm_menu)
setActiveDownloadsPublic($a_down)
_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
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 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)
cloneObject($a_target_id, $a_copy_id=0)
Clone learning module.
static autoLinkGlossariesPage($a_page, $a_terms)
Auto link glossary of whole page.
setTitle($a_title)
set title of content object
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.
getLayoutPerPage()
Get layout per page.
setRestrictForwardNavigation($a_val)
Set restrict forward navigation.
_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.
getForTranslation()
Get for translation.
getLocaljQueryPath()
Get local path of jQuery file.
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.
_moveLMStyles($a_from_style, $a_to_style)
move learning modules from one style to another
_getMissingPreconditionsOfPage($cont_ref_id, $cont_obj_id, $page_id)
gets all missing preconditions of page
_writeImportId($a_obj_id, $a_import_id)
write import id to db (static)
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)
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 getTermList($a_glo_id, $searchterm="", $a_first_letter="", $a_def="", $a_tax_node=0, $a_add_amet_fields=false, array $a_amet_filter=null)
Get all terms for given set of glossary ids.
static moveUploadedFile($a_file, $a_name, $a_target, $a_raise_errors=true, $a_mode="move_uploaded")
move uploaded file
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.
getLocalMaphilightPath()
Get local path of maphilight file.
getTOCMode()
get toc mode ("chapters" | "pages")
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
_deleteStyleAssignments($a_style_id)
delete all style references to style
_getNrLMsIndividualStyles()
get number of learning modules with individual styles
static getFlashVideoPlayerDirectory()
Get flash video player directory.
putInTree($a_parent)
put content object in main tree
getPageList($lm_id)
static
redirection script todo: (a better solution should control the processing via a xml file) ...
cloneMetaData($target_obj)
Copy meta data.
setProgressIcons($a_val)
Set progress icons.
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.
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...
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 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.
_lookupOnline($a_id)
check wether content object is online
static getLocalPath($a_name="")
Get local path of a YUI js file.
static resetInitialState()
Reset initial state (for exports)
_lookupStandard($a_id)
Lookup standard flag.
static commentsActivated($a_rep_obj_id, $a_obj_id, $a_obj_type)
Are comments activated for object?
_refreshStatus($a_obj_id, $a_users=null)
Set dirty.
_checkCondition($a_id, $a_usr_id=0)
checks wether a single condition is fulfilled every trigger object type must implement a static metho...
static getDataDir()
get data directory (outside webspace)
getRestrictForwardNavigation()
Get restrict forward navigation.
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 _lookupRestrictForwardNavigation($a_obj_id)
Lookup forward restriction navigation.
static _lookupStoreTries($a_id)
Lookup disable default feedback.
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.
setHideHeaderFooterPrint($a_val)
Set hide header footer in print mode.
_getMissingPreconditionsTopChapter($cont_obj_ref_id, $cont_obj_id, $page_id)
get top chapter of page for that any precondition is missing
getTitle()
get title of content object
notify($a_event, $a_ref_id, $a_parent_non_rbac_id, $a_node_id, $a_params=0)
notifys an object about an event occured Based on the event happend, each object may decide how it re...
getRefId()
get reference id public
deleteMetaData()
delete meta data entry
getLocaljQueryUIPath()
Get local path of jQuery UI file.
static getLogger($a_component_id)
Get component logger.
Class ilObjContentObject.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
static yn2tf($a_yn)
convert "y"/"n" to true/false
setAutoGlossaries($a_val)
Set auto glossaries.
_getNrLMsNoStyle()
get number of learning modules assigned no style
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 getInstance($a_obj_id)
_deleteAllObjectData(&$a_cobj)
delete all objects of content object (digi book / learning module)
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.
_getNrOfAssignedLMs($a_style_id)
gets the number of learning modules assigned to a content style
Extension of ilPageObject for learning modules.
setHistoryUserComments($a_comm)
lookupAutoGlossaries($a_lm_id)
Lookup auto glossaries.