/**
  * Edit media cast item
  */
 function editCastItemObject()
 {
     global $tpl, $ilToolbar, $ilCtrl;
     $this->checkPermission("write");
     // conversion toolbar
     include_once "./Services/MediaObjects/classes/class.ilFFmpeg.php";
     if (ilFFmpeg::enabled()) {
         $this->mcst_item = new ilNewsItem($_GET["item_id"]);
         include_once "./Services/MediaObjects/classes/class.ilObjMediaObjectGUI.php";
         $mob = new ilObjMediaObject($this->mcst_item->getMobId());
         $conv_cnt = 0;
         // we had other purposes as source as well, but
         // currently only "Standard" is implemented in the convertFile method
         foreach (array("Standard") as $p) {
             /*
             		    	$med = $mob->getMediaItem($p);
             		    	if (is_object($med))
             		    	{
             	$options = ilFFmpeg::getPossibleTargetMimeTypes($med->getFormat());
             	if (count($options) > 0)
             	{
             		if ($conv_cnt > 0)
             		{
             			$ilToolbar->addSeparator();
             		}
             		
             		include_once("./Services/Form/classes/class.ilSelectInputGUI.php");
             		$si = new ilSelectInputGUI($this->lng->txt("mcst_conv_".
             			strtolower($p)."_to"), "target_format");
             		$si->setOptions($options);
             		$ilToolbar->addInputItem($si, true);
             		
             		$si = new ilSelectInputGUI(", ".$this->lng->txt("mcst_target").": ",
             			"target_purpose");
             		$si->setOptions(array("Standard" => $this->lng->txt("mcst_purpose_standard"),
             			"VideoAlternative" => $this->lng->txt("mcst_purpose_videoalternative")
             			));
             		$si->setValue($p);
             		$ilToolbar->addInputItem($si, true);
             		
             		$ilToolbar->addFormButton($this->lng->txt("mcst_convert"), "convertFile");
             		
             		$conv_cnt++;
             	}
             }
             */
             $med = $mob->getMediaItem($p);
             if (is_object($med)) {
                 if (ilFFmpeg::supportsImageExtraction($med->getFormat())) {
                     // second
                     include_once "./Services/Form/classes/class.ilTextInputGUI.php";
                     $ni = new ilTextInputGUI($this->lng->txt("mcst_second"), "sec");
                     $ni->setMaxLength(4);
                     $ni->setSize(4);
                     $ni->setValue(1);
                     $ilToolbar->addInputItem($ni, true);
                     $ilToolbar->addFormButton($this->lng->txt("mcst_extract_preview_image"), "extractPreviewImage");
                     $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
                 }
             }
             /*if ($conv_cnt > 0)
             		{
             			$ilToolbar->setFormAction($ilCtrl->getFormAction($this));
             		}*/
         }
     }
     $this->initAddCastItemForm("edit");
     $this->getCastItemValues();
     $tpl->setContent($this->form_gui->getHTML());
 }
 /**
  * Function to parse incoming data from form input value $value. returns the string/number/etc. to store in the database.
  *
  * @param                             $value
  * @param ilDataCollectionRecordField $record_field
  *
  * @return int|string
  */
 public function parseValue($value, ilDataCollectionRecordField $record_field)
 {
     $return = false;
     if ($this->id == ilDataCollectionDatatype::INPUTFORMAT_FILE) {
         $file = $value;
         if (is_array($file) && $file['tmp_name']) {
             $file_obj = new ilObjFile();
             $file_obj->setType("file");
             $file_obj->setTitle($file["name"]);
             $file_obj->setFileName($file["name"]);
             $file_obj->setFileType(ilMimeTypeUtil::getMimeType("", $file["name"], $file["type"]));
             $file_obj->setFileSize($file["size"]);
             $file_obj->setMode("object");
             $file_obj->create();
             $file_obj->getUploadFile($file["tmp_name"], $file["name"]);
             $file_id = $file_obj->getId();
             $return = $file_id;
         } else {
             $return = $record_field->getValue();
         }
     } elseif ($this->id == ilDataCollectionDatatype::INPUTFORMAT_MOB) {
         if ($value == -1) {
             return 0;
         }
         $media = $value;
         if (is_array($media) && $media['tmp_name']) {
             $mob = new ilObjMediaObject();
             $mob->setTitle($media['name']);
             $mob->create();
             $mob_dir = ilObjMediaObject::_getDirectory($mob->getId());
             if (!is_dir($mob_dir)) {
                 $mob->createDirectory();
             }
             $media_item = new ilMediaItem();
             $mob->addMediaItem($media_item);
             $media_item->setPurpose("Standard");
             $file_name = ilUtil::getASCIIFilename($media['name']);
             $file_name = str_replace(" ", "_", $file_name);
             $file = $mob_dir . "/" . $file_name;
             $title = $file_name;
             $location = $file_name;
             ilUtil::moveUploadedFile($media['tmp_name'], $file_name, $file);
             ilUtil::renameExecutables($mob_dir);
             // Check image/video
             $format = ilObjMediaObject::getMimeType($file);
             if ($format == 'image/jpeg') {
                 list($width, $height, $type, $attr) = getimagesize($file);
                 $arr_properties = $record_field->getField()->getProperties();
                 $new_width = $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH];
                 $new_height = $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT];
                 if ($new_width || $new_height) {
                     //only resize if it is bigger, not if it is smaller
                     if ($new_height < $height && $new_width < $width) {
                         //resize proportional
                         if (!$new_height || !$new_width) {
                             $format = ilObjMediaObject::getMimeType($file);
                             $wh = ilObjMediaObject::_determineWidthHeight("", "", $format, "File", $file, "", true, false, $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH], (int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT]);
                         } else {
                             $wh['width'] = (int) $arr_properties[ilDataCollectionField::PROPERTYID_WIDTH];
                             $wh['height'] = (int) $arr_properties[ilDataCollectionField::PROPERTYID_HEIGHT];
                         }
                         $location = ilObjMediaObject::_resizeImage($file, $wh['width'], $wh['height'], false);
                     }
                 }
             }
             ilObjMediaObject::_saveUsage($mob->getId(), "dcl:html", $record_field->getRecord()->getTable()->getCollectionObject()->getId());
             $media_item->setFormat($format);
             $media_item->setLocation($location);
             $media_item->setLocationType("LocalFile");
             // FSX MediaPreview
             include_once "./Services/MediaObjects/classes/class.ilFFmpeg.php";
             if (ilFFmpeg::supportsImageExtraction($format)) {
                 $med = $mob->getMediaItem("Standard");
                 $mob_file = ilObjMediaObject::_getDirectory($mob->getId()) . "/" . $med->getLocation();
                 $a_target_dir = ilObjMediaObject::_getDirectory($mob->getId());
                 try {
                     $new_file = ilFFmpeg::extractImage($mob_file, "mob_vpreview.png", $a_target_dir, 1);
                 } catch (ilFFmpegException $e) {
                     ilUtil::sendFailure($e->getMessage(), true);
                 }
             }
             $mob->update();
             $return = $mob->getId();
         } else {
             $return = $record_field->getValue();
         }
     } elseif ($this->id == ilDataCollectionDatatype::INPUTFORMAT_DATETIME) {
         return $value["date"] . " " . $value["time"];
     } elseif ($this->id == ilDataCollectionDatatype::INPUTFORMAT_BOOLEAN) {
         $return = $value ? 1 : 0;
     } elseif ($this->id == ilDataCollectionDatatype::INPUTFORMAT_TEXT) {
         $arr_properties = $record_field->getField()->getProperties();
         if ($arr_properties[ilDataCollectionField::PROPERTYID_TEXTAREA]) {
             $return = nl2br($value);
         } else {
             $return = $value;
         }
     } else {
         if ($this->id == ilDataCollectionDatatype::INPUTFORMAT_NUMBER) {
             $return = $value == '' ? NULL : $value;
             //SW, Ilias Mantis #0011799: Return null otherwise '' is casted to 0 in DB
         } else {
             $return = $value;
         }
     }
     return $return;
 }