diff --git a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php index e7c9109f674c4d7f999a2db6e4e7941c067e54e5..a2895e5d15e9de01e9aac8a5007345f3de3630a2 100644 --- a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php +++ b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php @@ -4076,15 +4076,15 @@ class ContentObjectRenderer implements LoggerAwareInterface if (MathUtility::canBeInterpretedAsInteger($file)) { $treatIdAsReference = $this->stdWrapValue('treatIdAsReference', $fileArray ?? []); if (!empty($treatIdAsReference)) { - $file = $this->getResourceFactory()->getFileReferenceObject($file); - $fileObject = $file->getOriginalFile(); + $fileReference = $this->getResourceFactory()->getFileReferenceObject($file); + $fileObject = $fileReference->getOriginalFile(); } else { $fileObject = $this->getResourceFactory()->getFileObject($file); } } elseif (preg_match('/^(0|[1-9][0-9]*):/', $file)) { // combined identifier $fileObject = $this->getResourceFactory()->retrieveFileOrFolderObject($file); } else { - if (isset($importedFile) && !empty($importedFile) && !empty($fileArray['import'])) { + if ($importedFile && !empty($fileArray['import'])) { $file = $fileArray['import'] . $file; } $fileObject = $this->getResourceFactory()->retrieveFileOrFolderObject($file); @@ -4109,8 +4109,8 @@ class ContentObjectRenderer implements LoggerAwareInterface $processingConfiguration['noScale'] = $this->stdWrapValue('noScale', $fileArray ?? []); $processingConfiguration['additionalParameters'] = $this->stdWrapValue('params', $fileArray ?? []); $processingConfiguration['frame'] = (int)$this->stdWrapValue('frame', $fileArray ?? []); - if ($file instanceof FileReference) { - $processingConfiguration['crop'] = $this->getCropAreaFromFileReference($file, $fileArray); + if (isset($fileReference)) { + $processingConfiguration['crop'] = $this->getCropAreaFromFileReference($fileReference, $fileArray); } else { $processingConfiguration['crop'] = $this->getCropAreaFromFromTypoScriptSettings($fileObject, $fileArray); } @@ -4154,11 +4154,11 @@ class ContentObjectRenderer implements LoggerAwareInterface } } } - // If image was processed by GIFBUILDER: - // ($imageResource indicates that it was processed the regular way) - if (!isset($imageResource)) { + // Triggered when the resolved file object isn't considered as image, processing failed and likely other scenarios + // This code path dates back to pre FAL times and should be deprecated and removed eventually + if (!isset($imageResource) && is_string($file)) { try { - $theImage = GeneralUtility::makeInstance(FilePathSanitizer::class)->sanitize((string)$file); + $theImage = GeneralUtility::makeInstance(FilePathSanitizer::class)->sanitize($file); $info = GeneralUtility::makeInstance(GifBuilder::class)->imageMagickConvert($theImage, 'WEB'); $info['origFile'] = $theImage; // This is needed by \TYPO3\CMS\Frontend\Imaging\GifBuilder, ln 100ff in order for the setup-array to create a unique filename hash.