/** * Save new cast item */ function saveCastItemObject() { global $tpl, $ilCtrl, $ilUser, $lng, $ilTabs; $this->checkPermission("write"); $ilTabs->activateTab("edit_content"); $this->initAddCastItemForm(); if ($_POST["url_Standard"] == "" && !$_FILES['file_Standard']['tmp_name']) { ilUtil::sendFailure($lng->txt("msg_input_either_file_or_url")); $this->populateFormFromPost(); } else { if ($this->form_gui->checkInput()) { // create dummy object in db (we need an id) include_once "./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php"; $mob = new ilObjMediaObject(); $mob->create(); //handle standard purpose $file = $this->createMediaItemForPurpose($mob, "Standard"); // set title and description // set title to basename of file if left empty $title = $this->form_gui->getInput("title") != "" ? $this->form_gui->getInput("title") : basename($file); $description = $this->form_gui->getInput("description"); $mob->setTitle($title); $mob->setDescription($description); // save preview pic $prevpic = $this->form_gui->getInput("preview_pic"); if ($prevpic["size"] > 0) { $mob->uploadVideoPreviewPic($prevpic); } // determine duration for standard purpose $duration = $this->getDuration($file); // handle other purposes foreach ($this->additionalPurposes as $purpose) { // check if some purpose has been uploaded $file_gui = $this->form_gui->getInput("file_" . $purpose); $url_gui = $this->form_gui->getInput("url_" . $purpose); if ($url_gui || $file_gui["size"] > 0) { $this->createMediaItemForPurpose($mob, $purpose); } } $mob->update(); if ($prevpic["size"] == 0) { // re-read media object $mob = new ilObjMediaObject($mob->getId()); $mob->generatePreviewPic(320, 240); } // // @todo: save usage // $news_set = new ilSetting("news"); $enable_internal_rss = $news_set->get("enable_rss_for_internal"); // create new media cast item include_once "./Services/News/classes/class.ilNewsItem.php"; $mc_item = new ilNewsItem(); $mc_item->setMobId($mob->getId()); $mc_item->setContentType(NEWS_AUDIO); $mc_item->setContextObjId($this->object->getId()); $mc_item->setContextObjType($this->object->getType()); $mc_item->setUserId($ilUser->getId()); $mc_item->setPlaytime($duration); $mc_item->setTitle($title); $mc_item->setContent($description); $mc_item->setLimitation(false); if ($enable_internal_rss) { $mc_item->setVisibility($this->form_gui->getInput("visibility")); } else { $mc_item->setVisibility("users"); } $mc_item->create(); $ilCtrl->redirect($this, "listItems"); } else { $this->populateFormFromPost(); } } }