/** * 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; }
/** * 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; }