public function saveMedia($data, $action = self::MOVE_TO_CMS, $createRecordIfFileNotExists = false) { $filePath = $data->__filePath; $filePathThumb = property_exists($data, '__filePathThumb') ? $data->__filePathThumb : ''; // controlla che il file esista if (!file_exists($filePath)) { if ($createRecordIfFileNotExists) { return $this->createMediaRecord($data); } else { return array('errors' => array('Il file ' . $filePath . ' non esiste')); } } $originalFileName = $data->__originalFileName; $fileSize = filesize($filePath); $fileExtension = strtolower(pathinfo($data->__originalFileName, PATHINFO_EXTENSION)); $fileType = org_glizycms_mediaArchive_MediaManager::getMediaTypeFromExtension($fileExtension); $saveExifData = __Config::get('glizycms.mediaArchive.exifEnabled') && $fileType == 'IMAGE'; if ($saveExifData) { $exif = @exif_read_data($filePath); } if ($action != self::NONE) { $r = $this->copyFileInArchive($action, $filePath, $originalFileName, $fileType); if (!$r['status']) { return $r; } $data->media_fileName = $r['destName']; $fileDestinationPath = $r['destPath']; if ($filePathThumb) { $r = $this->copyFileInArchive($action, $filePathThumb, 'thumb_' . $originalFileName, $fileType); if (!$r['status']) { return $r; } $filePathThumb = $r['destName']; } /* $file_destname = md5(time()) . "_" . $originalFileName; $destinationFolder = org_glizy_Paths::get('APPLICATION_MEDIA_ARCHIVE').ucfirst(strtolower($fileType)); $fileDestinationPath = $destinationFolder.'/'.$file_destname; $data->media_fileName = $file_destname; // verifica che la cartella di destinazione sia scrivibile if (!is_writeable($destinationFolder)) { return array('errors' => array('Rendere scrivibile la cartella '.$destinationFolder)); } if ($action == self::MOVE_TO_CMS) { rename($filePath, $fileDestinationPath); } else if ($action == self::COPY_TO_CMS) { copy($filePath, $fileDestinationPath); } */ } else { $fileDestinationPath = $filePath; } $media = org_glizy_ObjectFactory::createModel('org.glizycms.models.Media'); $media->media_originalFileName = $originalFileName; $media->media_thumbFileName = $filePathThumb; $media->media_size = $fileSize; $media->media_type = $fileType; $media->media_FK_user_id = org_glizy_ObjectValues::get('org.glizy', 'userId'); $media->media_creationDate = new org_glizy_types_DateTime(); $media->media_modificationDate = new org_glizy_types_DateTime(); $media->media_download = 0; $media->media_md5 = md5_file($fileDestinationPath); if ($fileExtension == 'tif' || $fileExtension == 'tiff') { $media->media_watermark = 1; $media->media_allowDownload = 0; } else { $media->media_allowDownload = 1; $media->media_watermark = 0; } foreach ($data as $k => $v) { // remove the system values if (strpos($k, '__') === 0 || !$media->fieldExists($k)) { continue; } $media->{$k} = $v; } if ($saveExifData) { if ($exif['COMPUTED']['Copyright'] && empty($ar->media_copyright)) { $ar->media_copyright = $exif['COMPUTED']['Copyright']; } } $mediaId = $media->save(); if ($saveExifData) { $exifService = org_glizy_ObjectFactory::createObject('org.glizycms.mediaArchive.services.ExifService'); $exifService->saveExifData($mediaId, $exif); } return $mediaId; }