5 require_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
6 require_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
8 define (
"IL_CHAPTER_TITLE",
"st_title");
9 define (
"IL_PAGE_TITLE",
"pg_title");
10 define (
"IL_NO_HEADER",
"none");
42 function __construct(&$a_content_obj, $a_id = 0, $a_halt =
true)
46 $ilBench->start(
"ContentPresentation",
"ilLMPageObject_Constructor");
48 parent::__construct($a_content_obj, $a_id);
52 $this->is_alias =
false;
53 $this->contains_int_link =
false;
54 $this->mobs_contained =
array();
55 $this->files_contained =
array();
56 $this->halt_on_error = $a_halt;
63 $ilBench->stop(
"ContentPresentation",
"ilLMPageObject_Constructor");
68 if(is_object($this->page_object))
70 unset($this->page_object);
81 $this->page_object =
new ilLMPage($this->
id, 0);
84 function create($a_upload =
false, $a_omit_page_object_creation =
false)
86 parent::create($a_upload);
87 if ($a_omit_page_object_creation)
91 if(!is_object($this->page_object))
95 $this->page_object->setId($this->
getId());
96 $this->page_object->setParentId($this->
getLMId());
97 $this->page_object->create($a_upload);
100 function delete($a_delete_meta_data =
true)
102 parent::delete($a_delete_meta_data);
103 $this->page_object->delete();
114 $lm_page->setTitle($this->
getTitle());
116 $lm_page->setLMId($a_target_lm->getId());
117 $lm_page->setType($this->
getType());
119 $lm_page->setImportId(
"il__pg_".$this->
getId());
120 $lm_page->create(
true);
125 if (trim($exp_id) !=
"")
134 include_once(
"Services/MetaData/classes/class.ilMD.php");
136 $new_md = $md->cloneMD($a_target_lm->getId(), $lm_page->getId(), $this->
getType());
150 $page = $lm_page->getPageObject();
151 $this->page_object->copy($page->getId(), $page->getParentType(), $page->getParentId());
161 include_once(
"./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
174 $lm_page->setTitle($this->
getTitle());
175 $lm_page->setLMId($a_cont_obj->getId());
176 $lm_page->setImportId(
"il__pg_".$this->
getId());
177 $lm_page->setType($this->
getType());
179 $lm_page->create(
true);
180 $a_copied_nodes[$this->
getId()] = $lm_page->getId();
183 include_once(
"Services/MetaData/classes/class.ilMD.php");
185 $new_md = $md->cloneMD($a_cont_obj->getId(), $lm_page->getId(), $this->
getType());
188 $page = $lm_page->getPageObject();
189 $page->setXMLContent($this->page_object->getXMLContent());
203 static function _splitPage($a_page_id, $a_pg_parent_type, $a_hier_id)
208 include_once (
"./Modules/LearningModule/classes/class.ilObjLearningModule.php");
214 $lm_page->setTitle($source_lm_page->getTitle());
215 $lm_page->setLMId($source_lm_page->getLMId());
216 $lm_page->setType($source_lm_page->getType());
217 $lm_page->setDescription($source_lm_page->getDescription());
218 $lm_page->create(
true);
222 $source_page = $source_lm_page->getPageObject();
223 $page = $lm_page->getPageObject();
224 $page->setXMLContent($source_page->copyXMLContent());
226 $page->buildDom(
true);
231 include_once(
"Services/MetaData/classes/class.ilMD.php");
232 $md =
new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType());
233 $md->
cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType());
236 $tree =
new ilTree($cont_obj->getId());
238 $tree->setTreeTablePK(
"lm_id");
239 if ($tree->isInTree($source_lm_page->getId()))
241 $parent_node = $tree->getParentNodeData($source_lm_page->getId());
242 $tree->insertNode($lm_page->getId(), $parent_node[
"child"], $source_lm_page->getId());
247 $page->deleteContentBeforeHierId($a_hier_id);
251 $source_page->buildDom();
252 $source_page->addHierIds();
253 $source_page->deleteContentFromHierId($a_hier_id);
271 include_once (
"./Modules/LearningModule/classes/class.ilObjLearningModule.php");
273 $tree =
new ilTree($cont_obj->getId());
275 $tree->setTreeTablePK(
"lm_id");
278 $source_page = $source_lm_page->getPageObject();
281 $succ = $tree->fetchSuccessorNode($a_page_id,
"pg");
282 if ($succ[
"child"] > 0)
285 $target_page = $target_lm_page->getPageObject();
286 $target_page->buildDom();
287 $target_page->addHierIds();
290 $source_page->buildDom();
291 $source_page->addHierIds();
295 return $succ[
"child"];
308 $this->page_object = $a_page_obj;
341 $this->is_alias = $a_is_alias;
352 return $this->origin_id = $a_id;
376 foreach($pages as $page)
378 $ids[] = $page[
"obj_id"];
383 foreach($pages as $page)
385 if (is_array($linked_pages[$page[
"obj_id"]]))
400 $a_include_numbers =
false, $a_time_scheduled_activation =
false,
401 $a_force_content =
false, $a_lm_id = 0, $a_lang =
"-")
422 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
426 if ($a_lang !=
"-" && $ot->getContentActivated() && isset(
$languages[$a_lang]))
428 include_once(
"./Modules/LearningModule/classes/class.ilLMObjTranslation.php");
430 if ($lmobjtrans->getTitle() !=
"")
432 $title = $lmobjtrans->getTitle();
441 include_once(
"./Modules/LearningModule/classes/class.ilLMTree.php");
444 if ($tree->isInTree($a_pg_id))
446 $pred_node = $tree->fetchPredecessorNode($a_pg_id,
"st");
447 $childs = $tree->getChildsByType($pred_node[
"obj_id"],
"pg");
449 if(count($childs) > 1)
452 foreach($childs as $child)
454 include_once(
"./Modules/LearningModule/classes/class.ilLMPage.php");
461 if ($act_data[
"show_activation_info"] &&
468 if ($child[
"type"] !=
"pg" ||
$active)
472 if($child[
"obj_id"] == $a_pg_id)
479 $cnt_str =
" (".$cur_cnt.
"/".$cnt.
")";
482 require_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
486 $a_include_numbers,
false,
false, 0, $a_lang).$cnt_str;
502 function exportXML(&$a_xml_writer, $a_mode =
"normal", $a_inst = 0)
507 $a_xml_writer->xmlStartTag(
"PageObject", $attrs);
513 $ilBench->start(
"ContentObjectExport",
"exportPageObject_XML_Meta");
515 $ilBench->stop(
"ContentObjectExport",
"exportPageObject_XML_Meta");
518 $ilBench->start(
"ContentObjectExport",
"exportPageObject_XML_PageContent");
520 $ilBench->stop(
"ContentObjectExport",
"exportPageObject_XML_PageContent");
525 $attrs[
"OriginId"] =
"il_".$a_inst.
526 "_pg_".$this->getId();
527 $a_xml_writer->xmlElement(
"PageAlias", $attrs);
534 $a_xml_writer->xmlEndTag(
"PageObject");
543 $a_xml_writer->xmlStartTag(
"PageObject", $attrs);
546 $attrs[
"OriginId"] =
"il_".$a_inst.
548 $a_xml_writer->xmlElement(
"PageAlias", $attrs);
550 $a_xml_writer->xmlEndTag(
"PageObject");
562 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
564 $md2xml->setExportMode(
true);
565 $md2xml->startExport();
566 $a_xml_writer->appendXML($md2xml->getXML());
571 if ($a_tag ==
"Identifier" && $a_param ==
"Entry")
573 $a_value =
"il_".IL_INST_ID.
"_pg_".$this->
getId();
592 $this->page_object->buildDom();
593 $this->page_object->insertInstIntoIDs($a_inst);
594 $this->mobs_contained = $this->page_object->collectMediaObjects(
false);
596 include_once(
"./Services/COPage/classes/class.ilPCFileList.php");
599 $xml = $this->page_object->getXMLFromDom(
false,
false,
false,
"",
true);
600 $xml = str_replace(
"&",
"&", $xml);
601 $a_xml_writer->appendXML($xml);
603 $this->page_object->freeDom();
613 include_once(
"./Services/COPage/classes/class.ilPCQuestion.php");
625 return $this->mobs_contained;
635 return $this->files_contained;
654 $attrs[
"font-family"] =
"Times";
655 $attrs[
"font-size"] =
"14pt";
656 $a_xml_writer->xmlElement(
"fo:block", $attrs,
$title);
660 $this->page_object->buildDom();
661 $fo = $this->page_object->getFO();
662 $a_xml_writer->appendXML($fo);
674 $a_order_dir, $a_offset, $a_limit)
676 global
$ilDB, $rbacreview;
680 $count_query =
"SELECT count(pq.question_id) cnt ";
683 $query =
"SELECT pq.page_id, pq.question_id ";
685 $from =
" FROM page_question pq JOIN lm_tree t ON (t.lm_id = ".$ilDB->quote($a_lm_id,
"integer").
686 " AND pq.page_id = t.child and pq.page_parent_type = ".$ilDB->quote(
"lm",
"text").
") ".
687 " WHERE t.lm_id = ".$ilDB->quote($a_lm_id,
"integer");
688 $count_query.= $from;
693 $set = $ilDB->query($count_query);
695 if ($rec = $ilDB->fetchAssoc($set))
700 $offset = (int) $a_offset;
701 $limit = (int) $a_limit;
704 $ilDB->setLimit($limit, $offset);
708 $set = $ilDB->query(
$query);
710 while($rec = $ilDB->fetchAssoc($set))
& cloneMD($a_rbac_id, $a_obj_id, $a_obj_type)
& getPageObject()
get assigned page object
static saveExportId($a_lm_id, $a_lmobj_id, $a_exp_id, $a_type="pg")
Save export id.
Class ilObjLearningModule.
create($a_upload=false, $a_omit_page_object_creation=false)
modifyExportIdentifier($a_tag, $a_param, $a_value)
existsExportID($a_lm_id, $a_exp_id, $a_type="pg")
Does export ID exist in lm?
static _getQuestionIdsForPage($a_parent_type, $a_page_id, $a_lang="-")
Get all questions of a page.
exportXMLMetaData(&$a_xml_writer)
export page objects meta data to xml (see ilias_co.dtd)
static _getPresentationTitle($a_st_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
get presentation title
static getPagesWithLinks($a_parent_type, $a_parent_id, $a_lang="-")
Get all pages for parent object that contain internal links.
getQuestionIds()
Get question ids.
static queryQuestionsOfLearningModule($a_lm_id, $a_order_field, $a_order_dir, $a_offset, $a_limit)
Get questions of learning module.
assignPageObject(&$a_page_obj)
assign page object
static _lookupContObjID($a_id)
get learning module / digibook id for lm object
static _moveContentAfterHierId(&$a_source_page, &$a_target_page, $a_hid)
move content of hierarchical id >= $a_hid to other page
static _lookupTitle($a_obj_id)
Lookup title.
copy($a_target_lm)
copy page
exportFO(&$a_xml_writer)
export page object to fo
static now()
Return current timestamp in Y-m-d H:i:s format.
__construct(&$a_content_obj, $a_id=0, $a_halt=true)
Constructor public.
static _splitPage($a_page_id, $a_pg_parent_type, $a_hier_id)
split page at hierarchical id
exportXML(&$a_xml_writer, $a_mode="normal", $a_inst=0)
export page object to xml (see ilias_co.dtd)
static _lookupActive($a_id, $a_parent_type, $a_check_scheduled_activation=false, $a_lang="-")
lookup activation status
static _splitPageNext($a_page_id, $a_pg_parent_type, $a_hier_id)
split page to next page at hierarchical id
getFileItemIds()
get ids of all file items within the page
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
static getInstance($a_tree_id)
Get Instance.
& copyToOtherContObject(&$a_cont_obj, &$a_copied_nodes)
copy a page to another content object (learning module / dlib book)
setAlias($a_is_alias)
set wether page object is an alias
static getPagesWithLinksList($a_lm_id, $a_par_type)
Get all pages of lm that contain any internal links.
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be 'obj_id' You may use...
static getExportId($a_lm_id, $a_lmobj_id, $a_type="pg")
Get export ID.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
Create styles array
The data for the language used.
static _lookupType($a_id, $a_reference=false)
lookup object type
getMediaObjectIds()
get ids of all media objects within the page
static _lookupActivationData($a_id, $a_parent_type, $a_lang="-")
Lookup activation data.
getTitle()
get title of lm object
static getInstance($a_obj_id)
Get instance.
exportXMLPageContent(&$a_xml_writer, $a_inst=0)
export page objects meta data to xml (see ilias_co.dtd)
static _exportXMLAlias(&$a_xml_writer, $a_id, $a_inst=0)
export page alias to xml
static _getPresentationTitle($a_pg_id, $a_mode=IL_CHAPTER_TITLE, $a_include_numbers=false, $a_time_scheduled_activation=false, $a_force_content=false, $a_lm_id=0, $a_lang="-")
presentation title doesn't have to be page title, it may be chapter title + page title or chapter tit...
static getObjectList($lm_id, $type="")
static
static getPageList($lm_id)
static
Translation information on lm object.
static copy($a_source_id, $a_target_id)
Copy all translations of an object.
Extension of ilPageObject for learning modules.