From 1fcf7453d95ecfad1d49c36d50fdb58f5f357dc0 Mon Sep 17 00:00:00 2001 From: Francesco Boes Date: Wed, 29 May 2024 09:27:48 +0200 Subject: [PATCH] Added filemtime to merged JS/CSS hash calculation algorithm (#4004) Co-authored-by: Francesco Boes Co-authored-by: Fabrizio Balliano --- .../core/Mage/Core/Model/Design/Package.php | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/code/core/Mage/Core/Model/Design/Package.php b/app/code/core/Mage/Core/Model/Design/Package.php index c10a40af2d8..6ae0356fea1 100644 --- a/app/code/core/Mage/Core/Model/Design/Package.php +++ b/app/code/core/Mage/Core/Model/Design/Package.php @@ -684,7 +684,15 @@ public static function getPackageByUserAgent(array $rules, $regexpsConfigPath = */ public function getMergedJsUrl($files) { - $targetFilename = md5(implode(',', $files)) . '.js'; + $newestTimestamp = 0; + foreach ($files as $file) { + $filemtime = filemtime($file); + if ($filemtime > $newestTimestamp) { + $newestTimestamp = $filemtime; + } + } + + $targetFilename = md5(implode(',', $files) . "|{$newestTimestamp}") . '.js'; $targetDir = $this->_initMergerDir('js'); if (!$targetDir) { return ''; @@ -720,7 +728,15 @@ public function getMergedCssUrl($files) } // merge into target file - $targetFilename = md5(implode(',', $files) . "|{$hostname}|{$port}") . '.css'; + $newestTimestamp = 0; + foreach ($files as $file) { + $filemtime = filemtime($file); + if ($filemtime > $newestTimestamp) { + $newestTimestamp = $filemtime; + } + } + + $targetFilename = md5(implode(',', $files) . "|{$hostname}|{$port}|{$newestTimestamp}") . '.css'; $mergeFilesResult = $this->_mergeFiles( $files, $targetDir . DS . $targetFilename,