/** * Create media object from upload directory */ function createMediaFromUploadDir() { $mset = new ilSetting("mobs"); $upload_dir = trim($mset->get("upload_dir")); include_once "./Services/MediaObjects/classes/class.ilObjMediaObject.php"; if (is_array($_POST["file"]) && ilMainMenuGUI::_checkAdministrationPermission()) { foreach ($_POST["file"] as $f) { $f = str_replace("..", "", $f); $fullpath = $upload_dir . "/" . $f; $mob = new ilObjMediaObject(); $mob->setTitle(basename($fullpath)); $mob->setDescription(""); $mob->create(); // determine and create mob directory, move uploaded file to directory //$mob_dir = ilUtil::getWebspaceDir()."/mobs/mm_".$a_mob->getId(); $mob->createDirectory(); $mob_dir = ilObjMediaObject::_getDirectory($mob->getId()); $media_item = new ilMediaItem(); $mob->addMediaItem($media_item); $media_item->setPurpose("Standard"); $file = $mob_dir . "/" . basename($fullpath); ilUtil::moveUploadedFile($fullpath, basename($fullpath), $file, false, $_POST["action"]); // get mime type $format = ilObjMediaObject::getMimeType($file); $location = basename($fullpath); // set real meta and object data $media_item->setFormat($format); $media_item->setLocation($location); $media_item->setLocationType("LocalFile"); $mob->setDescription($format); // determine width and height of known image types $wh = ilObjMediaObject::_determineWidthHeight(500, 400, $format, "File", $mob_dir . "/" . $location, $media_item->getLocation(), true, true, "", ""); $media_item->setWidth($wh["width"]); $media_item->setHeight($wh["height"]); if ($wh["info"] != "") { // ilUtil::sendInfo($wh["info"], true); } $media_item->setHAlign("Left"); ilUtil::renameExecutables($mob_dir); $mob->update(); // put it into current folder $mep_item = new ilMediaPoolItem(); $mep_item->setTitle($mob->getTitle()); $mep_item->setType("mob"); $mep_item->setForeignId($mob->getId()); $mep_item->create(); $tree = $this->object->getTree(); $parent = $_GET["mepitem_id"] == "" ? $tree->getRootId() : $_GET["mepitem_id"]; $tree->insertNode($mep_item->getId(), $parent); } } ilUtil::redirect("ilias.php?baseClass=ilMediaPoolPresentationGUI&cmd=listMedia&ref_id=" . $_GET["ref_id"] . "&mepitem_id=" . $_GET["mepitem_id"]); }
/** * 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(); // todo: make mobs being copied $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"]); } }
/** * Import record * * @param * @return */ function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version) { //echo $a_entity; //var_dump($a_rec); switch ($a_entity) { case "mep": include_once "./Modules/MediaPool/classes/class.ilObjMediaPool.php"; if ($new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_rec['Id'])) { $newObj = ilObjectFactory::getInstanceByObjId($new_id, false); } else { $newObj = new ilObjMediaPool(); $newObj->setType("mep"); $newObj->create(true); } $newObj->setTitle($a_rec["Title"]); $newObj->setDescription($a_rec["Description"]); $newObj->setDefaultWidth($a_rec["DefaultWidth"]); $newObj->setDefaultHeight($a_rec["DefaultHeight"]); $newObj->update(); $this->current_obj = $newObj; $a_mapping->addMapping("Modules/MediaPool", "mep", $a_rec["Id"], $newObj->getId()); break; case "mep_tree": switch ($a_rec["Type"]) { case "fold": $parent = (int) $a_mapping->getMapping("Modules/MediaPool", "mep_tree", $a_rec["Parent"]); $fold_id = $this->current_obj->createFolder($a_rec["Title"], $parent); $a_mapping->addMapping("Modules/MediaPool", "mep_tree", $a_rec["Child"], $fold_id); break; case "mob": $parent = (int) $a_mapping->getMapping("Modules/MediaPool", "mep_tree", $a_rec["Parent"]); $mob_id = (int) $a_mapping->getMapping("Services/MediaObjects", "mob", $a_rec["ForeignId"]); $item = new ilMediaPoolItem(); $item->setType("mob"); $item->setForeignId($mob_id); $item->setTitle($a_rec["Title"]); $item->create(); if ($item->getId() > 0) { $this->current_obj->insertInTree($item->getId(), $parent); } break; case "pg": $parent = (int) $a_mapping->getMapping("Modules/MediaPool", "mep_tree", $a_rec["Parent"]); $item = new ilMediaPoolItem(); $item->setType("pg"); $item->setTitle($a_rec["Title"]); $item->create(); $a_mapping->addMapping("Services/COPage", "pg", "mep:" . $a_rec["Child"], "mep:" . $item->getId()); if ($item->getId() > 0) { $this->current_obj->insertInTree($item->getId(), $parent); } break; } } }