5 require_once(
"./Modules/LearningModule/classes/class.ilLMObject.php");
 
    6 require_once(
"./Services/COPage/classes/class.ilPageObject.php");
 
    8 define (
"IL_CHAPTER_TITLE", 
"st_title");
 
    9 define (
"IL_PAGE_TITLE", 
"pg_title");
 
   10 define (
"IL_NO_HEADER", 
"none");
 
   46                 $ilBench->start(
"ContentPresentation", 
"ilLMPageObject_Constructor");
 
   53                 $this->is_alias = 
false;
 
   54                 $this->contains_int_link = 
false;
 
   55                 $this->mobs_contained  = array();
 
   56                 $this->files_contained  = array();
 
   57                 $this->halt_on_error = $a_halt;
 
   64                 $ilBench->stop(
"ContentPresentation", 
"ilLMPageObject_Constructor");
 
   69                 if(is_object($this->page_object))
 
   71                         unset($this->page_object);
 
   82                 $ilBench->start(
"ContentPresentation", 
"ilLMPageObject_read");
 
   85                 $this->page_object =& 
new ilPageObject($this->content_object->getType(),
 
   88                 $ilBench->stop(
"ContentPresentation", 
"ilLMPageObject_read");
 
   94                 if(!is_object($this->page_object))
 
   96                         $this->page_object =& 
new ilPageObject($this->content_object->getType());
 
   99                 $this->page_object->setParentId($this->
getLMId());
 
  100                 $this->page_object->create($a_upload);
 
  103         function delete($a_delete_meta_data = 
true)
 
  106                 $this->page_object->delete();
 
  117                 $lm_page->setTitle($this->
getTitle());
 
  118                 $lm_page->setLMId($a_target_lm->getId());
 
  119                 $lm_page->setType($this->
getType());
 
  121                 $lm_page->setImportId(
"il__pg_".$this->
getId());
 
  122                 $lm_page->create(
true);         
 
  125                 include_once(
"Services/MetaData/classes/class.ilMD.php");
 
  127                 $new_md = $md->cloneMD($a_target_lm->getId(), $lm_page->getId(), $this->
getType());
 
  130                 $page = $lm_page->getPageObject();
 
  131                 $page->setXMLContent($this->page_object->copyXMLContent());
 
  145                 $lm_page->setTitle($this->
getTitle());
 
  146                 $lm_page->setLMId($a_cont_obj->getId());
 
  147                 $lm_page->setImportId(
"il__pg_".$this->
getId());
 
  148                 $lm_page->setType($this->
getType());
 
  150                 $lm_page->create(
true);         
 
  151                 $a_copied_nodes[$this->
getId()] = $lm_page->getId();
 
  154                 include_once(
"Services/MetaData/classes/class.ilMD.php");
 
  156                 $new_md =& $md->cloneMD($a_cont_obj->getId(), $lm_page->getId(), $this->
getType());
 
  159                 $page =& $lm_page->getPageObject();
 
  160                 $page->setXMLContent($this->page_object->getXMLContent());
 
  174         function _splitPage($a_page_id, $a_pg_parent_type, $a_hier_id)
 
  182                                 include_once (
"./Modules/LearningModule/classes/class.ilObjLearningModule.php");
 
  187                                 include_once (
"./Modules/LearningModule/classes/class.ilObjDlBook.php");
 
  196                 $lm_page->setTitle($source_lm_page->getTitle());
 
  197                 $lm_page->setLMId($source_lm_page->getLMId());
 
  198                 $lm_page->setType($source_lm_page->getType());
 
  199                 $lm_page->setDescription($source_lm_page->getDescription());
 
  200                 $lm_page->create(
true);
 
  203                 include_once(
"Services/MetaData/classes/class.ilMD.php");
 
  204                 $md = 
new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType());
 
  205                 $new_md =& $md->
cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType());
 
  208                 $source_page =& $source_lm_page->getPageObject();
 
  209                 $page =& $lm_page->getPageObject();
 
  210                 $page->setXMLContent($source_page->getXMLContent());
 
  214                 $tree = 
new ilTree($cont_obj->getId());
 
  216                 $tree->setTreeTablePK(
"lm_id");
 
  217                 if ($tree->isInTree($source_lm_page->getId()))
 
  219                         $parent_node = $tree->getParentNodeData($source_lm_page->getId());
 
  220                         $tree->insertNode($lm_page->getId(), $parent_node[
"child"], $source_lm_page->getId());
 
  225                 $page->deleteContentBeforeHierId($a_hier_id);
 
  228                 $source_page->buildDom();
 
  229                 $source_page->addHierIds();
 
  230                 $source_page->deleteContentFromHierId($a_hier_id);
 
  251                                 include_once (
"./Modules/LearningModule/classes/class.ilObjLearningModule.php");
 
  256                                 include_once (
"./Modules/LearningModule/classes/class.ilObjDlBook.php");
 
  260                 $tree = 
new ilTree($cont_obj->getId());
 
  262                 $tree->setTreeTablePK(
"lm_id");
 
  265                 $source_page =& $source_lm_page->getPageObject();
 
  268                 $succ = $tree->fetchSuccessorNode($a_page_id, 
"pg");
 
  269                 if ($succ[
"child"] > 0)
 
  272                         $target_page =& $target_lm_page->getPageObject();
 
  273                         $target_page->buildDom();
 
  274                         $target_page->addHierIds();
 
  277                         $source_page->buildDom();
 
  278                         $source_page->addHierIds();
 
  282                         return $succ[
"child"];
 
  295                 $this->page_object =& $a_page_obj;
 
  328                 $this->is_alias = $a_is_alias;
 
  339                 return $this->origin_id = $a_id;
 
  363                 foreach($pages as $page)
 
  365                         $ids[] = $page[
"obj_id"];
 
  370                 foreach($pages as $page)
 
  372                         if (is_array($linked_pages[$page[
"obj_id"]]))
 
  387                 $a_include_numbers = 
false, $a_time_scheduled_activation = 
false)
 
  392                 $query = 
"SELECT * FROM lm_data WHERE obj_id = ".
 
  393                         $ilDB->quote($a_pg_id, 
"integer");
 
  394                 $pg_set = $ilDB->query(
$query);
 
  395                 $pg_rec = $ilDB->fetchAssoc($pg_set);
 
  402                 $tree = 
new ilTree($pg_rec[
"lm_id"]);
 
  403                 $tree->setTableNames(
'lm_tree',
'lm_data');
 
  404                 $tree->setTreeTablePK(
"lm_id");
 
  409                         return $nr.$pg_rec[
"title"];
 
  412                 if ($tree->isInTree($pg_rec[
"obj_id"]))
 
  414                         $pred_node = $tree->fetchPredecessorNode($pg_rec[
"obj_id"], 
"st");
 
  415                         $childs = $tree->getChildsByType($pred_node[
"obj_id"], 
"pg");
 
  417                         if(count($childs) > 1)
 
  420                                 foreach($childs as $child)
 
  422                                         include_once(
"./Services/COPage/classes/class.ilPageObject.php");
 
  426                                         if ($child[
"type"] != 
"pg" || 
$active)
 
  430                                         if($child[
"obj_id"] == $pg_rec[
"obj_id"])
 
  437                                         $cnt_str = 
" (".$cur_cnt.
"/".$cnt.
")";
 
  440                         require_once(
"./Modules/LearningModule/classes/class.ilStructureObject.php");
 
  444                                 $a_include_numbers).$cnt_str;
 
  449                         return $pg_rec[
"title"];
 
  459         function exportXML(&$a_xml_writer, $a_mode = 
"normal", $a_inst = 0)
 
  464                 $a_xml_writer->xmlStartTag(
"PageObject", $attrs);
 
  470                                 $ilBench->start(
"ContentObjectExport", 
"exportPageObject_XML_Meta");
 
  472                                 $ilBench->stop(
"ContentObjectExport", 
"exportPageObject_XML_Meta");
 
  475                                 $ilBench->start(
"ContentObjectExport", 
"exportPageObject_XML_PageContent");
 
  477                                 $ilBench->stop(
"ContentObjectExport", 
"exportPageObject_XML_PageContent");
 
  482                                 $attrs[
"OriginId"] = 
"il_".$a_inst.
 
  483                                         "_pg_".$this->getId();
 
  484                                 $a_xml_writer->xmlElement(
"PageAlias", $attrs);
 
  491                 $a_xml_writer->xmlEndTag(
"PageObject");
 
  500                 $a_xml_writer->xmlStartTag(
"PageObject", $attrs);
 
  503                 $attrs[
"OriginId"] = 
"il_".$a_inst.
 
  505                 $a_xml_writer->xmlElement(
"PageAlias", $attrs);
 
  507                 $a_xml_writer->xmlEndTag(
"PageObject");
 
  519                 include_once(
"Services/MetaData/classes/class.ilMD2XML.php");
 
  521                 $md2xml->setExportMode(
true);
 
  522                 $md2xml->startExport();
 
  523                 $a_xml_writer->appendXML($md2xml->getXML());
 
  528                 if ($a_tag == 
"Identifier" && $a_param == 
"Entry")
 
  530                         $a_value = 
"il_".IL_INST_ID.
"_pg_".$this->
getId();
 
  550                 $this->page_object->buildDom();
 
  551                 $this->page_object->insertInstIntoIDs($a_inst);
 
  552                 $this->mobs_contained = $this->page_object->collectMediaObjects(
false);
 
  553                 $this->files_contained = $this->page_object->collectFileItems();
 
  555                 $xml = $this->page_object->getXMLFromDom(
false, 
false, 
false, 
"", 
true);
 
  556                 $xml = str_replace(
"&",
"&", $xml);
 
  557                 $a_xml_writer->appendXML($xml);
 
  559                 $this->page_object->freeDom();
 
  580                 return $this->mobs_contained;
 
  590                 return $this->files_contained;
 
  609                         $attrs[
"font-family"] = 
"Times";
 
  610                         $attrs[
"font-size"] = 
"14pt";
 
  611                         $a_xml_writer->xmlElement(
"fo:block", $attrs, 
$title);
 
  615                 $this->page_object->buildDom();
 
  616                 $fo = $this->page_object->getFO();
 
  617                 $a_xml_writer->appendXML($fo);
 
  629                 $a_order_dir, $a_offset, $a_limit)
 
  631                 global 
$ilDB, $rbacreview;
 
  635                 $count_query = 
"SELECT count(pq.question_id) cnt ";
 
  638                 $query = 
"SELECT pq.page_id, pq.question_id ";
 
  640                 $from = 
" FROM page_question pq JOIN lm_tree t ON (t.lm_id = ".$ilDB->quote($a_lm_id, 
"integer").
 
  641                         " AND pq.page_id = t.child and pq.page_parent_type = ".$ilDB->quote(
"lm", 
"text").
") ".
 
  642                         " WHERE t.lm_id = ".$ilDB->quote($a_lm_id, 
"integer");
 
  643                 $count_query.= $from;
 
  648                 $set = $ilDB->query($count_query);
 
  650                 if ($rec = $ilDB->fetchAssoc($set))
 
  655                 $offset = (int) $a_offset;
 
  656                 $limit = (int) $a_limit;
 
  657                 $ilDB->setLimit($limit, $offset);
 
  660                 $set = $ilDB->query(
$query);
 
  662                 while($rec = $ilDB->fetchAssoc($set))
 
  666                 return array(
"cnt" => $cnt, 
"set" => 
$result);