Completed
Pull Request — master (#5070)
by Julius
16:07
created
apps/theming/lib/Util.php 1 patch
Indentation   +178 added lines, -178 removed lines patch added patch discarded remove patch
@@ -33,183 +33,183 @@
 block discarded – undo
33 33
 
34 34
 class Util {
35 35
 
36
-	/** @var IConfig */
37
-	private $config;
38
-
39
-	/** @var IAppManager */
40
-	private $appManager;
41
-
42
-	/** @var IAppData */
43
-	private $appData;
44
-
45
-	/**
46
-	 * Util constructor.
47
-	 *
48
-	 * @param IConfig $config
49
-	 * @param IAppManager $appManager
50
-	 * @param IAppData $appData
51
-	 */
52
-	public function __construct(IConfig $config, IAppManager $appManager, IAppData $appData) {
53
-		$this->config = $config;
54
-		$this->appManager = $appManager;
55
-		$this->appData = $appData;
56
-	}
57
-
58
-	/**
59
-	 * @param string $color rgb color value
60
-	 * @return bool
61
-	 */
62
-	public function invertTextColor($color) {
63
-		$l = $this->calculateLuminance($color);
64
-		if($l>0.5) {
65
-			return true;
66
-		} else {
67
-			return false;
68
-		}
69
-	}
70
-
71
-	/**
72
-	 * get color for on-page elements:
73
-	 * theme color by default, grey if theme color is to bright
74
-	 * @param $color
75
-	 * @return string
76
-	 */
77
-	public function elementColor($color) {
78
-		$l = $this->calculateLuminance($color);
79
-		if($l>0.8) {
80
-			return '#555555';
81
-		} else {
82
-			return $color;
83
-		}
84
-	}
85
-
86
-	/**
87
-	 * @param string $color rgb color value
88
-	 * @return float
89
-	 */
90
-	public function calculateLuminance($color) {
91
-		$hex = preg_replace("/[^0-9A-Fa-f]/", '', $color);
92
-		if (strlen($hex) === 3) {
93
-			$hex = $hex{0} . $hex{0} . $hex{1} . $hex{1} . $hex{2} . $hex{2};
94
-		}
95
-		if (strlen($hex) !== 6) {
96
-			return 0;
97
-		}
98
-		$r = hexdec(substr($hex, 0, 2));
99
-		$g = hexdec(substr($hex, 2, 2));
100
-		$b = hexdec(substr($hex, 4, 2));
101
-		return (0.299 * $r + 0.587 * $g + 0.114 * $b)/255;
102
-	}
103
-
104
-	/**
105
-	 * @param $color
106
-	 * @return string base64 encoded radio button svg
107
-	 */
108
-	public function generateRadioButton($color) {
109
-		$radioButtonIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16">' .
110
-			'<path d="M8 1a7 7 0 0 0-7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0-7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6zm0 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8z" fill="'.$color.'"/></svg>';
111
-		return base64_encode($radioButtonIcon);
112
-	}
113
-
114
-
115
-	/**
116
-	 * @param $app string app name
117
-	 * @return string|ISimpleFile path to app icon / file of logo
118
-	 */
119
-	public function getAppIcon($app) {
120
-		$app = str_replace(array('\0', '/', '\\', '..'), '', $app);
121
-		try {
122
-			$appPath = $this->appManager->getAppPath($app);
123
-			$icon = $appPath . '/img/' . $app . '.svg';
124
-			if (file_exists($icon)) {
125
-				return $icon;
126
-			}
127
-			$icon = $appPath . '/img/app.svg';
128
-			if (file_exists($icon)) {
129
-				return $icon;
130
-			}
131
-		} catch (AppPathNotFoundException $e) {}
132
-
133
-		if ($this->config->getAppValue('theming', 'logoMime', '') !== '') {
134
-			$logoFile = null;
135
-			try {
136
-				$folder = $this->appData->getFolder('images');
137
-				if ($folder !== null) {
138
-					return $folder->getFile('logo');
139
-				}
140
-			} catch (NotFoundException $e) {}
141
-		}
142
-		return \OC::$SERVERROOT . '/core/img/logo.svg';
143
-	}
144
-
145
-	/**
146
-	 * @param $app string app name
147
-	 * @param $image string relative path to image in app folder
148
-	 * @return string|false absolute path to image
149
-	 */
150
-	public function getAppImage($app, $image) {
151
-		$app = str_replace(array('\0', '/', '\\', '..'), '', $app);
152
-		$image = str_replace(array('\0', '\\', '..'), '', $image);
153
-		if ($app === "core") {
154
-			$icon = \OC::$SERVERROOT . '/core/img/' . $image;
155
-			if (file_exists($icon)) {
156
-				return $icon;
157
-			}
158
-		}
159
-
160
-		try {
161
-			$appPath = $this->appManager->getAppPath($app);
162
-		} catch (AppPathNotFoundException $e) {
163
-			return false;
164
-		}
165
-
166
-		$icon = $appPath . '/img/' . $image;
167
-		if (file_exists($icon)) {
168
-			return $icon;
169
-		}
170
-		$icon = $appPath . '/img/' . $image . '.svg';
171
-		if (file_exists($icon)) {
172
-			return $icon;
173
-		}
174
-		$icon = $appPath . '/img/' . $image . '.png';
175
-		if (file_exists($icon)) {
176
-			return $icon;
177
-		}
178
-		$icon = $appPath . '/img/' . $image . '.gif';
179
-		if (file_exists($icon)) {
180
-			return $icon;
181
-		}
182
-		$icon = $appPath . '/img/' . $image . '.jpg';
183
-		if (file_exists($icon)) {
184
-			return $icon;
185
-		}
186
-
187
-		return false;
188
-	}
189
-
190
-	/**
191
-	 * replace default color with a custom one
192
-	 *
193
-	 * @param $svg string content of a svg file
194
-	 * @param $color string color to match
195
-	 * @return string
196
-	 */
197
-	public function colorizeSvg($svg, $color) {
198
-		$svg = preg_replace('/#0082c9/i', $color, $svg);
199
-		return $svg;
200
-	}
201
-
202
-	/**
203
-	 * Check if a custom theme is set in the server configuration
204
-	 * 
205
-	 * @return bool
206
-	 */
207
-	public function isAlreadyThemed() {
208
-		$theme = $this->config->getSystemValue('theme', '');
209
-		if ($theme !== '') {
210
-			return true;
211
-		}
212
-		return false;
213
-	}
36
+    /** @var IConfig */
37
+    private $config;
38
+
39
+    /** @var IAppManager */
40
+    private $appManager;
41
+
42
+    /** @var IAppData */
43
+    private $appData;
44
+
45
+    /**
46
+     * Util constructor.
47
+     *
48
+     * @param IConfig $config
49
+     * @param IAppManager $appManager
50
+     * @param IAppData $appData
51
+     */
52
+    public function __construct(IConfig $config, IAppManager $appManager, IAppData $appData) {
53
+        $this->config = $config;
54
+        $this->appManager = $appManager;
55
+        $this->appData = $appData;
56
+    }
57
+
58
+    /**
59
+     * @param string $color rgb color value
60
+     * @return bool
61
+     */
62
+    public function invertTextColor($color) {
63
+        $l = $this->calculateLuminance($color);
64
+        if($l>0.5) {
65
+            return true;
66
+        } else {
67
+            return false;
68
+        }
69
+    }
70
+
71
+    /**
72
+     * get color for on-page elements:
73
+     * theme color by default, grey if theme color is to bright
74
+     * @param $color
75
+     * @return string
76
+     */
77
+    public function elementColor($color) {
78
+        $l = $this->calculateLuminance($color);
79
+        if($l>0.8) {
80
+            return '#555555';
81
+        } else {
82
+            return $color;
83
+        }
84
+    }
85
+
86
+    /**
87
+     * @param string $color rgb color value
88
+     * @return float
89
+     */
90
+    public function calculateLuminance($color) {
91
+        $hex = preg_replace("/[^0-9A-Fa-f]/", '', $color);
92
+        if (strlen($hex) === 3) {
93
+            $hex = $hex{0} . $hex{0} . $hex{1} . $hex{1} . $hex{2} . $hex{2};
94
+        }
95
+        if (strlen($hex) !== 6) {
96
+            return 0;
97
+        }
98
+        $r = hexdec(substr($hex, 0, 2));
99
+        $g = hexdec(substr($hex, 2, 2));
100
+        $b = hexdec(substr($hex, 4, 2));
101
+        return (0.299 * $r + 0.587 * $g + 0.114 * $b)/255;
102
+    }
103
+
104
+    /**
105
+     * @param $color
106
+     * @return string base64 encoded radio button svg
107
+     */
108
+    public function generateRadioButton($color) {
109
+        $radioButtonIcon = '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16">' .
110
+            '<path d="M8 1a7 7 0 0 0-7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0-7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1-6 6 6 6 0 0 1-6-6 6 6 0 0 1 6-6zm0 2a4 4 0 1 0 0 8 4 4 0 0 0 0-8z" fill="'.$color.'"/></svg>';
111
+        return base64_encode($radioButtonIcon);
112
+    }
113
+
114
+
115
+    /**
116
+     * @param $app string app name
117
+     * @return string|ISimpleFile path to app icon / file of logo
118
+     */
119
+    public function getAppIcon($app) {
120
+        $app = str_replace(array('\0', '/', '\\', '..'), '', $app);
121
+        try {
122
+            $appPath = $this->appManager->getAppPath($app);
123
+            $icon = $appPath . '/img/' . $app . '.svg';
124
+            if (file_exists($icon)) {
125
+                return $icon;
126
+            }
127
+            $icon = $appPath . '/img/app.svg';
128
+            if (file_exists($icon)) {
129
+                return $icon;
130
+            }
131
+        } catch (AppPathNotFoundException $e) {}
132
+
133
+        if ($this->config->getAppValue('theming', 'logoMime', '') !== '') {
134
+            $logoFile = null;
135
+            try {
136
+                $folder = $this->appData->getFolder('images');
137
+                if ($folder !== null) {
138
+                    return $folder->getFile('logo');
139
+                }
140
+            } catch (NotFoundException $e) {}
141
+        }
142
+        return \OC::$SERVERROOT . '/core/img/logo.svg';
143
+    }
144
+
145
+    /**
146
+     * @param $app string app name
147
+     * @param $image string relative path to image in app folder
148
+     * @return string|false absolute path to image
149
+     */
150
+    public function getAppImage($app, $image) {
151
+        $app = str_replace(array('\0', '/', '\\', '..'), '', $app);
152
+        $image = str_replace(array('\0', '\\', '..'), '', $image);
153
+        if ($app === "core") {
154
+            $icon = \OC::$SERVERROOT . '/core/img/' . $image;
155
+            if (file_exists($icon)) {
156
+                return $icon;
157
+            }
158
+        }
159
+
160
+        try {
161
+            $appPath = $this->appManager->getAppPath($app);
162
+        } catch (AppPathNotFoundException $e) {
163
+            return false;
164
+        }
165
+
166
+        $icon = $appPath . '/img/' . $image;
167
+        if (file_exists($icon)) {
168
+            return $icon;
169
+        }
170
+        $icon = $appPath . '/img/' . $image . '.svg';
171
+        if (file_exists($icon)) {
172
+            return $icon;
173
+        }
174
+        $icon = $appPath . '/img/' . $image . '.png';
175
+        if (file_exists($icon)) {
176
+            return $icon;
177
+        }
178
+        $icon = $appPath . '/img/' . $image . '.gif';
179
+        if (file_exists($icon)) {
180
+            return $icon;
181
+        }
182
+        $icon = $appPath . '/img/' . $image . '.jpg';
183
+        if (file_exists($icon)) {
184
+            return $icon;
185
+        }
186
+
187
+        return false;
188
+    }
189
+
190
+    /**
191
+     * replace default color with a custom one
192
+     *
193
+     * @param $svg string content of a svg file
194
+     * @param $color string color to match
195
+     * @return string
196
+     */
197
+    public function colorizeSvg($svg, $color) {
198
+        $svg = preg_replace('/#0082c9/i', $color, $svg);
199
+        return $svg;
200
+    }
201
+
202
+    /**
203
+     * Check if a custom theme is set in the server configuration
204
+     * 
205
+     * @return bool
206
+     */
207
+    public function isAlreadyThemed() {
208
+        $theme = $this->config->getSystemValue('theme', '');
209
+        if ($theme !== '') {
210
+            return true;
211
+        }
212
+        return false;
213
+    }
214 214
 
215 215
 }
Please login to merge, or discard this patch.
apps/theming/appinfo/app.php 2 patches
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -28,34 +28,34 @@
 block discarded – undo
28 28
 $util = $app->getContainer()->query(\OCA\Theming\Util::class);
29 29
 if(!$util->isAlreadyThemed()) {
30 30
 
31
-	$app->getContainer()->registerCapability(\OCA\Theming\Capabilities::class);
31
+    $app->getContainer()->registerCapability(\OCA\Theming\Capabilities::class);
32 32
 
33
-	$linkToCSS = \OC::$server->getURLGenerator()->linkToRoute(
34
-		'theming.Theming.getStylesheet',
35
-		[
36
-			'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
37
-		]
38
-	);
39
-	\OCP\Util::addHeader(
40
-		'link',
41
-		[
42
-			'rel' => 'stylesheet',
43
-			'href' => $linkToCSS,
44
-		]
45
-	);
33
+    $linkToCSS = \OC::$server->getURLGenerator()->linkToRoute(
34
+        'theming.Theming.getStylesheet',
35
+        [
36
+            'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
37
+        ]
38
+    );
39
+    \OCP\Util::addHeader(
40
+        'link',
41
+        [
42
+            'rel' => 'stylesheet',
43
+            'href' => $linkToCSS,
44
+        ]
45
+    );
46 46
 
47
-	$linkToJs = \OC::$server->getURLGenerator()->linkToRoute(
48
-		'theming.Theming.getJavascript',
49
-		[
50
-			'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
51
-		]
52
-	);
53
-	\OCP\Util::addHeader(
54
-		'script',
55
-		[
56
-			'src' => $linkToJs,
57
-			'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce()
58
-		], ''
59
-	);
47
+    $linkToJs = \OC::$server->getURLGenerator()->linkToRoute(
48
+        'theming.Theming.getJavascript',
49
+        [
50
+            'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
51
+        ]
52
+    );
53
+    \OCP\Util::addHeader(
54
+        'script',
55
+        [
56
+            'src' => $linkToJs,
57
+            'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce()
58
+        ], ''
59
+    );
60 60
 
61 61
 }
62 62
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@
 block discarded – undo
26 26
 $app = new \OCP\AppFramework\App('theming');
27 27
 /** @var \OCA\Theming\Util $util */
28 28
 $util = $app->getContainer()->query(\OCA\Theming\Util::class);
29
-if(!$util->isAlreadyThemed()) {
29
+if (!$util->isAlreadyThemed()) {
30 30
 
31 31
 	$app->getContainer()->registerCapability(\OCA\Theming\Capabilities::class);
32 32
 
Please login to merge, or discard this patch.
lib/private/URLGenerator.php 2 patches
Indentation   +195 added lines, -195 removed lines patch added patch discarded remove patch
@@ -42,199 +42,199 @@
 block discarded – undo
42 42
  * Class to generate URLs
43 43
  */
44 44
 class URLGenerator implements IURLGenerator {
45
-	/** @var IConfig */
46
-	private $config;
47
-	/** @var ICacheFactory */
48
-	private $cacheFactory;
49
-
50
-	/**
51
-	 * @param IConfig $config
52
-	 * @param ICacheFactory $cacheFactory
53
-	 */
54
-	public function __construct(IConfig $config,
55
-								ICacheFactory $cacheFactory) {
56
-		$this->config = $config;
57
-		$this->cacheFactory = $cacheFactory;
58
-	}
59
-
60
-	/**
61
-	 * Creates an url using a defined route
62
-	 * @param string $route
63
-	 * @param array $parameters args with param=>value, will be appended to the returned url
64
-	 * @return string the url
65
-	 *
66
-	 * Returns a url to the given route.
67
-	 */
68
-	public function linkToRoute($route, $parameters = array()) {
69
-		// TODO: mock router
70
-		$urlLinkTo = \OC::$server->getRouter()->generate($route, $parameters);
71
-		return $urlLinkTo;
72
-	}
73
-
74
-	/**
75
-	 * Creates an absolute url using a defined route
76
-	 * @param string $routeName
77
-	 * @param array $arguments args with param=>value, will be appended to the returned url
78
-	 * @return string the url
79
-	 *
80
-	 * Returns an absolute url to the given route.
81
-	 */
82
-	public function linkToRouteAbsolute($routeName, $arguments = array()) {
83
-		return $this->getAbsoluteURL($this->linkToRoute($routeName, $arguments));
84
-	}
85
-
86
-	/**
87
-	 * Creates an url
88
-	 * @param string $app app
89
-	 * @param string $file file
90
-	 * @param array $args array with param=>value, will be appended to the returned url
91
-	 *    The value of $args will be urlencoded
92
-	 * @return string the url
93
-	 *
94
-	 * Returns a url to the given app and file.
95
-	 */
96
-	public function linkTo( $app, $file, $args = array() ) {
97
-		$frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true');
98
-
99
-		if( $app != '' ) {
100
-			$app_path = \OC_App::getAppPath($app);
101
-			// Check if the app is in the app folder
102
-			if ($app_path && file_exists($app_path . '/' . $file)) {
103
-				if (substr($file, -3) == 'php') {
104
-
105
-					$urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app;
106
-					if ($frontControllerActive) {
107
-						$urlLinkTo = \OC::$WEBROOT . '/apps/' . $app;
108
-					}
109
-					$urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
110
-				} else {
111
-					$urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file;
112
-				}
113
-			} else {
114
-				$urlLinkTo = \OC::$WEBROOT . '/' . $app . '/' . $file;
115
-			}
116
-		} else {
117
-			if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) {
118
-				$urlLinkTo = \OC::$WEBROOT . '/core/' . $file;
119
-			} else {
120
-				if ($frontControllerActive && $file === 'index.php') {
121
-					$urlLinkTo = \OC::$WEBROOT . '/';
122
-				} else {
123
-					$urlLinkTo = \OC::$WEBROOT . '/' . $file;
124
-				}
125
-			}
126
-		}
127
-
128
-		if ($args && $query = http_build_query($args, '', '&')) {
129
-			$urlLinkTo .= '?' . $query;
130
-		}
131
-
132
-		return $urlLinkTo;
133
-	}
134
-
135
-	/**
136
-	 * Creates path to an image
137
-	 * @param string $app app
138
-	 * @param string $image image name
139
-	 * @throws \RuntimeException If the image does not exist
140
-	 * @return string the url
141
-	 *
142
-	 * Returns the path to the image.
143
-	 */
144
-	public function imagePath($app, $image) {
145
-		$cache = $this->cacheFactory->create('imagePath');
146
-		$cacheKey = $app.'-'.$image;
147
-		if($key = $cache->get($cacheKey)) {
148
-			return $key;
149
-		}
150
-
151
-		// Read the selected theme from the config file
152
-		$theme = \OC_Util::getTheme();
153
-
154
-		//if a theme has a png but not an svg always use the png
155
-		$basename = substr(basename($image),0,-4);
156
-
157
-		$appPath = \OC_App::getAppPath($app);
158
-
159
-		// Check if the app is in the app folder
160
-		$path = '';
161
-		$themingEnabled = $this->config->getSystemValue('installed', false) && \OCP\App::isEnabled('theming') && \OC_App::isAppLoaded('theming');
162
-		if (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
163
-			$path = \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
164
-		} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.svg")
165
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.png")) {
166
-			$path =  \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$basename.png";
167
-		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$image")) {
168
-			$path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$image";
169
-		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.svg")
170
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.png"))) {
171
-			$path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$basename.png";
172
-		} elseif (file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$image")) {
173
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$image";
174
-		} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.svg")
175
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.png")) {
176
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
177
-		} elseif($themingEnabled && $image === "favicon.ico" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
178
-			$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
179
-			if($app==="") { $app = "core"; }
180
-			$path = $this->linkToRoute('theming.Icon.getFavicon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
181
-		} elseif($themingEnabled && $image === "favicon-touch.png" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
182
-			$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
183
-			if($app==="") { $app = "core"; }
184
-			$path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
185
-		} elseif ($appPath && file_exists($appPath . "/img/$image")) {
186
-			$path =  \OC_App::getAppWebPath($app) . "/img/$image";
187
-		} elseif ($appPath && !file_exists($appPath . "/img/$basename.svg")
188
-			&& file_exists($appPath . "/img/$basename.png")) {
189
-			$path =  \OC_App::getAppWebPath($app) . "/img/$basename.png";
190
-		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/$app/img/$image")) {
191
-			$path =  \OC::$WEBROOT . "/$app/img/$image";
192
-		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/$app/img/$basename.svg")
193
-				&& file_exists(\OC::$SERVERROOT . "/$app/img/$basename.png"))) {
194
-			$path =  \OC::$WEBROOT . "/$app/img/$basename.png";
195
-		} elseif (file_exists(\OC::$SERVERROOT . "/core/img/$image")) {
196
-			$path =  \OC::$WEBROOT . "/core/img/$image";
197
-		} elseif (!file_exists(\OC::$SERVERROOT . "/core/img/$basename.svg")
198
-			&& file_exists(\OC::$SERVERROOT . "/core/img/$basename.png")) {
199
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
200
-		}
201
-
202
-		if($path !== '') {
203
-			$cache->set($cacheKey, $path);
204
-			return $path;
205
-		} else {
206
-			throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT);
207
-		}
208
-	}
209
-
210
-
211
-	/**
212
-	 * Makes an URL absolute
213
-	 * @param string $url the url in the ownCloud host
214
-	 * @return string the absolute version of the url
215
-	 */
216
-	public function getAbsoluteURL($url) {
217
-		$separator = $url[0] === '/' ? '' : '/';
218
-
219
-		if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
220
-			return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/');
221
-		}
222
-
223
-		// The ownCloud web root can already be prepended.
224
-		$webRoot = substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT
225
-			? ''
226
-			: \OC::$WEBROOT;
227
-
228
-		$request = \OC::$server->getRequest();
229
-		return $request->getServerProtocol() . '://' . $request->getServerHost() . $webRoot . $separator . $url;
230
-	}
231
-
232
-	/**
233
-	 * @param string $key
234
-	 * @return string url to the online documentation
235
-	 */
236
-	public function linkToDocs($key) {
237
-		$theme = \OC::$server->getThemingDefaults();
238
-		return $theme->buildDocLinkToKey($key);
239
-	}
45
+    /** @var IConfig */
46
+    private $config;
47
+    /** @var ICacheFactory */
48
+    private $cacheFactory;
49
+
50
+    /**
51
+     * @param IConfig $config
52
+     * @param ICacheFactory $cacheFactory
53
+     */
54
+    public function __construct(IConfig $config,
55
+                                ICacheFactory $cacheFactory) {
56
+        $this->config = $config;
57
+        $this->cacheFactory = $cacheFactory;
58
+    }
59
+
60
+    /**
61
+     * Creates an url using a defined route
62
+     * @param string $route
63
+     * @param array $parameters args with param=>value, will be appended to the returned url
64
+     * @return string the url
65
+     *
66
+     * Returns a url to the given route.
67
+     */
68
+    public function linkToRoute($route, $parameters = array()) {
69
+        // TODO: mock router
70
+        $urlLinkTo = \OC::$server->getRouter()->generate($route, $parameters);
71
+        return $urlLinkTo;
72
+    }
73
+
74
+    /**
75
+     * Creates an absolute url using a defined route
76
+     * @param string $routeName
77
+     * @param array $arguments args with param=>value, will be appended to the returned url
78
+     * @return string the url
79
+     *
80
+     * Returns an absolute url to the given route.
81
+     */
82
+    public function linkToRouteAbsolute($routeName, $arguments = array()) {
83
+        return $this->getAbsoluteURL($this->linkToRoute($routeName, $arguments));
84
+    }
85
+
86
+    /**
87
+     * Creates an url
88
+     * @param string $app app
89
+     * @param string $file file
90
+     * @param array $args array with param=>value, will be appended to the returned url
91
+     *    The value of $args will be urlencoded
92
+     * @return string the url
93
+     *
94
+     * Returns a url to the given app and file.
95
+     */
96
+    public function linkTo( $app, $file, $args = array() ) {
97
+        $frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true');
98
+
99
+        if( $app != '' ) {
100
+            $app_path = \OC_App::getAppPath($app);
101
+            // Check if the app is in the app folder
102
+            if ($app_path && file_exists($app_path . '/' . $file)) {
103
+                if (substr($file, -3) == 'php') {
104
+
105
+                    $urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app;
106
+                    if ($frontControllerActive) {
107
+                        $urlLinkTo = \OC::$WEBROOT . '/apps/' . $app;
108
+                    }
109
+                    $urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
110
+                } else {
111
+                    $urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file;
112
+                }
113
+            } else {
114
+                $urlLinkTo = \OC::$WEBROOT . '/' . $app . '/' . $file;
115
+            }
116
+        } else {
117
+            if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) {
118
+                $urlLinkTo = \OC::$WEBROOT . '/core/' . $file;
119
+            } else {
120
+                if ($frontControllerActive && $file === 'index.php') {
121
+                    $urlLinkTo = \OC::$WEBROOT . '/';
122
+                } else {
123
+                    $urlLinkTo = \OC::$WEBROOT . '/' . $file;
124
+                }
125
+            }
126
+        }
127
+
128
+        if ($args && $query = http_build_query($args, '', '&')) {
129
+            $urlLinkTo .= '?' . $query;
130
+        }
131
+
132
+        return $urlLinkTo;
133
+    }
134
+
135
+    /**
136
+     * Creates path to an image
137
+     * @param string $app app
138
+     * @param string $image image name
139
+     * @throws \RuntimeException If the image does not exist
140
+     * @return string the url
141
+     *
142
+     * Returns the path to the image.
143
+     */
144
+    public function imagePath($app, $image) {
145
+        $cache = $this->cacheFactory->create('imagePath');
146
+        $cacheKey = $app.'-'.$image;
147
+        if($key = $cache->get($cacheKey)) {
148
+            return $key;
149
+        }
150
+
151
+        // Read the selected theme from the config file
152
+        $theme = \OC_Util::getTheme();
153
+
154
+        //if a theme has a png but not an svg always use the png
155
+        $basename = substr(basename($image),0,-4);
156
+
157
+        $appPath = \OC_App::getAppPath($app);
158
+
159
+        // Check if the app is in the app folder
160
+        $path = '';
161
+        $themingEnabled = $this->config->getSystemValue('installed', false) && \OCP\App::isEnabled('theming') && \OC_App::isAppLoaded('theming');
162
+        if (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
163
+            $path = \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
164
+        } elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.svg")
165
+            && file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.png")) {
166
+            $path =  \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$basename.png";
167
+        } elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$image")) {
168
+            $path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$image";
169
+        } elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.svg")
170
+            && file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.png"))) {
171
+            $path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$basename.png";
172
+        } elseif (file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$image")) {
173
+            $path =  \OC::$WEBROOT . "/themes/$theme/core/img/$image";
174
+        } elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.svg")
175
+            && file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.png")) {
176
+            $path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
177
+        } elseif($themingEnabled && $image === "favicon.ico" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
178
+            $cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
179
+            if($app==="") { $app = "core"; }
180
+            $path = $this->linkToRoute('theming.Icon.getFavicon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
181
+        } elseif($themingEnabled && $image === "favicon-touch.png" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
182
+            $cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
183
+            if($app==="") { $app = "core"; }
184
+            $path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
185
+        } elseif ($appPath && file_exists($appPath . "/img/$image")) {
186
+            $path =  \OC_App::getAppWebPath($app) . "/img/$image";
187
+        } elseif ($appPath && !file_exists($appPath . "/img/$basename.svg")
188
+            && file_exists($appPath . "/img/$basename.png")) {
189
+            $path =  \OC_App::getAppWebPath($app) . "/img/$basename.png";
190
+        } elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/$app/img/$image")) {
191
+            $path =  \OC::$WEBROOT . "/$app/img/$image";
192
+        } elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/$app/img/$basename.svg")
193
+                && file_exists(\OC::$SERVERROOT . "/$app/img/$basename.png"))) {
194
+            $path =  \OC::$WEBROOT . "/$app/img/$basename.png";
195
+        } elseif (file_exists(\OC::$SERVERROOT . "/core/img/$image")) {
196
+            $path =  \OC::$WEBROOT . "/core/img/$image";
197
+        } elseif (!file_exists(\OC::$SERVERROOT . "/core/img/$basename.svg")
198
+            && file_exists(\OC::$SERVERROOT . "/core/img/$basename.png")) {
199
+            $path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
200
+        }
201
+
202
+        if($path !== '') {
203
+            $cache->set($cacheKey, $path);
204
+            return $path;
205
+        } else {
206
+            throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT);
207
+        }
208
+    }
209
+
210
+
211
+    /**
212
+     * Makes an URL absolute
213
+     * @param string $url the url in the ownCloud host
214
+     * @return string the absolute version of the url
215
+     */
216
+    public function getAbsoluteURL($url) {
217
+        $separator = $url[0] === '/' ? '' : '/';
218
+
219
+        if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
220
+            return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/');
221
+        }
222
+
223
+        // The ownCloud web root can already be prepended.
224
+        $webRoot = substr($url, 0, strlen(\OC::$WEBROOT)) === \OC::$WEBROOT
225
+            ? ''
226
+            : \OC::$WEBROOT;
227
+
228
+        $request = \OC::$server->getRequest();
229
+        return $request->getServerProtocol() . '://' . $request->getServerHost() . $webRoot . $separator . $url;
230
+    }
231
+
232
+    /**
233
+     * @param string $key
234
+     * @return string url to the online documentation
235
+     */
236
+    public function linkToDocs($key) {
237
+        $theme = \OC::$server->getThemingDefaults();
238
+        return $theme->buildDocLinkToKey($key);
239
+    }
240 240
 }
Please login to merge, or discard this patch.
Spacing   +55 added lines, -55 removed lines patch added patch discarded remove patch
@@ -93,40 +93,40 @@  discard block
 block discarded – undo
93 93
 	 *
94 94
 	 * Returns a url to the given app and file.
95 95
 	 */
96
-	public function linkTo( $app, $file, $args = array() ) {
96
+	public function linkTo($app, $file, $args = array()) {
97 97
 		$frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true');
98 98
 
99
-		if( $app != '' ) {
99
+		if ($app != '') {
100 100
 			$app_path = \OC_App::getAppPath($app);
101 101
 			// Check if the app is in the app folder
102
-			if ($app_path && file_exists($app_path . '/' . $file)) {
102
+			if ($app_path && file_exists($app_path.'/'.$file)) {
103 103
 				if (substr($file, -3) == 'php') {
104 104
 
105
-					$urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app;
105
+					$urlLinkTo = \OC::$WEBROOT.'/index.php/apps/'.$app;
106 106
 					if ($frontControllerActive) {
107
-						$urlLinkTo = \OC::$WEBROOT . '/apps/' . $app;
107
+						$urlLinkTo = \OC::$WEBROOT.'/apps/'.$app;
108 108
 					}
109
-					$urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
109
+					$urlLinkTo .= ($file != 'index.php') ? '/'.$file : '';
110 110
 				} else {
111
-					$urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file;
111
+					$urlLinkTo = \OC_App::getAppWebPath($app).'/'.$file;
112 112
 				}
113 113
 			} else {
114
-				$urlLinkTo = \OC::$WEBROOT . '/' . $app . '/' . $file;
114
+				$urlLinkTo = \OC::$WEBROOT.'/'.$app.'/'.$file;
115 115
 			}
116 116
 		} else {
117
-			if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) {
118
-				$urlLinkTo = \OC::$WEBROOT . '/core/' . $file;
117
+			if (file_exists(\OC::$SERVERROOT.'/core/'.$file)) {
118
+				$urlLinkTo = \OC::$WEBROOT.'/core/'.$file;
119 119
 			} else {
120 120
 				if ($frontControllerActive && $file === 'index.php') {
121
-					$urlLinkTo = \OC::$WEBROOT . '/';
121
+					$urlLinkTo = \OC::$WEBROOT.'/';
122 122
 				} else {
123
-					$urlLinkTo = \OC::$WEBROOT . '/' . $file;
123
+					$urlLinkTo = \OC::$WEBROOT.'/'.$file;
124 124
 				}
125 125
 			}
126 126
 		}
127 127
 
128 128
 		if ($args && $query = http_build_query($args, '', '&')) {
129
-			$urlLinkTo .= '?' . $query;
129
+			$urlLinkTo .= '?'.$query;
130 130
 		}
131 131
 
132 132
 		return $urlLinkTo;
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 	public function imagePath($app, $image) {
145 145
 		$cache = $this->cacheFactory->create('imagePath');
146 146
 		$cacheKey = $app.'-'.$image;
147
-		if($key = $cache->get($cacheKey)) {
147
+		if ($key = $cache->get($cacheKey)) {
148 148
 			return $key;
149 149
 		}
150 150
 
@@ -152,58 +152,58 @@  discard block
 block discarded – undo
152 152
 		$theme = \OC_Util::getTheme();
153 153
 
154 154
 		//if a theme has a png but not an svg always use the png
155
-		$basename = substr(basename($image),0,-4);
155
+		$basename = substr(basename($image), 0, -4);
156 156
 
157 157
 		$appPath = \OC_App::getAppPath($app);
158 158
 
159 159
 		// Check if the app is in the app folder
160 160
 		$path = '';
161 161
 		$themingEnabled = $this->config->getSystemValue('installed', false) && \OCP\App::isEnabled('theming') && \OC_App::isAppLoaded('theming');
162
-		if (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
163
-			$path = \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
164
-		} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.svg")
165
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.png")) {
166
-			$path =  \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$basename.png";
167
-		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$image")) {
168
-			$path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$image";
169
-		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.svg")
170
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/$app/img/$basename.png"))) {
171
-			$path =  \OC::$WEBROOT . "/themes/$theme/$app/img/$basename.png";
172
-		} elseif (file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$image")) {
173
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$image";
174
-		} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.svg")
175
-			&& file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.png")) {
176
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
177
-		} elseif($themingEnabled && $image === "favicon.ico" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
162
+		if (file_exists(\OC::$SERVERROOT."/themes/$theme/apps/$app/img/$image")) {
163
+			$path = \OC::$WEBROOT."/themes/$theme/apps/$app/img/$image";
164
+		} elseif (!file_exists(\OC::$SERVERROOT."/themes/$theme/apps/$app/img/$basename.svg")
165
+			&& file_exists(\OC::$SERVERROOT."/themes/$theme/apps/$app/img/$basename.png")) {
166
+			$path = \OC::$WEBROOT."/themes/$theme/apps/$app/img/$basename.png";
167
+		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT."/themes/$theme/$app/img/$image")) {
168
+			$path = \OC::$WEBROOT."/themes/$theme/$app/img/$image";
169
+		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT."/themes/$theme/$app/img/$basename.svg")
170
+			&& file_exists(\OC::$SERVERROOT."/themes/$theme/$app/img/$basename.png"))) {
171
+			$path = \OC::$WEBROOT."/themes/$theme/$app/img/$basename.png";
172
+		} elseif (file_exists(\OC::$SERVERROOT."/themes/$theme/core/img/$image")) {
173
+			$path = \OC::$WEBROOT."/themes/$theme/core/img/$image";
174
+		} elseif (!file_exists(\OC::$SERVERROOT."/themes/$theme/core/img/$basename.svg")
175
+			&& file_exists(\OC::$SERVERROOT."/themes/$theme/core/img/$basename.png")) {
176
+			$path = \OC::$WEBROOT."/themes/$theme/core/img/$basename.png";
177
+		} elseif ($themingEnabled && $image === "favicon.ico" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
178 178
 			$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
179
-			if($app==="") { $app = "core"; }
180
-			$path = $this->linkToRoute('theming.Icon.getFavicon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
181
-		} elseif($themingEnabled && $image === "favicon-touch.png" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
179
+			if ($app === "") { $app = "core"; }
180
+			$path = $this->linkToRoute('theming.Icon.getFavicon', ['app' => $app]).'?v='.$cacheBusterValue;
181
+		} elseif ($themingEnabled && $image === "favicon-touch.png" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
182 182
 			$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
183
-			if($app==="") { $app = "core"; }
184
-			$path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
185
-		} elseif ($appPath && file_exists($appPath . "/img/$image")) {
186
-			$path =  \OC_App::getAppWebPath($app) . "/img/$image";
187
-		} elseif ($appPath && !file_exists($appPath . "/img/$basename.svg")
188
-			&& file_exists($appPath . "/img/$basename.png")) {
189
-			$path =  \OC_App::getAppWebPath($app) . "/img/$basename.png";
190
-		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT . "/$app/img/$image")) {
191
-			$path =  \OC::$WEBROOT . "/$app/img/$image";
192
-		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT . "/$app/img/$basename.svg")
193
-				&& file_exists(\OC::$SERVERROOT . "/$app/img/$basename.png"))) {
194
-			$path =  \OC::$WEBROOT . "/$app/img/$basename.png";
195
-		} elseif (file_exists(\OC::$SERVERROOT . "/core/img/$image")) {
196
-			$path =  \OC::$WEBROOT . "/core/img/$image";
197
-		} elseif (!file_exists(\OC::$SERVERROOT . "/core/img/$basename.svg")
198
-			&& file_exists(\OC::$SERVERROOT . "/core/img/$basename.png")) {
199
-			$path =  \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
183
+			if ($app === "") { $app = "core"; }
184
+			$path = $this->linkToRoute('theming.Icon.getTouchIcon', ['app' => $app]).'?v='.$cacheBusterValue;
185
+		} elseif ($appPath && file_exists($appPath."/img/$image")) {
186
+			$path = \OC_App::getAppWebPath($app)."/img/$image";
187
+		} elseif ($appPath && !file_exists($appPath."/img/$basename.svg")
188
+			&& file_exists($appPath."/img/$basename.png")) {
189
+			$path = \OC_App::getAppWebPath($app)."/img/$basename.png";
190
+		} elseif (!empty($app) and file_exists(\OC::$SERVERROOT."/$app/img/$image")) {
191
+			$path = \OC::$WEBROOT."/$app/img/$image";
192
+		} elseif (!empty($app) and (!file_exists(\OC::$SERVERROOT."/$app/img/$basename.svg")
193
+				&& file_exists(\OC::$SERVERROOT."/$app/img/$basename.png"))) {
194
+			$path = \OC::$WEBROOT."/$app/img/$basename.png";
195
+		} elseif (file_exists(\OC::$SERVERROOT."/core/img/$image")) {
196
+			$path = \OC::$WEBROOT."/core/img/$image";
197
+		} elseif (!file_exists(\OC::$SERVERROOT."/core/img/$basename.svg")
198
+			&& file_exists(\OC::$SERVERROOT."/core/img/$basename.png")) {
199
+			$path = \OC::$WEBROOT."/themes/$theme/core/img/$basename.png";
200 200
 		}
201 201
 
202
-		if($path !== '') {
202
+		if ($path !== '') {
203 203
 			$cache->set($cacheKey, $path);
204 204
 			return $path;
205 205
 		} else {
206
-			throw new RuntimeException('image not found: image:' . $image . ' webroot:' . \OC::$WEBROOT . ' serverroot:' . \OC::$SERVERROOT);
206
+			throw new RuntimeException('image not found: image:'.$image.' webroot:'.\OC::$WEBROOT.' serverroot:'.\OC::$SERVERROOT);
207 207
 		}
208 208
 	}
209 209
 
@@ -217,7 +217,7 @@  discard block
 block discarded – undo
217 217
 		$separator = $url[0] === '/' ? '' : '/';
218 218
 
219 219
 		if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
220
-			return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/') . '/' . ltrim($url, '/');
220
+			return rtrim($this->config->getSystemValue('overwrite.cli.url'), '/').'/'.ltrim($url, '/');
221 221
 		}
222 222
 
223 223
 		// The ownCloud web root can already be prepended.
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
 			: \OC::$WEBROOT;
227 227
 
228 228
 		$request = \OC::$server->getRequest();
229
-		return $request->getServerProtocol() . '://' . $request->getServerHost() . $webRoot . $separator . $url;
229
+		return $request->getServerProtocol().'://'.$request->getServerHost().$webRoot.$separator.$url;
230 230
 	}
231 231
 
232 232
 	/**
Please login to merge, or discard this patch.