diff --git a/wire/core/ModuleJS.php b/wire/core/ModuleJS.php index 7647d979..1b8d02da 100644 --- a/wire/core/ModuleJS.php +++ b/wire/core/ModuleJS.php @@ -10,7 +10,7 @@ * * See the Module interface (Module.php) for details about each method. * - * ProcessWire 3.x, Copyright 2022 by Ryan Cramer + * ProcessWire 3.x, Copyright 2023 by Ryan Cramer * https://processwire.com * * This file is licensed under the MIT license @@ -110,23 +110,23 @@ abstract class ModuleJS extends WireData implements Module { $class = $this->className(); $config = $this->wire()->config; + $version = $config->version; + $debug = $config->debug; $file = $config->paths->$class . "$class.css"; if($this->loadStyles && is_file($file)) { - $mtime = filemtime($file); - $this->config->styles->add($config->urls->$class . "$class.css?v=$mtime"); + if($debug) $version = filemtime($file); + $this->config->styles->add($config->urls->$class . "$class.css?v=$version"); } $file = $config->paths->$class . "$class.js"; - $mtime = 0; if($this->loadScripts && is_file($file)) { $minFile = $config->paths->$class . "$class.min.js"; - if(!$config->debug && is_file($minFile)) { - $mtime = filemtime($minFile); - $config->scripts->add($config->urls->$class . "$class.min.js?v=$mtime"); + if(!$debug && is_file($minFile)) { + $config->scripts->add($config->urls->$class . "$class.min.js?v=$version"); } else { - $mtime = filemtime($file); - $config->scripts->add($config->urls->$class . "$class.js?v=$mtime"); + if($debug) $version = filemtime($file); + $config->scripts->add($config->urls->$class . "$class.js?v=$version"); } } @@ -134,10 +134,10 @@ abstract class ModuleJS extends WireData implements Module { foreach($this->requested as $name) { $url = $this->components[$name]; if(strpos($url, '/') === false) { - $mtime = filemtime($config->paths->$class . $url); + if($debug) $version = filemtime($config->paths->$class . $url); $url = $config->urls->$class . $url; } - $url .= "?v=$mtime"; + $url .= "?v=$version"; $config->scripts->add($url); } $this->requested = array(); @@ -167,13 +167,13 @@ abstract class ModuleJS extends WireData implements Module { if($this->initialized) { $url = $this->components[$name]; - $mtime = 0; + $version = $config->version; if(strpos($url, '/') === false) { $file = $config->paths->$class . $url; $url = $config->urls->$class . $url; - $mtime = filemtime($file); + if($config->debug) $version = filemtime($file); } - $config->scripts->add($url . "?v=$mtime"); + $config->scripts->add($url . "?v=$version"); } else { $this->requested[$name] = $name; } @@ -186,4 +186,3 @@ abstract class ModuleJS extends WireData implements Module { public function isSingular() { return true; } public function isAutoload() { return false; } } - diff --git a/wire/core/ModulesFiles.php b/wire/core/ModulesFiles.php index 33ee9969..9af297fc 100644 --- a/wire/core/ModulesFiles.php +++ b/wire/core/ModulesFiles.php @@ -484,27 +484,27 @@ class ModulesFiles extends ModulesClass { $path = $config->paths($class); $url = $config->urls($class); $debug = $config->debug; - $version = 0; + $coreVersion = $config->version; + $moduleVersion = 0; $cnt = 0; foreach(array('styles' => 'css', 'scripts' => 'js') as $type => $ext) { $fileURL = ''; - $modified = 0; $file = "$path$class.$ext"; + $fileVersion = $coreVersion; $minFile = "$path$class.min.$ext"; if(!$debug && is_file($minFile)) { $fileURL = "$url$class.min.$ext"; - $modified = filemtime($minFile); } else if(is_file($file)) { $fileURL = "$url$class.$ext"; - $modified = filemtime($file); + if($debug) $fileVersion = filemtime($file); } if($fileURL) { - if(!$version) { + if(!$moduleVersion) { $info = $this->modules->info->getModuleInfo($module, array('verbose' => false)); - $version = (int) isset($info['version']) ? $info['version'] : 0; + $moduleVersion = (int) isset($info['version']) ? $info['version'] : 0; } - $config->$type->add("$fileURL?v=$version-$modified"); + $config->$type->add("$fileURL?v=$moduleVersion-$fileVersion"); $cnt++; } } diff --git a/wire/modules/AdminTheme/AdminThemeDefault/default.php b/wire/modules/AdminTheme/AdminThemeDefault/default.php index cddb1e56..f7bde84a 100644 --- a/wire/modules/AdminTheme/AdminThemeDefault/default.php +++ b/wire/modules/AdminTheme/AdminThemeDefault/default.php @@ -29,7 +29,7 @@ if($user->hasPermission('page-edit')) { $searchForm = ''; } -$version = $adminTheme->version . 'l'; +$version = $config->version; $config->styles->prepend($config->urls->root . "wire/templates-admin/styles/AdminTheme.css?v=$version"); $config->styles->prepend($config->urls->adminTemplates . "styles/" . ($adminTheme->colors ? "main-$adminTheme->colors" : "main-classic") . ".css?v=$version"); diff --git a/wire/modules/AdminTheme/AdminThemeReno/default.php b/wire/modules/AdminTheme/AdminThemeReno/default.php index 7e380040..5f7ebec5 100644 --- a/wire/modules/AdminTheme/AdminThemeReno/default.php +++ b/wire/modules/AdminTheme/AdminThemeReno/default.php @@ -20,7 +20,7 @@ if(!defined("PROCESSWIRE")) die(); if(!isset($content)) $content = ''; -$version = $adminTheme->version . 'm'; +$version = $config->version; $ext = $config->debug ? "js" : "min.js"; // Search form diff --git a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikitCss.php b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikitCss.php index 102e7955..414ccd2e 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikitCss.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/AdminThemeUikitCss.php @@ -173,7 +173,7 @@ class AdminThemeUikitCss extends WireData { $file = $this->defaultCssFile; $path = $config->paths($this->adminTheme) . $file; if($getPath) return $path; - $v = filemtime($path); + $v = $config->debug ? filemtime($path) : $config->version; $url = $config->urls($this->adminTheme) . "$file?v=$v" ; return $url; } @@ -264,4 +264,4 @@ class AdminThemeUikitCss extends WireData { return $defaultFile; } -} \ No newline at end of file +} diff --git a/wire/modules/AdminTheme/AdminThemeUikit/_head.php b/wire/modules/AdminTheme/AdminThemeUikit/_head.php index 8b51f2fc..d6550bed 100644 --- a/wire/modules/AdminTheme/AdminThemeUikit/_head.php +++ b/wire/modules/AdminTheme/AdminThemeUikit/_head.php @@ -14,7 +14,7 @@ if(!defined("PROCESSWIRE")) die(); /** @var Paths $urls */ /** @var string $layout */ -$version = $adminTheme->version . 'h'; +$version = $config->version; $rootUrl = $config->urls->root; $themeUrl = $adminTheme->url(); $styles = $config->styles; diff --git a/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module b/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module index 6a143f9a..cf57bc8c 100644 --- a/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module +++ b/wire/modules/Inputfield/InputfieldAsmSelect/InputfieldAsmSelect.module @@ -220,7 +220,7 @@ class InputfieldAsmSelect extends InputfieldSelectMultiple implements Inputfield // require javascript and css $class = $this->className(); $info = self::getModuleInfo(); - $ver = $info['version']; + $ver = $config->version . '-' . $info['version']; $jsfile = $config->debug ? 'jquery.asmselect.js' : 'jquery.asmselect.min.js'; $url = $config->urls($class); diff --git a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.module b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.module index 3b78c0ea..94b2cafc 100755 --- a/wire/modules/Inputfield/InputfieldImage/InputfieldImage.module +++ b/wire/modules/Inputfield/InputfieldImage/InputfieldImage.module @@ -215,7 +215,7 @@ class InputfieldImage extends InputfieldFile implements InputfieldItemList, Inpu $thisURL = $config->urls('InputfieldImage'); $jsExt = $config->debug ? "js" : "min.js"; $config->scripts->add($thisURL . "piexif.$jsExt"); - $config->scripts->add($thisURL . "PWImageResizer.$jsExt?v=$moduleInfo[version]"); + $config->scripts->add($thisURL . "PWImageResizer.$jsExt?v={$config->version}-$moduleInfo[version]"); $maxSize = str_replace(',', '.', $this->maxSize); $quality = str_replace(',', '.', (float) ($this->clientQuality / 100)); $this->wrapAttr('data-resize', "$this->maxWidth;$this->maxHeight;$maxSize;$quality"); diff --git a/wire/modules/LanguageSupport/LanguageTabs.module b/wire/modules/LanguageSupport/LanguageTabs.module index 3c5c4e03..d5e41e24 100644 --- a/wire/modules/LanguageSupport/LanguageTabs.module +++ b/wire/modules/LanguageSupport/LanguageTabs.module @@ -142,10 +142,10 @@ class LanguageTabs extends WireData implements Module, ConfigurableModule { } if($settings['loadStyles']) { - $config->styles->add($config->urls('LanguageTabs') . "LanguageTabs.css?v=$info[version]"); + $config->styles->add($config->urls('LanguageTabs') . "LanguageTabs.css?v=$config->version-$info[version]"); } if($settings['loadScripts']) { - $config->scripts->add($config->urls('LanguageTabs') . "LanguageTabs.js?v=$info[version]"); + $config->scripts->add($config->urls('LanguageTabs') . "LanguageTabs.js?v=$config->version-$info[version]"); } /** @var JqueryCore $jQueryCore */ diff --git a/wire/modules/PagePathHistory.module b/wire/modules/PagePathHistory.module index 6429b4ed..368db55b 100644 --- a/wire/modules/PagePathHistory.module +++ b/wire/modules/PagePathHistory.module @@ -167,7 +167,7 @@ class PagePathHistory extends WireData implements Module, ConfigurableModule { $database = $this->wire()->database; $modules = $this->wire()->modules; $table = self::dbTableName; - $path = $sanitizer->pagePathName('/' . trim($path, '/'), Sanitizer::toAscii); + $path = $sanitizer->pagePathName('/' . trim("$path", '/'), Sanitizer::toAscii); $selector = "path=$path"; if($modules->isInstalled('PagePaths')) $selector .= ", id!=$page->id"; diff --git a/wire/modules/Process/ProcessTemplate/ProcessTemplate.module b/wire/modules/Process/ProcessTemplate/ProcessTemplate.module index fae1a3ac..46433936 100644 --- a/wire/modules/Process/ProcessTemplate/ProcessTemplate.module +++ b/wire/modules/Process/ProcessTemplate/ProcessTemplate.module @@ -767,7 +767,7 @@ class ProcessTemplate extends Process implements ConfigurableModule { } $min = $config->debug ? '' : '.min'; - $config->scripts->add($config->urls('ProcessTemplate') . "ProcessTemplateFieldCreator$min.js?v=1"); + $config->scripts->add($config->urls('ProcessTemplate') . "ProcessTemplateFieldCreator$min.js?v=$config->version"); $label = $this->template->getLabel(); if(!$label) $label = $this->template->name; @@ -3931,4 +3931,3 @@ class ProcessTemplate extends Process implements ConfigurableModule { public function getModuleConfigInputfields(InputfieldWrapper $inputfields) { } } -