/**
  * 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;
             }
     }
 }