From 811b024f24d63fc98b47962efa20962e21d80082 Mon Sep 17 00:00:00 2001 From: Benni Mack <benni@typo3.org> Date: Tue, 16 Feb 2016 20:09:26 +0100 Subject: [PATCH] [TASK] Remove backPath from compressor Resolves: #73502 Releases: master Change-Id: Ic22688bc426725ff95a414600f740d19a82530ce Reviewed-on: https://review.typo3.org/46725 Reviewed-by: Oliver Hader <oliver.hader@typo3.org> Tested-by: Oliver Hader <oliver.hader@typo3.org> Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> --- .../Classes/Resource/ResourceCompressor.php | 51 +++++-------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/typo3/sysext/core/Classes/Resource/ResourceCompressor.php b/typo3/sysext/core/Classes/Resource/ResourceCompressor.php index f2cdd4bcf7c3..c649109a79f1 100644 --- a/typo3/sysext/core/Classes/Resource/ResourceCompressor.php +++ b/typo3/sysext/core/Classes/Resource/ResourceCompressor.php @@ -40,11 +40,6 @@ class ResourceCompressor */ protected $rootPath = ''; - /** - * @var string - */ - protected $backPath = ''; - /** * gzipped versions are only created if $TYPO3_CONF_VARS[TYPO3_MODE]['compressionLevel'] is set * @@ -154,19 +149,6 @@ class ResourceCompressor } } - /** - * Sets relative back path - * - * @param string $backPath Back path - * @return void - */ - public function setBackPath($backPath) - { - if (is_string($backPath)) { - $this->backPath = $backPath; - } - } - /** * Concatenates the Stylesheet files * @@ -353,7 +335,9 @@ class ResourceCompressor $concatenated = ''; // concatenate all the files together foreach ($filesToInclude as $filename) { - $contents = GeneralUtility::getUrl(GeneralUtility::resolveBackPath($this->rootPath . $filename)); + $filenameAbsolute = GeneralUtility::resolveBackPath($this->rootPath . $filename); + $filename = PathUtility::stripPathSitePrefix($filenameAbsolute); + $contents = GeneralUtility::getUrl($filenameAbsolute); // remove any UTF-8 byte order mark (BOM) from files if (StringUtility::beginsWith($contents, "\xEF\xBB\xBF")) { $contents = substr($contents, 3); @@ -418,8 +402,10 @@ class ResourceCompressor } else { $unique = $filenameAbsolute; } + // make sure it is again the full filename + $filename = PathUtility::stripPathSitePrefix($filenameAbsolute); - $pathinfo = PathUtility::pathinfo($filename); + $pathinfo = PathUtility::pathinfo($filenameAbsolute); $targetFile = $this->targetDirectory . $pathinfo['filename'] . '-' . md5($unique) . '.css'; // only create it, if it doesn't exist, yet if (!file_exists((PATH_site . $targetFile)) || $this->createGzipped && !file_exists((PATH_site . $targetFile . '.gzip'))) { @@ -489,36 +475,28 @@ class ResourceCompressor */ protected function getFilenameFromMainDir($filename) { - // if BACK_PATH is empty return $filename - if (empty($this->backPath)) { - return $filename; - } // if the file exists in the root path, just return the $filename - if (strpos($filename, $this->backPath) === 0) { - $file = str_replace($this->backPath, '', $filename); - if (is_file(GeneralUtility::resolveBackPath($this->rootPath . $file))) { - return $file; - } + if (is_file($this->rootPath . ltrim($filename, '/'))) { + return ltrim($filename, '/'); } // if the file is from a special TYPO3 internal directory, add the missing typo3/ prefix if (is_file(realpath(PATH_site . TYPO3_mainDir . $filename))) { $filename = TYPO3_mainDir . $filename; } // build the file path relatively to the PATH_site - $backPath = str_replace(TYPO3_mainDir, '', $this->backPath); - $file = str_replace($backPath, '', $filename); - if (substr($file, 0, 3) === '../') { - $file = GeneralUtility::resolveBackPath(PATH_typo3 . $file); + if (substr($filename, 0, 3) === '../') { + $file = GeneralUtility::resolveBackPath(PATH_typo3 . $filename); } else { - $file = PATH_site . $file; + $file = PATH_site . ltrim($filename, '/'); } + // check if the file exists, and if so, return the path relative to TYPO3_mainDir if (is_file($file)) { $mainDirDepth = substr_count(TYPO3_mainDir, '/'); return str_repeat('../', $mainDirDepth) . str_replace(PATH_site, '', $file); } // none of above conditions were met, fallback to default behaviour - return substr($filename, strlen($this->backPath)); + return $filename; } /** @@ -548,8 +526,7 @@ class ResourceCompressor */ protected function cssFixRelativeUrlPaths($contents, $oldDir) { - $mainDir = TYPO3_MODE === 'BE' ? TYPO3_mainDir : ''; - $newDir = '../../../' . $mainDir . $oldDir; + $newDir = '../../../' . $oldDir; // Replace "url()" paths if (stripos($contents, 'url') !== false) { $regex = '/url(\\(\\s*["\']?(?!\\/)([^"\']+)["\']?\\s*\\))/iU'; -- GitLab