/** * Insert (multiple) chapters at node */ function insertChapter() { global $ilCtrl, $lng; include_once "./Modules/LearningModule/classes/class.ilChapterHierarchyFormGUI.php"; $num = ilChapterHierarchyFormGUI::getPostMulti(); $node_id = ilChapterHierarchyFormGUI::getPostNodeId(); if (!ilChapterHierarchyFormGUI::getPostFirstChild()) { $parent_id = $this->lm_tree->getParentId($node_id); $target = $node_id; } else { $parent_id = $node_id; $target = IL_FIRST_NODE; } for ($i = 1; $i <= $num; $i++) { $chap = new ilStructureObject($this->object); $chap->setType("st"); $chap->setTitle($lng->txt("cont_new_chap")); $chap->setLMId($this->object->getId()); $chap->create(); ilLMObject::putInTree($chap, $parent_id, $target); } $ilCtrl->redirect($this, "chapters"); }
/** * Paste item (tree) from clipboard to current lm */ static function 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) { global $ilUser, $ilias, $ilLog; include_once "./Modules/LearningModule/classes/class.ilStructureObject.php"; include_once "./Modules/LearningModule/classes/class.ilLMPageObject.php"; $item_lm_id = ilLMObject::_lookupContObjID($a_item_id); $item_type = ilLMObject::_lookupType($a_item_id); $lm_obj = $ilias->obj_factory->getInstanceByObjId($item_lm_id); if ($item_type == "st") { $item = new ilStructureObject($lm_obj, $a_item_id); } else { if ($item_type == "pg") { $item = new ilLMPageObject($lm_obj, $a_item_id); } } $ilLog->write("Getting from clipboard type " . $item_type . ", " . "Item ID: " . $a_item_id . ", of original LM: " . $item_lm_id); if ($item_lm_id != $a_target_lm->getId() && !$a_as_copy) { // @todo: check whether st is NOT in tree // "move" metadata to new lm include_once "Services/MetaData/classes/class.ilMD.php"; $md = new ilMD($item_lm_id, $item->getId(), $item->getType()); $new_md = $md->cloneMD($a_target_lm->getId(), $item->getId(), $item->getType()); // update lm object $item->setLMId($a_target_lm->getId()); $item->setContentObject($a_target_lm); $item->update(); // delete old meta data set $md->deleteAll(); if ($item_type == "pg") { $page = $item->getPageObject(); $page->buildDom(); $page->setParentId($a_target_lm->getId()); $page->update(); } } if ($a_as_copy) { $target_item = $item->copy($a_target_lm); $a_copied_nodes[$item->getId()] = $target_item->getId(); } else { $target_item = $item; } $ilLog->write("Putting into tree type " . $target_item->getType() . "Item ID: " . $target_item->getId() . ", Parent: " . $a_parent_id . ", " . "Target: " . $a_target . ", Item LM:" . $target_item->getContentObject()->getId()); ilLMObject::putInTree($target_item, $a_parent_id, $a_target); if ($a_source_lm == null) { $childs = $ilUser->getClipboardChilds($item->getId(), $a_insert_time); } else { $childs = $a_source_lm->lm_tree->getChilds($item->getId()); foreach ($childs as $k => $child) { $childs[$k]["id"] = $childs[$k]["child"]; } } foreach ($childs as $child) { ilLMObject::pasteTree($a_target_lm, $child["id"], $target_item->getId(), IL_LAST_NODE, $a_insert_time, $a_copied_nodes, $a_as_copy, $a_source_lm); } return $target_item->getId(); // @todo: write history (see pastePage) }
/** * 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); }