/** * insert media object from clipboard */ function insertFromClipboard() { global $ilAccess; $this->checkPermission("write"); include_once "./Services/Clipboard/classes/class.ilEditClipboardGUI.php"; $ids = ilEditClipboardGUI::_getSelectedIDs(); $not_inserted = array(); if (is_array($ids)) { foreach ($ids as $id2) { $id = explode(":", $id2); $type = $id[0]; $id = $id[1]; if ($type == "mob") { if (ilObjMEdiaPool::isForeignIdInTree($this->object->getId(), $id)) { $not_inserted[] = ilObject::_lookupTitle($id) . " [" . $id . "]"; } else { $item = new ilMediaPoolItem(); $item->setType("mob"); $item->setForeignId($id); $item->setTitle(ilObject::_lookupTitle($id)); $item->create(); if ($item->getId() > 0) { $this->object->insertInTree($item->getId(), $_GET["mepitem_id"]); } } } if ($type == "incl") { include_once "./Modules/MediaPool/classes/class.ilMediaPoolPage.php"; include_once "./Modules/MediaPool/classes/class.ilMediaPoolItem.php"; if (ilObjMEdiaPool::isItemIdInTree($this->object->getId(), $id)) { $not_inserted[] = ilMediaPoolPage::lookupTitle($id) . " [" . $id . "]"; } else { $original = new ilMediaPoolPage($id); // copy the page into the pool $item = new ilMediaPoolItem(); $item->setType("pg"); $item->setTitle(ilMediaPoolItem::lookupTitle($id)); $item->create(); if ($item->getId() > 0) { $this->object->insertInTree($item->getId(), $_GET["mepitem_id"]); // create page include_once "./Modules/MediaPool/classes/class.ilMediaPoolPage.php"; $page = new ilMediaPoolPage(); $page->setId($item->getId()); $page->create(); // copy content $original->copy($page->getId(), $page->getParentType(), $page->getParentId(), true); //$page->setXMLContent($original->copyXMLContent()); //$page->buildDom(); //$page->update(); } } } } } if (count($not_inserted) > 0) { ilUtil::sendInfo($this->lng->txt("mep_not_insert_already_exist") . "<br>" . implode($not_inserted, "<br>"), true); } $this->ctrl->redirect($this, $_GET["mep_mode"] ? $_GET["mep_mode"] : "listMedia"); }
/** * Copy tree content * * @param * @return */ function copyTreeContent($a_new_obj, $a_target_parent, $a_source_parent) { include_once "./Modules/MediaPool/classes/class.ilMediaPoolItem.php"; include_once "./Modules/MediaPool/classes/class.ilMediaPoolPage.php"; include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php"; // get all chapters of root lm $nodes = $this->getTree()->getChilds($a_source_parent); foreach ($nodes as $node) { $item = new ilMediaPoolItem(); $item->setType($node["type"]); switch ($node["type"]) { case "mob": $mob_id = ilMediaPoolItem::lookupForeignId($node["child"]); $mob = new ilObjMediaObject($mob_id); $new_mob = $mob->duplicate(); $item->setForeignId($new_mob->getId()); $item->setTitle($new_mob->getTitle()); $item->create(); break; case "pg": $item->setTitle($node["title"]); $item->create(); $page = new ilMediaPoolPage($node["child"]); $new_page = new ilMediaPoolPage(); $new_page->setId($item->getId()); $new_page->create(); // copy page $page->copy($new_page->getId(), $new_page->getParentType(), $new_page->getParentId(), true); //$new_page->setXMLContent($page->copyXMLContent(true)); //$new_page->buildDom(); //$new_page->update(); break; case "fold": $item->setTitle($node["title"]); $item->create(); break; } // insert item into tree $a_new_obj->insertInTree($item->getId(), $a_target_parent); // handle childs $this->copyTreeContent($a_new_obj, $item->getId(), $node["child"]); } }