Merge pull request #8611 from nextcloud/css-file-suffix-with-apps-versions-backport
[stable12] Use apps versions to generate suffix when possible
This commit is contained in:
commit
66cba3e01b
|
@ -131,7 +131,7 @@ class TemplateLayout extends \OC_Template {
|
||||||
if (empty(self::$versionHash)) {
|
if (empty(self::$versionHash)) {
|
||||||
$v = \OC_App::getAppVersions();
|
$v = \OC_App::getAppVersions();
|
||||||
$v['core'] = implode('.', \OCP\Util::getVersion());
|
$v['core'] = implode('.', \OCP\Util::getVersion());
|
||||||
self::$versionHash = md5(implode(',', $v));
|
self::$versionHash = substr(md5(implode(',', $v)), 0, 8);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self::$versionHash = md5('not installed');
|
self::$versionHash = md5('not installed');
|
||||||
|
@ -194,16 +194,40 @@ class TemplateLayout extends \OC_Template {
|
||||||
if (substr($file, -strlen('print.css')) === 'print.css') {
|
if (substr($file, -strlen('print.css')) === 'print.css') {
|
||||||
$this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
|
$this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
|
||||||
} else {
|
} else {
|
||||||
$this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
|
$this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix($web, $file) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getVersionHashSuffix() {
|
/**
|
||||||
if(\OC::$server->getConfig()->getSystemValue('debug', false)) {
|
* @param string $path
|
||||||
|
* @param string $file
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function getVersionHashSuffix($path = false, $file = false) {
|
||||||
|
if (\OC::$server->getConfig()->getSystemValue('debug', false)) {
|
||||||
// allows chrome workspace mapping in debug mode
|
// allows chrome workspace mapping in debug mode
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
$v = \OC_App::getAppVersions();
|
||||||
|
|
||||||
|
// Try the webroot path for a match
|
||||||
|
if ($path !== false && $path !== '') {
|
||||||
|
$appName = $this->getAppNamefromPath($path);
|
||||||
|
if(array_key_exists($appName, $v)) {
|
||||||
|
$appVersion = $v[$appName];
|
||||||
|
return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// fallback to the file path instead
|
||||||
|
if ($file !== false && $file !== '') {
|
||||||
|
$appName = $this->getAppNamefromPath($file);
|
||||||
|
if(array_key_exists($appName, $v)) {
|
||||||
|
$appVersion = $v[$appName];
|
||||||
|
return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->config->getSystemValue('installed', false) && \OC::$server->getAppManager()->isInstalled('theming')) {
|
if ($this->config->getSystemValue('installed', false) && \OC::$server->getAppManager()->isInstalled('theming')) {
|
||||||
return '?v=' . self::$versionHash . '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
|
return '?v=' . self::$versionHash . '-' . $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||||
}
|
}
|
||||||
|
@ -235,6 +259,23 @@ class TemplateLayout extends \OC_Template {
|
||||||
return $locator->getResources();
|
return $locator->getResources();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $path
|
||||||
|
* @return string|boolean
|
||||||
|
*/
|
||||||
|
public function getAppNamefromPath($path) {
|
||||||
|
if ($path !== '' && is_string($path)) {
|
||||||
|
$pathParts = explode('/', $path);
|
||||||
|
if ($pathParts[0] === 'css') {
|
||||||
|
// This is a scss request
|
||||||
|
return $pathParts[1];
|
||||||
|
}
|
||||||
|
return end($pathParts);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $scripts
|
* @param array $scripts
|
||||||
* @return array
|
* @return array
|
||||||
|
|
Loading…
Reference in New Issue