/** * insert new file item */ function newFileItem() { global $lng; if ($_FILES["file"]["name"] == "") { $_GET["subCmd"] = "-"; ilUtil::sendFailure($lng->txt("upload_error_file_not_found")); return false; } include_once "./Modules/File/classes/class.ilObjFile.php"; $fileObj = new ilObjFile(); $fileObj->setType("file"); $fileObj->setTitle($_FILES["file"]["name"]); $fileObj->setDescription(""); $fileObj->setFileName($_FILES["file"]["name"]); $fileObj->setFileType($_FILES["file"]["type"]); $fileObj->setFileSize($_FILES["file"]["size"]); $fileObj->setMode("filelist"); $fileObj->create(); $fileObj->raiseUploadError(false); // upload file to filesystem $fileObj->createDirectory(); $fileObj->getUploadFile($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]); $this->file_object =& $fileObj; return true; }
/** * Save file link */ function saveFileLink() { $mtpl =& new ilTemplate("tpl.link_help.html", true, true, "Modules/LearningModule"); $mtpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); if ($_FILES["link_file"]["name"] != "") { include_once "./Modules/File/classes/class.ilObjFile.php"; $fileObj = new ilObjFile(); $fileObj->setType("file"); $fileObj->setTitle($_FILES["link_file"]["name"]); $fileObj->setDescription(""); $fileObj->setFileName($_FILES["link_file"]["name"]); $fileObj->setFileType($_FILES["link_file"]["type"]); $fileObj->setFileSize($_FILES["link_file"]["size"]); $fileObj->setMode("filelist"); $fileObj->create(); // upload file to filesystem $fileObj->createDirectory(); $fileObj->raiseUploadError(false); $fileObj->getUploadFile($_FILES["link_file"]["tmp_name"], $_FILES["link_file"]["name"]); $this->uploaded_file = $fileObj; } $this->showLinkHelp(); }
/** * Function to parse incoming data from form input value $value. returns the strin/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 ($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) { //marked for deletion. return 0; } $media = $value; if ($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; ilUtil::moveUploadedFile($media['tmp_name'], $file_name, $file); ilUtil::renameExecutables($mob_dir); 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); } else { $location = $title; } ilObjMediaObject::_saveUsage($mob->getId(), "dcl:html", $record_field->getRecord()->getTable()->getCollectionObject()->getId()); $format = ilObjMediaObject::getMimeType($file); $media_item->setFormat($format); $media_item->setLocation($location); $media_item->setLocationType("LocalFile"); $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; }