From 9ec2f2d76ad2b2f5f736243eacab6a7b6c1576e0 Mon Sep 17 00:00:00 2001 From: Benni Mack <benni@typo3.org> Date: Thu, 11 Nov 2021 13:59:43 +0100 Subject: [PATCH] [BUGFIX] Revert "Make file paths absolute in GIFBUILDER" This reverts commit 48e4e495e2f5a85204e4f81bffd2164f095876f7 as this has some side-effects with absolute paths. Change-Id: Ieb696908e5226d57eedeef7cb5fa8cd7b7ec4ea6 Reverts: #95379 Resolves: #95959 Releases: master, 10.4 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72114 Tested-by: core-ci <typo3@b13.com> Tested-by: Benni Mack <benni@typo3.org> Reviewed-by: Benni Mack <benni@typo3.org> --- .../ContentObject/ContentObjectRenderer.php | 9 ++-- .../frontend/Classes/Imaging/GifBuilder.php | 4 +- .../Functional/Imaging/GifBuilderTest.php | 42 +------------------ 3 files changed, 6 insertions(+), 49 deletions(-) diff --git a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php index f96772723ed2..2ac17b63b50e 100644 --- a/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php +++ b/typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php @@ -4052,16 +4052,13 @@ class ContentObjectRenderer implements LoggerAwareInterface $imageResource = null; if ($file === 'GIFBUILDER') { $gifCreator = GeneralUtility::makeInstance(GifBuilder::class); + $theImage = ''; if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib']) { $gifCreator->start($fileArray, $this->data); $theImage = $gifCreator->gifBuild(); - if (!empty($theImage)) { - // Use absolute path to retrieve image dimension to mitigate path inconsistency in cli context, - // but use the relative path for further processing. - $imageResource = $gifCreator->getImageDimensions(Environment::getPublicPath() . '/' . $theImage); - $imageResource['origFile'] = $theImage; - } } + $imageResource = $gifCreator->getImageDimensions($theImage); + $imageResource['origFile'] = $theImage; } else { if ($file instanceof File) { $fileObject = $file; diff --git a/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php b/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php index 78ac8522e5ee..badd559d9e82 100644 --- a/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php +++ b/typo3/sysext/frontend/Classes/Imaging/GifBuilder.php @@ -346,12 +346,12 @@ class GifBuilder extends GraphicalFunctions // Relative to Environment::getPublicPath() $gifFileName = $this->fileName('assets/images/'); // File exists - if (!file_exists(Environment::getPublicPath() . '/' . $gifFileName)) { + if (!file_exists($gifFileName)) { // Create temporary directory if not done: GeneralUtility::mkdir_deep(Environment::getPublicPath() . '/typo3temp/assets/images/'); // Create file: $this->make(); - $this->output(Environment::getPublicPath() . '/' . $gifFileName); + $this->output($gifFileName); $this->destroy(); } return $gifFileName; diff --git a/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php b/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php index 2a5bdf344256..df2e467f1ce0 100644 --- a/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php +++ b/typo3/sysext/frontend/Tests/Functional/Imaging/GifBuilderTest.php @@ -30,44 +30,6 @@ use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase; */ class GifBuilderTest extends FunctionalTestCase { - /** - * Sets up Environment to simulate Composer mode and a cli request - */ - protected function simulateCliRequestInComposerMode(): void - { - Environment::initialize( - Environment::getContext(), - true, - true, - Environment::getProjectPath(), - Environment::getPublicPath() . '/public', - Environment::getVarPath(), - Environment::getConfigPath(), - Environment::getCurrentScript(), - Environment::isWindows() ? 'WINDOWS' : 'UNIX' - ); - } - - /** - * @test - */ - public function buildImageInCommandLineInterfaceAndComposerContext(): void - { - $this->simulateCliRequestInComposerMode(); - - $fileArray = [ - 'XY' => '10,10', - 'format' => 'jpg', - ]; - - $gifBuilder = new GifBuilder(); - $gifBuilder->start($fileArray, []); - $gifFileName = $gifBuilder->gifBuild(); - - self::assertFileDoesNotExist(Environment::getProjectPath() . '/' . $gifFileName); - self::assertFileExists(Environment::getPublicPath() . '/' . $gifFileName); - } - /** * Check hashes of Images overlayed with other images are idempotent * @@ -97,10 +59,8 @@ class GifBuilderTest extends FunctionalTestCase 'quality' => 88, '10' => 'IMAGE', '10.' => [ + 'file.width' => 300, 'file' => $file, - 'file.' => [ - 'width' => 300, - ], ], '30' => 'IMAGE', '30.' => [ -- GitLab