Completed
Push — master ( db5fc4...6fd0e7 )
by Lukas
23s
created
lib/private/Template/SCSSCacher.php 2 patches
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -34,172 +34,172 @@
 block discarded – undo
34 34
 
35 35
 class SCSSCacher {
36 36
 
37
-	/** @var ILogger */
38
-	protected $logger;
39
-
40
-	/** @var IAppData */
41
-	protected $appData;
42
-
43
-	/** @var IURLGenerator */
44
-	protected $urlGenerator;
45
-
46
-	/** @var SystemConfig */
47
-	protected $systemConfig;
48
-
49
-	/**
50
-	 * @param ILogger $logger
51
-	 * @param IAppData $appData
52
-	 * @param IURLGenerator $urlGenerator
53
-	 * @param SystemConfig $systemConfig
54
-	 */
55
-	public function __construct(ILogger $logger, IAppData $appData, IURLGenerator $urlGenerator, SystemConfig $systemConfig) {
56
-		$this->logger = $logger;
57
-		$this->appData = $appData;
58
-		$this->urlGenerator = $urlGenerator;
59
-		$this->systemConfig = $systemConfig;
60
-	}
61
-
62
-	/**
63
-	 * Process the caching process if needed
64
-	 * @param string $root Root path to the nextcloud installation
65
-	 * @param string $file
66
-	 * @param string $app The app name
67
-	 * @return boolean
68
-	 */
69
-	public function process($root, $file, $app) {
70
-		$path = explode('/', $root . '/' . $file);
71
-
72
-		$fileNameSCSS = array_pop($path);
73
-		$fileNameCSS = str_replace('.scss', '.css', $fileNameSCSS);
74
-
75
-		$path = implode('/', $path);
76
-
77
-		$webDir = explode('/', $file);
78
-		array_pop($webDir);
79
-		$webDir = implode('/', $webDir);
80
-
81
-		try {
82
-			$folder = $this->appData->getFolder($app);
83
-		} catch(NotFoundException $e) {
84
-			// creating css appdata folder
85
-			$folder = $this->appData->newFolder($app);
86
-		}
87
-
88
-		if($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
89
-			return true;
90
-		} else {
91
-			return $this->cache($path, $fileNameCSS, $fileNameSCSS, $folder, $webDir);
92
-		}
93
-	}
94
-
95
-	/**
96
-	 * Check if the file is cached or not
97
-	 * @param string $fileNameCSS
98
-	 * @param string $fileNameSCSS
99
-	 * @param ISimpleFolder $folder
100
-	 * @param string $path
101
-	 * @return boolean
102
-	 */
103
-	private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
104
-		try{
105
-			$cachedFile = $folder->getFile($fileNameCSS);
106
-			if ($cachedFile->getSize() > 0) {
107
-				$depFile = $folder->getFile($fileNameCSS . '.deps');
108
-				$deps = json_decode($depFile->getContent(), true);
109
-
110
-				foreach ($deps as $file=>$mtime) {
111
-					if (!file_exists($file) || filemtime($file) > $mtime) {
112
-						return false;
113
-					}
114
-				}
115
-			}
116
-			return true;
117
-		} catch(NotFoundException $e) {
118
-			return false;
119
-		}
120
-		return false;
121
-	}
122
-
123
-	/**
124
-	 * Cache the file with AppData
125
-	 * @param string $path
126
-	 * @param string $fileNameCSS
127
-	 * @param string $fileNameSCSS
128
-	 * @param ISimpleFolder $folder
129
-	 * @param string $webDir
130
-	 * @return boolean
131
-	 */
132
-	private function cache($path, $fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $webDir) {
133
-		$scss = new Compiler();
134
-		$scss->setImportPaths($path);
135
-		if($this->systemConfig->getValue('debug')) {
136
-			// Debug mode
137
-			$scss->setFormatter(Expanded::class);
138
-			$scss->setLineNumberStyle(Compiler::LINE_COMMENTS);
139
-		} else {
140
-			// Compression
141
-			$scss->setFormatter(Crunched::class);
142
-		}
143
-
144
-		try {
145
-			$cachedfile = $folder->getFile($fileNameCSS);
146
-		} catch(NotFoundException $e) {
147
-			$cachedfile = $folder->newFile($fileNameCSS);
148
-		}
149
-
150
-		$depFileName = $fileNameCSS . '.deps';
151
-		try {
152
-			$depFile = $folder->getFile($depFileName);
153
-		} catch (NotFoundException $e) {
154
-			$depFile = $folder->newFile($depFileName);
155
-		}
156
-
157
-		// Compile
158
-		try {
159
-			$compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
160
-		} catch(ParserException $e) {
161
-			$this->logger->error($e, ['app' => 'core']);
162
-			return false;
163
-		}
164
-
165
-		try {
166
-			$cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir));
167
-			$depFile->putContent(json_encode($scss->getParsedFiles()));
168
-			$this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
169
-			return true;
170
-		} catch(NotFoundException $e) {
171
-			return false;
172
-		}
173
-	}
174
-
175
-	/**
176
-	 * Add the correct uri prefix to make uri valid again
177
-	 * @param string $css
178
-	 * @param string $webDir
179
-	 * @return string
180
-	 */
181
-	private function rebaseUrls($css, $webDir) {
182
-		$re = '/url\([\'"]([\.\w?=\/-]*)[\'"]\)/x';
183
-		// OC\Route\Router:75
184
-		if(($this->systemConfig->getValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
185
-			$subst = 'url(\'../../'.$webDir.'/$1\')';	
186
-		} else {
187
-			$subst = 'url(\'../../../'.$webDir.'/$1\')';
188
-		}
189
-		return preg_replace($re, $subst, $css);
190
-	}
191
-
192
-	/**
193
-	 * Return the cached css file uri
194
-	 * @param string $appName the app name
195
-	 * @param string $fileName
196
-	 * @return string
197
-	 */
198
-	public function getCachedSCSS($appName, $fileName) {
199
-		$tmpfileLoc = explode('/', $fileName);
200
-		$fileName = array_pop($tmpfileLoc);
201
-		$fileName = str_replace('.scss', '.css', $fileName);
202
-
203
-		return substr($this->urlGenerator->linkToRoute('core.Css.getCss', array('fileName' => $fileName, 'appName' => $appName)), strlen(\OC::$WEBROOT) + 1);
204
-	}
37
+    /** @var ILogger */
38
+    protected $logger;
39
+
40
+    /** @var IAppData */
41
+    protected $appData;
42
+
43
+    /** @var IURLGenerator */
44
+    protected $urlGenerator;
45
+
46
+    /** @var SystemConfig */
47
+    protected $systemConfig;
48
+
49
+    /**
50
+     * @param ILogger $logger
51
+     * @param IAppData $appData
52
+     * @param IURLGenerator $urlGenerator
53
+     * @param SystemConfig $systemConfig
54
+     */
55
+    public function __construct(ILogger $logger, IAppData $appData, IURLGenerator $urlGenerator, SystemConfig $systemConfig) {
56
+        $this->logger = $logger;
57
+        $this->appData = $appData;
58
+        $this->urlGenerator = $urlGenerator;
59
+        $this->systemConfig = $systemConfig;
60
+    }
61
+
62
+    /**
63
+     * Process the caching process if needed
64
+     * @param string $root Root path to the nextcloud installation
65
+     * @param string $file
66
+     * @param string $app The app name
67
+     * @return boolean
68
+     */
69
+    public function process($root, $file, $app) {
70
+        $path = explode('/', $root . '/' . $file);
71
+
72
+        $fileNameSCSS = array_pop($path);
73
+        $fileNameCSS = str_replace('.scss', '.css', $fileNameSCSS);
74
+
75
+        $path = implode('/', $path);
76
+
77
+        $webDir = explode('/', $file);
78
+        array_pop($webDir);
79
+        $webDir = implode('/', $webDir);
80
+
81
+        try {
82
+            $folder = $this->appData->getFolder($app);
83
+        } catch(NotFoundException $e) {
84
+            // creating css appdata folder
85
+            $folder = $this->appData->newFolder($app);
86
+        }
87
+
88
+        if($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
89
+            return true;
90
+        } else {
91
+            return $this->cache($path, $fileNameCSS, $fileNameSCSS, $folder, $webDir);
92
+        }
93
+    }
94
+
95
+    /**
96
+     * Check if the file is cached or not
97
+     * @param string $fileNameCSS
98
+     * @param string $fileNameSCSS
99
+     * @param ISimpleFolder $folder
100
+     * @param string $path
101
+     * @return boolean
102
+     */
103
+    private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
104
+        try{
105
+            $cachedFile = $folder->getFile($fileNameCSS);
106
+            if ($cachedFile->getSize() > 0) {
107
+                $depFile = $folder->getFile($fileNameCSS . '.deps');
108
+                $deps = json_decode($depFile->getContent(), true);
109
+
110
+                foreach ($deps as $file=>$mtime) {
111
+                    if (!file_exists($file) || filemtime($file) > $mtime) {
112
+                        return false;
113
+                    }
114
+                }
115
+            }
116
+            return true;
117
+        } catch(NotFoundException $e) {
118
+            return false;
119
+        }
120
+        return false;
121
+    }
122
+
123
+    /**
124
+     * Cache the file with AppData
125
+     * @param string $path
126
+     * @param string $fileNameCSS
127
+     * @param string $fileNameSCSS
128
+     * @param ISimpleFolder $folder
129
+     * @param string $webDir
130
+     * @return boolean
131
+     */
132
+    private function cache($path, $fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $webDir) {
133
+        $scss = new Compiler();
134
+        $scss->setImportPaths($path);
135
+        if($this->systemConfig->getValue('debug')) {
136
+            // Debug mode
137
+            $scss->setFormatter(Expanded::class);
138
+            $scss->setLineNumberStyle(Compiler::LINE_COMMENTS);
139
+        } else {
140
+            // Compression
141
+            $scss->setFormatter(Crunched::class);
142
+        }
143
+
144
+        try {
145
+            $cachedfile = $folder->getFile($fileNameCSS);
146
+        } catch(NotFoundException $e) {
147
+            $cachedfile = $folder->newFile($fileNameCSS);
148
+        }
149
+
150
+        $depFileName = $fileNameCSS . '.deps';
151
+        try {
152
+            $depFile = $folder->getFile($depFileName);
153
+        } catch (NotFoundException $e) {
154
+            $depFile = $folder->newFile($depFileName);
155
+        }
156
+
157
+        // Compile
158
+        try {
159
+            $compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
160
+        } catch(ParserException $e) {
161
+            $this->logger->error($e, ['app' => 'core']);
162
+            return false;
163
+        }
164
+
165
+        try {
166
+            $cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir));
167
+            $depFile->putContent(json_encode($scss->getParsedFiles()));
168
+            $this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
169
+            return true;
170
+        } catch(NotFoundException $e) {
171
+            return false;
172
+        }
173
+    }
174
+
175
+    /**
176
+     * Add the correct uri prefix to make uri valid again
177
+     * @param string $css
178
+     * @param string $webDir
179
+     * @return string
180
+     */
181
+    private function rebaseUrls($css, $webDir) {
182
+        $re = '/url\([\'"]([\.\w?=\/-]*)[\'"]\)/x';
183
+        // OC\Route\Router:75
184
+        if(($this->systemConfig->getValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
185
+            $subst = 'url(\'../../'.$webDir.'/$1\')';	
186
+        } else {
187
+            $subst = 'url(\'../../../'.$webDir.'/$1\')';
188
+        }
189
+        return preg_replace($re, $subst, $css);
190
+    }
191
+
192
+    /**
193
+     * Return the cached css file uri
194
+     * @param string $appName the app name
195
+     * @param string $fileName
196
+     * @return string
197
+     */
198
+    public function getCachedSCSS($appName, $fileName) {
199
+        $tmpfileLoc = explode('/', $fileName);
200
+        $fileName = array_pop($tmpfileLoc);
201
+        $fileName = str_replace('.scss', '.css', $fileName);
202
+
203
+        return substr($this->urlGenerator->linkToRoute('core.Css.getCss', array('fileName' => $fileName, 'appName' => $appName)), strlen(\OC::$WEBROOT) + 1);
204
+    }
205 205
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
 	 * @return boolean
68 68
 	 */
69 69
 	public function process($root, $file, $app) {
70
-		$path = explode('/', $root . '/' . $file);
70
+		$path = explode('/', $root.'/'.$file);
71 71
 
72 72
 		$fileNameSCSS = array_pop($path);
73 73
 		$fileNameCSS = str_replace('.scss', '.css', $fileNameSCSS);
@@ -80,12 +80,12 @@  discard block
 block discarded – undo
80 80
 
81 81
 		try {
82 82
 			$folder = $this->appData->getFolder($app);
83
-		} catch(NotFoundException $e) {
83
+		} catch (NotFoundException $e) {
84 84
 			// creating css appdata folder
85 85
 			$folder = $this->appData->newFolder($app);
86 86
 		}
87 87
 
88
-		if($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
88
+		if ($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
89 89
 			return true;
90 90
 		} else {
91 91
 			return $this->cache($path, $fileNameCSS, $fileNameSCSS, $folder, $webDir);
@@ -101,10 +101,10 @@  discard block
 block discarded – undo
101 101
 	 * @return boolean
102 102
 	 */
103 103
 	private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
104
-		try{
104
+		try {
105 105
 			$cachedFile = $folder->getFile($fileNameCSS);
106 106
 			if ($cachedFile->getSize() > 0) {
107
-				$depFile = $folder->getFile($fileNameCSS . '.deps');
107
+				$depFile = $folder->getFile($fileNameCSS.'.deps');
108 108
 				$deps = json_decode($depFile->getContent(), true);
109 109
 
110 110
 				foreach ($deps as $file=>$mtime) {
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
 				}
115 115
 			}
116 116
 			return true;
117
-		} catch(NotFoundException $e) {
117
+		} catch (NotFoundException $e) {
118 118
 			return false;
119 119
 		}
120 120
 		return false;
@@ -132,7 +132,7 @@  discard block
 block discarded – undo
132 132
 	private function cache($path, $fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $webDir) {
133 133
 		$scss = new Compiler();
134 134
 		$scss->setImportPaths($path);
135
-		if($this->systemConfig->getValue('debug')) {
135
+		if ($this->systemConfig->getValue('debug')) {
136 136
 			// Debug mode
137 137
 			$scss->setFormatter(Expanded::class);
138 138
 			$scss->setLineNumberStyle(Compiler::LINE_COMMENTS);
@@ -143,11 +143,11 @@  discard block
 block discarded – undo
143 143
 
144 144
 		try {
145 145
 			$cachedfile = $folder->getFile($fileNameCSS);
146
-		} catch(NotFoundException $e) {
146
+		} catch (NotFoundException $e) {
147 147
 			$cachedfile = $folder->newFile($fileNameCSS);
148 148
 		}
149 149
 
150
-		$depFileName = $fileNameCSS . '.deps';
150
+		$depFileName = $fileNameCSS.'.deps';
151 151
 		try {
152 152
 			$depFile = $folder->getFile($depFileName);
153 153
 		} catch (NotFoundException $e) {
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
 		// Compile
158 158
 		try {
159 159
 			$compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
160
-		} catch(ParserException $e) {
160
+		} catch (ParserException $e) {
161 161
 			$this->logger->error($e, ['app' => 'core']);
162 162
 			return false;
163 163
 		}
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 			$depFile->putContent(json_encode($scss->getParsedFiles()));
168 168
 			$this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
169 169
 			return true;
170
-		} catch(NotFoundException $e) {
170
+		} catch (NotFoundException $e) {
171 171
 			return false;
172 172
 		}
173 173
 	}
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
 	private function rebaseUrls($css, $webDir) {
182 182
 		$re = '/url\([\'"]([\.\w?=\/-]*)[\'"]\)/x';
183 183
 		// OC\Route\Router:75
184
-		if(($this->systemConfig->getValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
184
+		if (($this->systemConfig->getValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
185 185
 			$subst = 'url(\'../../'.$webDir.'/$1\')';	
186 186
 		} else {
187 187
 			$subst = 'url(\'../../../'.$webDir.'/$1\')';
Please login to merge, or discard this patch.
lib/private/legacy/template.php 2 patches
Indentation   +342 added lines, -342 removed lines patch added patch discarded remove patch
@@ -44,346 +44,346 @@
 block discarded – undo
44 44
  */
45 45
 class OC_Template extends \OC\Template\Base {
46 46
 
47
-	/** @var string */
48
-	private $renderAs; // Create a full page?
49
-
50
-	/** @var string */
51
-	private $path; // The path to the template
52
-
53
-	/** @var array */
54
-	private $headers = array(); //custom headers
55
-
56
-	/** @var string */
57
-	protected $app; // app id
58
-
59
-	protected static $initTemplateEngineFirstRun = true;
60
-
61
-	/**
62
-	 * Constructor
63
-	 *
64
-	 * @param string $app app providing the template
65
-	 * @param string $name of the template file (without suffix)
66
-	 * @param string $renderAs If $renderAs is set, OC_Template will try to
67
-	 *                         produce a full page in the according layout. For
68
-	 *                         now, $renderAs can be set to "guest", "user" or
69
-	 *                         "admin".
70
-	 * @param bool $registerCall = true
71
-	 */
72
-	public function __construct( $app, $name, $renderAs = "", $registerCall = true ) {
73
-		// Read the selected theme from the config file
74
-		self::initTemplateEngine($renderAs);
75
-
76
-		$theme = OC_Util::getTheme();
77
-
78
-		$requestToken = (OC::$server->getSession() && $registerCall) ? \OCP\Util::callRegister() : '';
79
-
80
-		$parts = explode('/', $app); // fix translation when app is something like core/lostpassword
81
-		$l10n = \OC::$server->getL10N($parts[0]);
82
-		$themeDefaults = \OC::$server->getThemingDefaults();
83
-
84
-		list($path, $template) = $this->findTemplate($theme, $app, $name);
85
-
86
-		// Set the private data
87
-		$this->renderAs = $renderAs;
88
-		$this->path = $path;
89
-		$this->app = $app;
90
-
91
-		parent::__construct($template, $requestToken, $l10n, $themeDefaults);
92
-	}
93
-
94
-	/**
95
-	 * @param string $renderAs
96
-	 */
97
-	public static function initTemplateEngine($renderAs) {
98
-		if (self::$initTemplateEngineFirstRun){
99
-
100
-			//apps that started before the template initialization can load their own scripts/styles
101
-			//so to make sure this scripts/styles here are loaded first we use OC_Util::addScript() with $prepend=true
102
-			//meaning the last script/style in this list will be loaded first
103
-			if (\OC::$server->getSystemConfig()->getValue ('installed', false) && $renderAs !== 'error' && !\OCP\Util::needUpgrade()) {
104
-				if (\OC::$server->getConfig ()->getAppValue ( 'core', 'backgroundjobs_mode', 'ajax' ) == 'ajax') {
105
-					OC_Util::addScript ( 'backgroundjobs', null, true );
106
-				}
107
-			}
108
-
109
-			OC_Util::addStyle('jquery-ui-fixes',null,true);
110
-			OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true);
111
-			OC_Util::addStyle('server', null, true);
112
-
113
-			// avatars
114
-			\OC_Util::addScript('jquery.avatar', null, true);
115
-			\OC_Util::addScript('placeholder', null, true);
116
-
117
-			OC_Util::addVendorScript('select2/select2');
118
-			OC_Util::addVendorStyle('select2/select2', null, true);
119
-			OC_Util::addScript('select2-toggleselect');
120
-
121
-			OC_Util::addScript('oc-backbone', null, true);
122
-			OC_Util::addVendorScript('core', 'backbone/backbone', true);
123
-			OC_Util::addVendorScript('snapjs/dist/latest/snap', null, true);
124
-			OC_Util::addScript('mimetypelist', null, true);
125
-			OC_Util::addScript('mimetype', null, true);
126
-			OC_Util::addScript("apps", null, true);
127
-			OC_Util::addScript("oc-requesttoken", null, true);
128
-			OC_Util::addScript('search', 'search', true);
129
-			OC_Util::addScript("config", null, true);
130
-			OC_Util::addScript("public/appconfig", null, true);
131
-			OC_Util::addScript("eventsource", null, true);
132
-			OC_Util::addScript("octemplate", null, true);
133
-			OC_Util::addTranslations("core", null, true);
134
-			OC_Util::addScript("l10n", null, true);
135
-			OC_Util::addScript("js", null, true);
136
-			OC_Util::addScript("oc-dialogs", null, true);
137
-			OC_Util::addScript("jquery.ocdialog", null, true);
138
-			OC_Util::addScript("jquery-ui-fixes");
139
-			OC_Util::addStyle("jquery.ocdialog");
140
-			OC_Util::addScript('files/fileinfo');
141
-			OC_Util::addScript('files/client');
142
-
143
-			// Add the stuff we need always
144
-			// following logic will import all vendor libraries that are
145
-			// specified in core/js/core.json
146
-			$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
147
-			if($fileContent !== false) {
148
-				$coreDependencies = json_decode($fileContent, true);
149
-				foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
150
-					// remove trailing ".js" as addVendorScript will append it
151
-					OC_Util::addVendorScript(
152
-							substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
153
-				}
154
-			} else {
155
-				throw new \Exception('Cannot read core/js/core.json');
156
-			}
157
-
158
-			if (\OC::$server->getRequest()->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE])) {
159
-				// polyfill for btoa/atob for IE friends
160
-				OC_Util::addVendorScript('base64/base64');
161
-				// shim for the davclient.js library
162
-				\OCP\Util::addScript('files/iedavclient');
163
-			}
164
-
165
-			self::$initTemplateEngineFirstRun = false;
166
-		}
167
-
168
-	}
169
-
170
-
171
-	/**
172
-	 * find the template with the given name
173
-	 * @param string $name of the template file (without suffix)
174
-	 *
175
-	 * Will select the template file for the selected theme.
176
-	 * Checking all the possible locations.
177
-	 * @param string $theme
178
-	 * @param string $app
179
-	 * @return string[]
180
-	 */
181
-	protected function findTemplate($theme, $app, $name) {
182
-		// Check if it is a app template or not.
183
-		if( $app !== '' ) {
184
-			$dirs = $this->getAppTemplateDirs($theme, $app, OC::$SERVERROOT, OC_App::getAppPath($app));
185
-		} else {
186
-			$dirs = $this->getCoreTemplateDirs($theme, OC::$SERVERROOT);
187
-		}
188
-		$locator = new \OC\Template\TemplateFileLocator( $dirs );
189
-		$template = $locator->find($name);
190
-		$path = $locator->getPath();
191
-		return array($path, $template);
192
-	}
193
-
194
-	/**
195
-	 * Add a custom element to the header
196
-	 * @param string $tag tag name of the element
197
-	 * @param array $attributes array of attributes for the element
198
-	 * @param string $text the text content for the element. If $text is null then the
199
-	 * element will be written as empty element. So use "" to get a closing tag.
200
-	 */
201
-	public function addHeader($tag, $attributes, $text=null) {
202
-		$this->headers[]= array(
203
-			'tag' => $tag,
204
-			'attributes' => $attributes,
205
-			'text' => $text
206
-		);
207
-	}
208
-
209
-	/**
210
-	 * Process the template
211
-	 * @return boolean|string
212
-	 *
213
-	 * This function process the template. If $this->renderAs is set, it
214
-	 * will produce a full page.
215
-	 */
216
-	public function fetchPage($additionalParams = null) {
217
-		$data = parent::fetchPage($additionalParams);
218
-
219
-		if( $this->renderAs ) {
220
-			$page = new TemplateLayout($this->renderAs, $this->app);
221
-
222
-			// Add custom headers
223
-			$headers = '';
224
-			foreach(OC_Util::$headers as $header) {
225
-				$headers .= '<'.\OCP\Util::sanitizeHTML($header['tag']);
226
-				foreach($header['attributes'] as $name=>$value) {
227
-					$headers .= ' '.\OCP\Util::sanitizeHTML($name).'="'.\OCP\Util::sanitizeHTML($value).'"';
228
-				}
229
-				if ($header['text'] !== null) {
230
-					$headers .= '>'.\OCP\Util::sanitizeHTML($header['text']).'</'.\OCP\Util::sanitizeHTML($header['tag']).'>';
231
-				} else {
232
-					$headers .= '/>';
233
-				}
234
-			}
235
-
236
-			$page->assign('headers', $headers);
237
-
238
-			$page->assign('content', $data);
239
-			return $page->fetchPage();
240
-		}
241
-
242
-		return $data;
243
-	}
244
-
245
-	/**
246
-	 * Include template
247
-	 *
248
-	 * @param string $file
249
-	 * @param array|null $additionalParams
250
-	 * @return string returns content of included template
251
-	 *
252
-	 * Includes another template. use <?php echo $this->inc('template'); ?> to
253
-	 * do this.
254
-	 */
255
-	public function inc( $file, $additionalParams = null ) {
256
-		return $this->load($this->path.$file.'.php', $additionalParams);
257
-	}
258
-
259
-	/**
260
-	 * Shortcut to print a simple page for users
261
-	 * @param string $application The application we render the template for
262
-	 * @param string $name Name of the template
263
-	 * @param array $parameters Parameters for the template
264
-	 * @return boolean|null
265
-	 */
266
-	public static function printUserPage( $application, $name, $parameters = array() ) {
267
-		$content = new OC_Template( $application, $name, "user" );
268
-		foreach( $parameters as $key => $value ) {
269
-			$content->assign( $key, $value );
270
-		}
271
-		print $content->printPage();
272
-	}
273
-
274
-	/**
275
-	 * Shortcut to print a simple page for admins
276
-	 * @param string $application The application we render the template for
277
-	 * @param string $name Name of the template
278
-	 * @param array $parameters Parameters for the template
279
-	 * @return bool
280
-	 */
281
-	public static function printAdminPage( $application, $name, $parameters = array() ) {
282
-		$content = new OC_Template( $application, $name, "admin" );
283
-		foreach( $parameters as $key => $value ) {
284
-			$content->assign( $key, $value );
285
-		}
286
-		return $content->printPage();
287
-	}
288
-
289
-	/**
290
-	 * Shortcut to print a simple page for guests
291
-	 * @param string $application The application we render the template for
292
-	 * @param string $name Name of the template
293
-	 * @param array|string $parameters Parameters for the template
294
-	 * @return bool
295
-	 */
296
-	public static function printGuestPage( $application, $name, $parameters = array() ) {
297
-		$content = new OC_Template( $application, $name, "guest" );
298
-		foreach( $parameters as $key => $value ) {
299
-			$content->assign( $key, $value );
300
-		}
301
-		return $content->printPage();
302
-	}
303
-
304
-	/**
305
-		* Print a fatal error page and terminates the script
306
-		* @param string $error_msg The error message to show
307
-		* @param string $hint An optional hint message - needs to be properly escaped
308
-		*/
309
-	public static function printErrorPage( $error_msg, $hint = '' ) {
310
-		if ($error_msg === $hint) {
311
-			// If the hint is the same as the message there is no need to display it twice.
312
-			$hint = '';
313
-		}
314
-
315
-		try {
316
-			$content = new \OC_Template( '', 'error', 'error', false );
317
-			$errors = array(array('error' => $error_msg, 'hint' => $hint));
318
-			$content->assign( 'errors', $errors );
319
-			$content->printPage();
320
-		} catch (\Exception $e) {
321
-			$logger = \OC::$server->getLogger();
322
-			$logger->error("$error_msg $hint", ['app' => 'core']);
323
-			$logger->logException($e, ['app' => 'core']);
324
-
325
-			header(self::getHttpProtocol() . ' 500 Internal Server Error');
326
-			header('Content-Type: text/plain; charset=utf-8');
327
-			print("$error_msg $hint");
328
-		}
329
-		die();
330
-	}
331
-
332
-	/**
333
-	 * print error page using Exception details
334
-	 * @param Exception | Throwable $exception
335
-	 */
336
-	public static function printExceptionErrorPage($exception, $fetchPage = false) {
337
-		try {
338
-			$request = \OC::$server->getRequest();
339
-			$content = new \OC_Template('', 'exception', 'error', false);
340
-			$content->assign('errorClass', get_class($exception));
341
-			$content->assign('errorMsg', $exception->getMessage());
342
-			$content->assign('errorCode', $exception->getCode());
343
-			$content->assign('file', $exception->getFile());
344
-			$content->assign('line', $exception->getLine());
345
-			$content->assign('trace', $exception->getTraceAsString());
346
-			$content->assign('debugMode', \OC::$server->getSystemConfig()->getValue('debug', false));
347
-			$content->assign('remoteAddr', $request->getRemoteAddress());
348
-			$content->assign('requestID', $request->getId());
349
-			if ($fetchPage) {
350
-				return $content->fetchPage();
351
-			}
352
-			$content->printPage();
353
-		} catch (\Exception $e) {
354
-			$logger = \OC::$server->getLogger();
355
-			$logger->logException($exception, ['app' => 'core']);
356
-			$logger->logException($e, ['app' => 'core']);
357
-
358
-			header(self::getHttpProtocol() . ' 500 Internal Server Error');
359
-			header('Content-Type: text/plain; charset=utf-8');
360
-			print("Internal Server Error\n\n");
361
-			print("The server encountered an internal error and was unable to complete your request.\n");
362
-			print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
363
-			print("More details can be found in the server log.\n");
364
-		}
365
-		die();
366
-	}
367
-
368
-	/**
369
-	 * This is only here to reduce the dependencies in case of an exception to
370
-	 * still be able to print a plain error message.
371
-	 *
372
-	 * Returns the used HTTP protocol.
373
-	 *
374
-	 * @return string HTTP protocol. HTTP/2, HTTP/1.1 or HTTP/1.0.
375
-	 * @internal Don't use this - use AppFramework\Http\Request->getHttpProtocol instead
376
-	 */
377
-	protected static function getHttpProtocol() {
378
-		$claimedProtocol = strtoupper($_SERVER['SERVER_PROTOCOL']);
379
-		$validProtocols = [
380
-			'HTTP/1.0',
381
-			'HTTP/1.1',
382
-			'HTTP/2',
383
-		];
384
-		if(in_array($claimedProtocol, $validProtocols, true)) {
385
-			return $claimedProtocol;
386
-		}
387
-		return 'HTTP/1.1';
388
-	}
47
+    /** @var string */
48
+    private $renderAs; // Create a full page?
49
+
50
+    /** @var string */
51
+    private $path; // The path to the template
52
+
53
+    /** @var array */
54
+    private $headers = array(); //custom headers
55
+
56
+    /** @var string */
57
+    protected $app; // app id
58
+
59
+    protected static $initTemplateEngineFirstRun = true;
60
+
61
+    /**
62
+     * Constructor
63
+     *
64
+     * @param string $app app providing the template
65
+     * @param string $name of the template file (without suffix)
66
+     * @param string $renderAs If $renderAs is set, OC_Template will try to
67
+     *                         produce a full page in the according layout. For
68
+     *                         now, $renderAs can be set to "guest", "user" or
69
+     *                         "admin".
70
+     * @param bool $registerCall = true
71
+     */
72
+    public function __construct( $app, $name, $renderAs = "", $registerCall = true ) {
73
+        // Read the selected theme from the config file
74
+        self::initTemplateEngine($renderAs);
75
+
76
+        $theme = OC_Util::getTheme();
77
+
78
+        $requestToken = (OC::$server->getSession() && $registerCall) ? \OCP\Util::callRegister() : '';
79
+
80
+        $parts = explode('/', $app); // fix translation when app is something like core/lostpassword
81
+        $l10n = \OC::$server->getL10N($parts[0]);
82
+        $themeDefaults = \OC::$server->getThemingDefaults();
83
+
84
+        list($path, $template) = $this->findTemplate($theme, $app, $name);
85
+
86
+        // Set the private data
87
+        $this->renderAs = $renderAs;
88
+        $this->path = $path;
89
+        $this->app = $app;
90
+
91
+        parent::__construct($template, $requestToken, $l10n, $themeDefaults);
92
+    }
93
+
94
+    /**
95
+     * @param string $renderAs
96
+     */
97
+    public static function initTemplateEngine($renderAs) {
98
+        if (self::$initTemplateEngineFirstRun){
99
+
100
+            //apps that started before the template initialization can load their own scripts/styles
101
+            //so to make sure this scripts/styles here are loaded first we use OC_Util::addScript() with $prepend=true
102
+            //meaning the last script/style in this list will be loaded first
103
+            if (\OC::$server->getSystemConfig()->getValue ('installed', false) && $renderAs !== 'error' && !\OCP\Util::needUpgrade()) {
104
+                if (\OC::$server->getConfig ()->getAppValue ( 'core', 'backgroundjobs_mode', 'ajax' ) == 'ajax') {
105
+                    OC_Util::addScript ( 'backgroundjobs', null, true );
106
+                }
107
+            }
108
+
109
+            OC_Util::addStyle('jquery-ui-fixes',null,true);
110
+            OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true);
111
+            OC_Util::addStyle('server', null, true);
112
+
113
+            // avatars
114
+            \OC_Util::addScript('jquery.avatar', null, true);
115
+            \OC_Util::addScript('placeholder', null, true);
116
+
117
+            OC_Util::addVendorScript('select2/select2');
118
+            OC_Util::addVendorStyle('select2/select2', null, true);
119
+            OC_Util::addScript('select2-toggleselect');
120
+
121
+            OC_Util::addScript('oc-backbone', null, true);
122
+            OC_Util::addVendorScript('core', 'backbone/backbone', true);
123
+            OC_Util::addVendorScript('snapjs/dist/latest/snap', null, true);
124
+            OC_Util::addScript('mimetypelist', null, true);
125
+            OC_Util::addScript('mimetype', null, true);
126
+            OC_Util::addScript("apps", null, true);
127
+            OC_Util::addScript("oc-requesttoken", null, true);
128
+            OC_Util::addScript('search', 'search', true);
129
+            OC_Util::addScript("config", null, true);
130
+            OC_Util::addScript("public/appconfig", null, true);
131
+            OC_Util::addScript("eventsource", null, true);
132
+            OC_Util::addScript("octemplate", null, true);
133
+            OC_Util::addTranslations("core", null, true);
134
+            OC_Util::addScript("l10n", null, true);
135
+            OC_Util::addScript("js", null, true);
136
+            OC_Util::addScript("oc-dialogs", null, true);
137
+            OC_Util::addScript("jquery.ocdialog", null, true);
138
+            OC_Util::addScript("jquery-ui-fixes");
139
+            OC_Util::addStyle("jquery.ocdialog");
140
+            OC_Util::addScript('files/fileinfo');
141
+            OC_Util::addScript('files/client');
142
+
143
+            // Add the stuff we need always
144
+            // following logic will import all vendor libraries that are
145
+            // specified in core/js/core.json
146
+            $fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
147
+            if($fileContent !== false) {
148
+                $coreDependencies = json_decode($fileContent, true);
149
+                foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
150
+                    // remove trailing ".js" as addVendorScript will append it
151
+                    OC_Util::addVendorScript(
152
+                            substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
153
+                }
154
+            } else {
155
+                throw new \Exception('Cannot read core/js/core.json');
156
+            }
157
+
158
+            if (\OC::$server->getRequest()->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE])) {
159
+                // polyfill for btoa/atob for IE friends
160
+                OC_Util::addVendorScript('base64/base64');
161
+                // shim for the davclient.js library
162
+                \OCP\Util::addScript('files/iedavclient');
163
+            }
164
+
165
+            self::$initTemplateEngineFirstRun = false;
166
+        }
167
+
168
+    }
169
+
170
+
171
+    /**
172
+     * find the template with the given name
173
+     * @param string $name of the template file (without suffix)
174
+     *
175
+     * Will select the template file for the selected theme.
176
+     * Checking all the possible locations.
177
+     * @param string $theme
178
+     * @param string $app
179
+     * @return string[]
180
+     */
181
+    protected function findTemplate($theme, $app, $name) {
182
+        // Check if it is a app template or not.
183
+        if( $app !== '' ) {
184
+            $dirs = $this->getAppTemplateDirs($theme, $app, OC::$SERVERROOT, OC_App::getAppPath($app));
185
+        } else {
186
+            $dirs = $this->getCoreTemplateDirs($theme, OC::$SERVERROOT);
187
+        }
188
+        $locator = new \OC\Template\TemplateFileLocator( $dirs );
189
+        $template = $locator->find($name);
190
+        $path = $locator->getPath();
191
+        return array($path, $template);
192
+    }
193
+
194
+    /**
195
+     * Add a custom element to the header
196
+     * @param string $tag tag name of the element
197
+     * @param array $attributes array of attributes for the element
198
+     * @param string $text the text content for the element. If $text is null then the
199
+     * element will be written as empty element. So use "" to get a closing tag.
200
+     */
201
+    public function addHeader($tag, $attributes, $text=null) {
202
+        $this->headers[]= array(
203
+            'tag' => $tag,
204
+            'attributes' => $attributes,
205
+            'text' => $text
206
+        );
207
+    }
208
+
209
+    /**
210
+     * Process the template
211
+     * @return boolean|string
212
+     *
213
+     * This function process the template. If $this->renderAs is set, it
214
+     * will produce a full page.
215
+     */
216
+    public function fetchPage($additionalParams = null) {
217
+        $data = parent::fetchPage($additionalParams);
218
+
219
+        if( $this->renderAs ) {
220
+            $page = new TemplateLayout($this->renderAs, $this->app);
221
+
222
+            // Add custom headers
223
+            $headers = '';
224
+            foreach(OC_Util::$headers as $header) {
225
+                $headers .= '<'.\OCP\Util::sanitizeHTML($header['tag']);
226
+                foreach($header['attributes'] as $name=>$value) {
227
+                    $headers .= ' '.\OCP\Util::sanitizeHTML($name).'="'.\OCP\Util::sanitizeHTML($value).'"';
228
+                }
229
+                if ($header['text'] !== null) {
230
+                    $headers .= '>'.\OCP\Util::sanitizeHTML($header['text']).'</'.\OCP\Util::sanitizeHTML($header['tag']).'>';
231
+                } else {
232
+                    $headers .= '/>';
233
+                }
234
+            }
235
+
236
+            $page->assign('headers', $headers);
237
+
238
+            $page->assign('content', $data);
239
+            return $page->fetchPage();
240
+        }
241
+
242
+        return $data;
243
+    }
244
+
245
+    /**
246
+     * Include template
247
+     *
248
+     * @param string $file
249
+     * @param array|null $additionalParams
250
+     * @return string returns content of included template
251
+     *
252
+     * Includes another template. use <?php echo $this->inc('template'); ?> to
253
+     * do this.
254
+     */
255
+    public function inc( $file, $additionalParams = null ) {
256
+        return $this->load($this->path.$file.'.php', $additionalParams);
257
+    }
258
+
259
+    /**
260
+     * Shortcut to print a simple page for users
261
+     * @param string $application The application we render the template for
262
+     * @param string $name Name of the template
263
+     * @param array $parameters Parameters for the template
264
+     * @return boolean|null
265
+     */
266
+    public static function printUserPage( $application, $name, $parameters = array() ) {
267
+        $content = new OC_Template( $application, $name, "user" );
268
+        foreach( $parameters as $key => $value ) {
269
+            $content->assign( $key, $value );
270
+        }
271
+        print $content->printPage();
272
+    }
273
+
274
+    /**
275
+     * Shortcut to print a simple page for admins
276
+     * @param string $application The application we render the template for
277
+     * @param string $name Name of the template
278
+     * @param array $parameters Parameters for the template
279
+     * @return bool
280
+     */
281
+    public static function printAdminPage( $application, $name, $parameters = array() ) {
282
+        $content = new OC_Template( $application, $name, "admin" );
283
+        foreach( $parameters as $key => $value ) {
284
+            $content->assign( $key, $value );
285
+        }
286
+        return $content->printPage();
287
+    }
288
+
289
+    /**
290
+     * Shortcut to print a simple page for guests
291
+     * @param string $application The application we render the template for
292
+     * @param string $name Name of the template
293
+     * @param array|string $parameters Parameters for the template
294
+     * @return bool
295
+     */
296
+    public static function printGuestPage( $application, $name, $parameters = array() ) {
297
+        $content = new OC_Template( $application, $name, "guest" );
298
+        foreach( $parameters as $key => $value ) {
299
+            $content->assign( $key, $value );
300
+        }
301
+        return $content->printPage();
302
+    }
303
+
304
+    /**
305
+     * Print a fatal error page and terminates the script
306
+     * @param string $error_msg The error message to show
307
+     * @param string $hint An optional hint message - needs to be properly escaped
308
+     */
309
+    public static function printErrorPage( $error_msg, $hint = '' ) {
310
+        if ($error_msg === $hint) {
311
+            // If the hint is the same as the message there is no need to display it twice.
312
+            $hint = '';
313
+        }
314
+
315
+        try {
316
+            $content = new \OC_Template( '', 'error', 'error', false );
317
+            $errors = array(array('error' => $error_msg, 'hint' => $hint));
318
+            $content->assign( 'errors', $errors );
319
+            $content->printPage();
320
+        } catch (\Exception $e) {
321
+            $logger = \OC::$server->getLogger();
322
+            $logger->error("$error_msg $hint", ['app' => 'core']);
323
+            $logger->logException($e, ['app' => 'core']);
324
+
325
+            header(self::getHttpProtocol() . ' 500 Internal Server Error');
326
+            header('Content-Type: text/plain; charset=utf-8');
327
+            print("$error_msg $hint");
328
+        }
329
+        die();
330
+    }
331
+
332
+    /**
333
+     * print error page using Exception details
334
+     * @param Exception | Throwable $exception
335
+     */
336
+    public static function printExceptionErrorPage($exception, $fetchPage = false) {
337
+        try {
338
+            $request = \OC::$server->getRequest();
339
+            $content = new \OC_Template('', 'exception', 'error', false);
340
+            $content->assign('errorClass', get_class($exception));
341
+            $content->assign('errorMsg', $exception->getMessage());
342
+            $content->assign('errorCode', $exception->getCode());
343
+            $content->assign('file', $exception->getFile());
344
+            $content->assign('line', $exception->getLine());
345
+            $content->assign('trace', $exception->getTraceAsString());
346
+            $content->assign('debugMode', \OC::$server->getSystemConfig()->getValue('debug', false));
347
+            $content->assign('remoteAddr', $request->getRemoteAddress());
348
+            $content->assign('requestID', $request->getId());
349
+            if ($fetchPage) {
350
+                return $content->fetchPage();
351
+            }
352
+            $content->printPage();
353
+        } catch (\Exception $e) {
354
+            $logger = \OC::$server->getLogger();
355
+            $logger->logException($exception, ['app' => 'core']);
356
+            $logger->logException($e, ['app' => 'core']);
357
+
358
+            header(self::getHttpProtocol() . ' 500 Internal Server Error');
359
+            header('Content-Type: text/plain; charset=utf-8');
360
+            print("Internal Server Error\n\n");
361
+            print("The server encountered an internal error and was unable to complete your request.\n");
362
+            print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n");
363
+            print("More details can be found in the server log.\n");
364
+        }
365
+        die();
366
+    }
367
+
368
+    /**
369
+     * This is only here to reduce the dependencies in case of an exception to
370
+     * still be able to print a plain error message.
371
+     *
372
+     * Returns the used HTTP protocol.
373
+     *
374
+     * @return string HTTP protocol. HTTP/2, HTTP/1.1 or HTTP/1.0.
375
+     * @internal Don't use this - use AppFramework\Http\Request->getHttpProtocol instead
376
+     */
377
+    protected static function getHttpProtocol() {
378
+        $claimedProtocol = strtoupper($_SERVER['SERVER_PROTOCOL']);
379
+        $validProtocols = [
380
+            'HTTP/1.0',
381
+            'HTTP/1.1',
382
+            'HTTP/2',
383
+        ];
384
+        if(in_array($claimedProtocol, $validProtocols, true)) {
385
+            return $claimedProtocol;
386
+        }
387
+        return 'HTTP/1.1';
388
+    }
389 389
 }
Please login to merge, or discard this patch.
Spacing   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 	 *                         "admin".
70 70
 	 * @param bool $registerCall = true
71 71
 	 */
72
-	public function __construct( $app, $name, $renderAs = "", $registerCall = true ) {
72
+	public function __construct($app, $name, $renderAs = "", $registerCall = true) {
73 73
 		// Read the selected theme from the config file
74 74
 		self::initTemplateEngine($renderAs);
75 75
 
@@ -95,19 +95,19 @@  discard block
 block discarded – undo
95 95
 	 * @param string $renderAs
96 96
 	 */
97 97
 	public static function initTemplateEngine($renderAs) {
98
-		if (self::$initTemplateEngineFirstRun){
98
+		if (self::$initTemplateEngineFirstRun) {
99 99
 
100 100
 			//apps that started before the template initialization can load their own scripts/styles
101 101
 			//so to make sure this scripts/styles here are loaded first we use OC_Util::addScript() with $prepend=true
102 102
 			//meaning the last script/style in this list will be loaded first
103
-			if (\OC::$server->getSystemConfig()->getValue ('installed', false) && $renderAs !== 'error' && !\OCP\Util::needUpgrade()) {
104
-				if (\OC::$server->getConfig ()->getAppValue ( 'core', 'backgroundjobs_mode', 'ajax' ) == 'ajax') {
105
-					OC_Util::addScript ( 'backgroundjobs', null, true );
103
+			if (\OC::$server->getSystemConfig()->getValue('installed', false) && $renderAs !== 'error' && !\OCP\Util::needUpgrade()) {
104
+				if (\OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') {
105
+					OC_Util::addScript('backgroundjobs', null, true);
106 106
 				}
107 107
 			}
108 108
 
109
-			OC_Util::addStyle('jquery-ui-fixes',null,true);
110
-			OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true);
109
+			OC_Util::addStyle('jquery-ui-fixes', null, true);
110
+			OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui', null, true);
111 111
 			OC_Util::addStyle('server', null, true);
112 112
 
113 113
 			// avatars
@@ -143,13 +143,13 @@  discard block
 block discarded – undo
143 143
 			// Add the stuff we need always
144 144
 			// following logic will import all vendor libraries that are
145 145
 			// specified in core/js/core.json
146
-			$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
147
-			if($fileContent !== false) {
146
+			$fileContent = file_get_contents(OC::$SERVERROOT.'/core/js/core.json');
147
+			if ($fileContent !== false) {
148 148
 				$coreDependencies = json_decode($fileContent, true);
149
-				foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
149
+				foreach (array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
150 150
 					// remove trailing ".js" as addVendorScript will append it
151 151
 					OC_Util::addVendorScript(
152
-							substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
152
+							substr($vendorLibrary, 0, strlen($vendorLibrary) - 3), null, true);
153 153
 				}
154 154
 			} else {
155 155
 				throw new \Exception('Cannot read core/js/core.json');
@@ -180,12 +180,12 @@  discard block
 block discarded – undo
180 180
 	 */
181 181
 	protected function findTemplate($theme, $app, $name) {
182 182
 		// Check if it is a app template or not.
183
-		if( $app !== '' ) {
183
+		if ($app !== '') {
184 184
 			$dirs = $this->getAppTemplateDirs($theme, $app, OC::$SERVERROOT, OC_App::getAppPath($app));
185 185
 		} else {
186 186
 			$dirs = $this->getCoreTemplateDirs($theme, OC::$SERVERROOT);
187 187
 		}
188
-		$locator = new \OC\Template\TemplateFileLocator( $dirs );
188
+		$locator = new \OC\Template\TemplateFileLocator($dirs);
189 189
 		$template = $locator->find($name);
190 190
 		$path = $locator->getPath();
191 191
 		return array($path, $template);
@@ -198,8 +198,8 @@  discard block
 block discarded – undo
198 198
 	 * @param string $text the text content for the element. If $text is null then the
199 199
 	 * element will be written as empty element. So use "" to get a closing tag.
200 200
 	 */
201
-	public function addHeader($tag, $attributes, $text=null) {
202
-		$this->headers[]= array(
201
+	public function addHeader($tag, $attributes, $text = null) {
202
+		$this->headers[] = array(
203 203
 			'tag' => $tag,
204 204
 			'attributes' => $attributes,
205 205
 			'text' => $text
@@ -216,14 +216,14 @@  discard block
 block discarded – undo
216 216
 	public function fetchPage($additionalParams = null) {
217 217
 		$data = parent::fetchPage($additionalParams);
218 218
 
219
-		if( $this->renderAs ) {
219
+		if ($this->renderAs) {
220 220
 			$page = new TemplateLayout($this->renderAs, $this->app);
221 221
 
222 222
 			// Add custom headers
223 223
 			$headers = '';
224
-			foreach(OC_Util::$headers as $header) {
224
+			foreach (OC_Util::$headers as $header) {
225 225
 				$headers .= '<'.\OCP\Util::sanitizeHTML($header['tag']);
226
-				foreach($header['attributes'] as $name=>$value) {
226
+				foreach ($header['attributes'] as $name=>$value) {
227 227
 					$headers .= ' '.\OCP\Util::sanitizeHTML($name).'="'.\OCP\Util::sanitizeHTML($value).'"';
228 228
 				}
229 229
 				if ($header['text'] !== null) {
@@ -252,7 +252,7 @@  discard block
 block discarded – undo
252 252
 	 * Includes another template. use <?php echo $this->inc('template'); ?> to
253 253
 	 * do this.
254 254
 	 */
255
-	public function inc( $file, $additionalParams = null ) {
255
+	public function inc($file, $additionalParams = null) {
256 256
 		return $this->load($this->path.$file.'.php', $additionalParams);
257 257
 	}
258 258
 
@@ -263,10 +263,10 @@  discard block
 block discarded – undo
263 263
 	 * @param array $parameters Parameters for the template
264 264
 	 * @return boolean|null
265 265
 	 */
266
-	public static function printUserPage( $application, $name, $parameters = array() ) {
267
-		$content = new OC_Template( $application, $name, "user" );
268
-		foreach( $parameters as $key => $value ) {
269
-			$content->assign( $key, $value );
266
+	public static function printUserPage($application, $name, $parameters = array()) {
267
+		$content = new OC_Template($application, $name, "user");
268
+		foreach ($parameters as $key => $value) {
269
+			$content->assign($key, $value);
270 270
 		}
271 271
 		print $content->printPage();
272 272
 	}
@@ -278,10 +278,10 @@  discard block
 block discarded – undo
278 278
 	 * @param array $parameters Parameters for the template
279 279
 	 * @return bool
280 280
 	 */
281
-	public static function printAdminPage( $application, $name, $parameters = array() ) {
282
-		$content = new OC_Template( $application, $name, "admin" );
283
-		foreach( $parameters as $key => $value ) {
284
-			$content->assign( $key, $value );
281
+	public static function printAdminPage($application, $name, $parameters = array()) {
282
+		$content = new OC_Template($application, $name, "admin");
283
+		foreach ($parameters as $key => $value) {
284
+			$content->assign($key, $value);
285 285
 		}
286 286
 		return $content->printPage();
287 287
 	}
@@ -293,10 +293,10 @@  discard block
 block discarded – undo
293 293
 	 * @param array|string $parameters Parameters for the template
294 294
 	 * @return bool
295 295
 	 */
296
-	public static function printGuestPage( $application, $name, $parameters = array() ) {
297
-		$content = new OC_Template( $application, $name, "guest" );
298
-		foreach( $parameters as $key => $value ) {
299
-			$content->assign( $key, $value );
296
+	public static function printGuestPage($application, $name, $parameters = array()) {
297
+		$content = new OC_Template($application, $name, "guest");
298
+		foreach ($parameters as $key => $value) {
299
+			$content->assign($key, $value);
300 300
 		}
301 301
 		return $content->printPage();
302 302
 	}
@@ -306,23 +306,23 @@  discard block
 block discarded – undo
306 306
 		* @param string $error_msg The error message to show
307 307
 		* @param string $hint An optional hint message - needs to be properly escaped
308 308
 		*/
309
-	public static function printErrorPage( $error_msg, $hint = '' ) {
309
+	public static function printErrorPage($error_msg, $hint = '') {
310 310
 		if ($error_msg === $hint) {
311 311
 			// If the hint is the same as the message there is no need to display it twice.
312 312
 			$hint = '';
313 313
 		}
314 314
 
315 315
 		try {
316
-			$content = new \OC_Template( '', 'error', 'error', false );
316
+			$content = new \OC_Template('', 'error', 'error', false);
317 317
 			$errors = array(array('error' => $error_msg, 'hint' => $hint));
318
-			$content->assign( 'errors', $errors );
318
+			$content->assign('errors', $errors);
319 319
 			$content->printPage();
320 320
 		} catch (\Exception $e) {
321 321
 			$logger = \OC::$server->getLogger();
322 322
 			$logger->error("$error_msg $hint", ['app' => 'core']);
323 323
 			$logger->logException($e, ['app' => 'core']);
324 324
 
325
-			header(self::getHttpProtocol() . ' 500 Internal Server Error');
325
+			header(self::getHttpProtocol().' 500 Internal Server Error');
326 326
 			header('Content-Type: text/plain; charset=utf-8');
327 327
 			print("$error_msg $hint");
328 328
 		}
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 			$logger->logException($exception, ['app' => 'core']);
356 356
 			$logger->logException($e, ['app' => 'core']);
357 357
 
358
-			header(self::getHttpProtocol() . ' 500 Internal Server Error');
358
+			header(self::getHttpProtocol().' 500 Internal Server Error');
359 359
 			header('Content-Type: text/plain; charset=utf-8');
360 360
 			print("Internal Server Error\n\n");
361 361
 			print("The server encountered an internal error and was unable to complete your request.\n");
@@ -381,7 +381,7 @@  discard block
 block discarded – undo
381 381
 			'HTTP/1.1',
382 382
 			'HTTP/2',
383 383
 		];
384
-		if(in_array($claimedProtocol, $validProtocols, true)) {
384
+		if (in_array($claimedProtocol, $validProtocols, true)) {
385 385
 			return $claimedProtocol;
386 386
 		}
387 387
 		return 'HTTP/1.1';
Please login to merge, or discard this patch.