Beispiel #1
0
 /**
  * Optimize the given uploaded image.
  *
  * @param \Fab\Media\FileUpload\UploadedFileInterface $uploadedFile
  * @return \Fab\Media\FileUpload\UploadedFileInterface
  */
 public function optimize($uploadedFile)
 {
     $imageInfo = getimagesize($uploadedFile->getFileWithAbsolutePath());
     $currentWidth = $imageInfo[0];
     $currentHeight = $imageInfo[1];
     // resize an image if this one is bigger than telling by the settings.
     if (is_object($this->storage)) {
         $storageRecord = $this->storage->getStorageRecord();
     } else {
         // Will only work in the BE for now.
         $storage = $this->getMediaModule()->getCurrentStorage();
         $storageRecord = $storage->getStorageRecord();
     }
     if (strlen($storageRecord['maximum_dimension_original_image']) > 0) {
         /** @var \Fab\Media\Dimension $imageDimension */
         $imageDimension = GeneralUtility::makeInstance('Fab\\Media\\Dimension', $storageRecord['maximum_dimension_original_image']);
         if ($currentWidth > $imageDimension->getWidth() || $currentHeight > $imageDimension->getHeight()) {
             // resize taking the width as reference
             $this->resize($uploadedFile->getFileWithAbsolutePath(), $imageDimension->getWidth(), $imageDimension->getHeight());
         }
     }
     return $uploadedFile;
 }
Beispiel #2
0
 /**
  * Return a new target folder when moving file from one storage to another.
  *
  * @param ResourceStorage $storage
  * @param File $file
  * @return \TYPO3\CMS\Core\Resource\Folder
  */
 public function getDefaultFolderInStorage(ResourceStorage $storage, File $file)
 {
     // default is the root level
     $folder = $storage->getRootLevelFolder();
     // Retrieve storage record and a possible configured mount point.
     $storageRecord = $storage->getStorageRecord();
     $mountPointIdentifier = $storageRecord['mount_point_file_type_' . $file->getType()];
     if ($mountPointIdentifier > 0) {
         // We don't have a Mount Point repository in FAL, so query the database directly.
         $record = $this->getDatabaseConnection()->exec_SELECTgetSingleRow('path', 'sys_filemounts', 'deleted = 0 AND uid = ' . $mountPointIdentifier);
         if (!empty($record['path'])) {
             $folder = $storage->getFolder($record['path']);
         }
     }
     return $folder;
 }