Browse Source

Refer to relative path instead of absolute path

There is no need to refer to the absolute path here if we can use the relative one.

Conflicts:
	lib/private/templatelayout.php
tags/v8.0.0alpha1
Lukas Reschke 9 years ago
parent
commit
7b94c7f9c1
1 changed files with 21 additions and 8 deletions
  1. 21
    8
      lib/private/templatelayout.php

+ 21
- 8
lib/private/templatelayout.php View File

@@ -157,7 +157,7 @@ class OC_TemplateLayout extends OC_Template {

public function generateAssets() {
$jsFiles = self::findJavascriptFiles(OC_Util::$scripts);
$jsHash = self::hashScriptNames($jsFiles);
$jsHash = self::hashFileNames($jsFiles);

if (!file_exists("assets/$jsHash.js")) {
$jsFiles = array_map(function ($item) {
@@ -179,7 +179,7 @@ class OC_TemplateLayout extends OC_Template {
}

$cssFiles = self::findStylesheetFiles(OC_Util::$styles);
$cssHash = self::hashScriptNames($cssFiles);
$cssHash = self::hashFileNames($cssFiles);

if (!file_exists("assets/$cssHash.css")) {
$cssFiles = array_map(function ($item) {
@@ -210,17 +210,30 @@ class OC_TemplateLayout extends OC_Template {
$this->append('cssfiles', OC_Helper::linkTo('assets', "$cssHash.css"));
}

/**
* Converts the absolute filepath to a relative path from \OC::$SERVERROOT
* @param string $filePath Absolute path
* @return string Relative path
* @throws Exception If $filePath is not under \OC::$SERVERROOT
*/
public static function convertToRelativePath($filePath) {
$relativePath = explode(\OC::$SERVERROOT, $filePath);
if(count($relativePath) !== 2) {
throw new \Exception('$filePath is not under the \OC::$SERVERROOT');
}

return $relativePath[1];
}

/**
* @param array $files
* @return string
*/
private static function hashScriptNames($files) {

$files = array_map(function ($item) {
$root = $item[0];
$file = $item[2];
return $root . '/' . $file;
}, $files);
private static function hashFileNames($files) {
foreach($files as $i => $file) {
$files[$i] = self::convertToRelativePath($file[0]).'/'.$file[2];
}

sort($files);
// include the apps' versions hash to invalidate the cached assets

Loading…
Cancel
Save