/** * Insert (multiple) pages at node */ function insertPage() { global $ilCtrl, $lng; include_once "./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php"; $num = ilChapterHierarchyFormGUI::getPostMulti(); $node_id = ilChapterHierarchyFormGUI::getPostNodeId(); if (!ilChapterHierarchyFormGUI::getPostFirstChild()) { $parent_id = $this->tree->getParentId($node_id); $target = $node_id; } else { $parent_id = $node_id; $target = IL_FIRST_NODE; } for ($i = 1; $i <= $num; $i++) { $page = new ilLMPageObject($this->content_object); $page->setType("pg"); $page->setTitle($lng->txt("cont_new_page")); $page->setLMId($this->content_object->getId()); $page->create(); ilLMObject::putInTree($page, $parent_id, $target); } $ilCtrl->redirect($this, "showHierarchy"); }
/** * copy page */ function copy($a_target_lm) { // copy page $lm_page = new ilLMPageObject($a_target_lm); $lm_page->setTitle($this->getTitle()); $lm_page->setLayout($this->getLayout()); $lm_page->setLMId($a_target_lm->getId()); $lm_page->setType($this->getType()); $lm_page->setDescription($this->getDescription()); $lm_page->setImportId("il__pg_" . $this->getId()); $lm_page->create(true); // setting "upload" flag to true prevents creating of meta data // check whether export id already exists in the target lm $del_exp_id = false; $exp_id = ilLMPageObject::getExportId($this->getLMId(), $this->getId()); if (trim($exp_id) != "") { if (ilLMPageObject::existsExportID($a_target_lm->getId(), $exp_id)) { $del_exp_id = true; } } // copy meta data include_once "Services/MetaData/classes/class.ilMD.php"; $md = new ilMD($this->getLMId(), $this->getId(), $this->getType()); $new_md = $md->cloneMD($a_target_lm->getId(), $lm_page->getId(), $this->getType()); // check whether export id already exists in the target lm if ($del_exp_id) { ilLMPageObject::saveExportId($a_target_lm->getId(), $lm_page->getId(), ""); } else { ilLMPageObject::saveExportId($a_target_lm->getId(), $lm_page->getId(), trim($exp_id)); } // copy page content and activation $page = $lm_page->getPageObject(); $page->setXMLContent($this->page_object->copyXMLContent()); $page->setActive($this->page_object->getActive()); $page->setActivationStart($this->page_object->getActivationStart()); $page->setActivationEnd($this->page_object->getActivationEnd()); $page->buildDom(); $page->update(); return $lm_page; }
/** * split page at hierarchical id * * the main reason for this method being static is that a lm page * object is not available within ilPageContentGUI where this method * is called */ function _splitPage($a_page_id, $a_pg_parent_type, $a_hier_id) { // get content object (learning module / digilib book) $lm_id = ilLMObject::_lookupContObjID($a_page_id); $type = ilObject::_lookupType($lm_id, false); switch ($type) { case "lm": include_once "./Modules/LearningModule/classes/class.ilObjLearningModule.php"; $cont_obj = new ilObjLearningModule($lm_id, false); break; case "dbk": include_once "./Modules/LearningModule/classes/class.ilObjDlBook.php"; $cont_obj = new ilObjDlBook($lm_id, false); break; } $source_lm_page = new ilLMPageObject($cont_obj, $a_page_id); // create new page $lm_page = new ilLMPageObject($cont_obj); $lm_page->setTitle($source_lm_page->getTitle()); $lm_page->setLMId($source_lm_page->getLMId()); $lm_page->setType($source_lm_page->getType()); $lm_page->setDescription($source_lm_page->getDescription()); $lm_page->create(true); // copy complete content of source page to new page $source_page = $source_lm_page->getPageObject(); $page = $lm_page->getPageObject(); $page->setXMLContent($source_page->copyXMLContent()); //echo htmlentities($source_page->copyXMLContent()); $page->buildDom(true); $page->update(); // echo "-".$page->getId()."-".$page->getParentType()."-"; // copy meta data include_once "Services/MetaData/classes/class.ilMD.php"; $md = new ilMD($source_lm_page->getLMId(), $a_page_id, $source_lm_page->getType()); $md->cloneMD($source_lm_page->getLMId(), $lm_page->getId(), $source_lm_page->getType()); // insert new page in tree (after original page) $tree = new ilTree($cont_obj->getId()); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); if ($tree->isInTree($source_lm_page->getId())) { $parent_node = $tree->getParentNodeData($source_lm_page->getId()); $tree->insertNode($lm_page->getId(), $parent_node["child"], $source_lm_page->getId()); } // remove all nodes < hierarchical id from new page (incl. update) $page->addHierIds(); $page->deleteContentBeforeHierId($a_hier_id); // $page->update(); // remove all nodes >= hierarchical id from source page $source_page->buildDom(); $source_page->addHierIds(); $source_page->deleteContentFromHierId($a_hier_id); return $lm_page; }
/** * Add first chapter and page */ function addFirstChapterAndPage() { global $lng; include_once "./Modules/LearningModule/classes/class.ilLMObject.php"; include_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; include_once "./Modules/LearningModule/classes/class.ilLMPageObject.php"; $root_id = $this->lm_tree->getRootId(); // chapter $chap = new ilStructureObject($this); $chap->setType("st"); $chap->setTitle($lng->txt("cont_new_chap")); $chap->setLMId($this->getId()); $chap->create(); ilLMObject::putInTree($chap, $root_id, IL_FIRST_NODE); // page $page = new ilLMPageObject($this); $page->setType("pg"); $page->setTitle($lng->txt("cont_new_page")); $page->setLMId($this->getId()); $page->create(); ilLMObject::putInTree($page, $chap->getId(), IL_FIRST_NODE); }