Completed
Branch release-2.1 (e49a83)
by Michael
08:59
created
Sources/Subs-Recent.php 1 patch
Braces   +5 added lines, -3 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 3
14 14
  */
15 15
 
16
-if (!defined('SMF'))
16
+if (!defined('SMF')) {
17 17
 	die('No direct access...');
18
+}
18 19
 
19 20
 /**
20 21
  * Get the latest posts of a forum.
@@ -59,8 +60,9 @@  discard block
 block discarded – undo
59 60
 		censorText($row['body']);
60 61
 
61 62
 		$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br>' => '&#10;')));
62
-		if ($smcFunc['strlen']($row['body']) > 128)
63
-			$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';
63
+		if ($smcFunc['strlen']($row['body']) > 128) {
64
+					$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';
65
+		}
64 66
 
65 67
 		// Build the array.
66 68
 		$posts[] = array(
Please login to merge, or discard this patch.
Sources/PackageGet.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -181,14 +181,14 @@  discard block
 block discarded – undo
181 181
 		{
182 182
 			collapsedDiv.show(\'slow\');
183 183
 			icon.removeClass(\'toggle_down\').addClass(\'toggle_up\');
184
-			icon.prop(\'title\', '. JavaScriptEscape($txt['hide']) .');
184
+			icon.prop(\'title\', '. JavaScriptEscape($txt['hide']) . ');
185 185
 		}
186 186
 
187 187
 		else
188 188
 		{
189 189
 			collapsedDiv.hide(\'slow\');
190 190
 			icon.removeClass(\'toggle_up\').addClass(\'toggle_down\');
191
-			icon.prop(\'title\', '. JavaScriptEscape($txt['show']) .');
191
+			icon.prop(\'title\', '. JavaScriptEscape($txt['show']) . ');
192 192
 		}
193 193
 
194 194
 	});', true);
@@ -641,7 +641,7 @@  discard block
 block discarded – undo
641 641
 
642 642
 	// Setup the correct template, even though I'll admit we ain't downloading ;)
643 643
 	$context['sub_template'] = 'downloaded';
644
-	$allowext = array('.zip','.tgz','.gz');
644
+	$allowext = array('.zip', '.tgz', '.gz');
645 645
 	// @todo Use FTP if the Packages directory is not writable.
646 646
 
647 647
 	// Check the file was even sent!
@@ -653,13 +653,13 @@  discard block
 block discarded – undo
653 653
 	// Make sure it has a sane filename.
654 654
 	$_FILES['package']['name'] = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $_FILES['package']['name']);
655 655
 	$extension = substr(strrchr(strtolower($_FILES['package']['name']), '.'), 0);
656
-	if(!in_array($extension, $allowext))
656
+	if (!in_array($extension, $allowext))
657 657
 	{
658 658
 		fatal_lang_error('package_upload_error_supports', false, array('zip, tgz, tar.gz'));
659 659
 	}
660 660
 	
661 661
 	// We only need the filename...
662
-	$extension = ($extension == '.gz') ? '.tar.gz' : $extension ;
662
+	$extension = ($extension == '.gz') ? '.tar.gz' : $extension;
663 663
 	$packageName = time() . $extension;
664 664
 
665 665
 	// Setup the destination and throw an error if the file is already there!
Please login to merge, or discard this patch.
Braces   +197 added lines, -154 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 3
14 14
  */
15 15
 
16
-if (!defined('SMF'))
16
+if (!defined('SMF')) {
17 17
 	die('No direct access...');
18
+}
18 19
 
19 20
 /**
20 21
  * Browse the list of package servers, add servers...
@@ -43,13 +44,15 @@  discard block
 block discarded – undo
43 44
 	);
44 45
 
45 46
 	// Now let's decide where we are taking this...
46
-	if (isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']]))
47
-		$context['sub_action'] = $_REQUEST['sa'];
47
+	if (isset($_REQUEST['sa']) && isset($subActions[$_REQUEST['sa']])) {
48
+			$context['sub_action'] = $_REQUEST['sa'];
49
+	}
48 50
 	// We need to support possible old javascript links...
49
-	elseif (isset($_GET['pgdownload']))
50
-		$context['sub_action'] = 'download';
51
-	else
52
-		$context['sub_action'] = 'servers';
51
+	elseif (isset($_GET['pgdownload'])) {
52
+			$context['sub_action'] = 'download';
53
+	} else {
54
+			$context['sub_action'] = 'servers';
55
+	}
53 56
 
54 57
 	// We need to force the "Download" tab as selected.
55 58
 	$context['menu_data_' . $context['admin_menu_id']]['current_subsection'] = 'packageget';
@@ -141,17 +144,19 @@  discard block
 block discarded – undo
141 144
 			{
142 145
 				require_once($sourcedir . '/Class-Package.php');
143 146
 				$ftp = new ftp_connection(null);
147
+			} elseif ($ftp->error !== false && !isset($ftp_error)) {
148
+							$ftp_error = $ftp->last_message === null ? '' : $ftp->last_message;
144 149
 			}
145
-			elseif ($ftp->error !== false && !isset($ftp_error))
146
-				$ftp_error = $ftp->last_message === null ? '' : $ftp->last_message;
147 150
 
148 151
 			list ($username, $detect_path, $found_path) = $ftp->detect_path($packagesdir);
149 152
 
150
-			if ($found_path || !isset($_POST['ftp_path']))
151
-				$_POST['ftp_path'] = $detect_path;
153
+			if ($found_path || !isset($_POST['ftp_path'])) {
154
+							$_POST['ftp_path'] = $detect_path;
155
+			}
152 156
 
153
-			if (!isset($_POST['ftp_username']))
154
-				$_POST['ftp_username'] = $username;
157
+			if (!isset($_POST['ftp_username'])) {
158
+							$_POST['ftp_username'] = $username;
159
+			}
155 160
 
156 161
 			$context['package_ftp'] = array(
157 162
 				'server' => isset($_POST['ftp_server']) ? $_POST['ftp_server'] : (isset($modSettings['package_server']) ? $modSettings['package_server'] : 'localhost'),
@@ -160,8 +165,7 @@  discard block
 block discarded – undo
160 165
 				'path' => $_POST['ftp_path'],
161 166
 				'error' => empty($ftp_error) ? null : $ftp_error,
162 167
 			);
163
-		}
164
-		else
168
+		} else
165 169
 		{
166 170
 			$context['package_download_broken'] = false;
167 171
 
@@ -203,8 +207,9 @@  discard block
 block discarded – undo
203 207
 
204 208
 	if (isset($_GET['server']))
205 209
 	{
206
-		if ($_GET['server'] == '')
207
-			redirectexit('action=admin;area=packages;get');
210
+		if ($_GET['server'] == '') {
211
+					redirectexit('action=admin;area=packages;get');
212
+		}
208 213
 
209 214
 		$server = (int) $_GET['server'];
210 215
 
@@ -222,17 +227,18 @@  discard block
 block discarded – undo
222 227
 		$smcFunc['db_free_result']($request);
223 228
 
224 229
 		// If the server does not exist, dump out.
225
-		if (empty($url))
226
-			fatal_lang_error('couldnt_connect', false);
230
+		if (empty($url)) {
231
+					fatal_lang_error('couldnt_connect', false);
232
+		}
227 233
 
228 234
 		// If there is a relative link, append to the stored server url.
229
-		if (isset($_GET['relative']))
230
-			$url = $url . (substr($url, -1) == '/' ? '' : '/') . $_GET['relative'];
235
+		if (isset($_GET['relative'])) {
236
+					$url = $url . (substr($url, -1) == '/' ? '' : '/') . $_GET['relative'];
237
+		}
231 238
 
232 239
 		// Clear any "absolute" URL.  Since "server" is present, "absolute" is garbage.
233 240
 		unset($_GET['absolute']);
234
-	}
235
-	elseif (isset($_GET['absolute']) && $_GET['absolute'] != '')
241
+	} elseif (isset($_GET['absolute']) && $_GET['absolute'] != '')
236 242
 	{
237 243
 		// Initialize the requried variables.
238 244
 		$server = '';
@@ -256,16 +262,19 @@  discard block
 block discarded – undo
256 262
 		}
257 263
 	}
258 264
 	// Minimum required parameter did not exist so dump out.
259
-	else
260
-		fatal_lang_error('couldnt_connect', false);
265
+	else {
266
+			fatal_lang_error('couldnt_connect', false);
267
+	}
261 268
 
262 269
 	// Attempt to connect.  If unsuccessful... try the URL.
263
-	if (!isset($_GET['package']) || file_exists($_GET['package']))
264
-		$_GET['package'] = $url . '/packages.xml?language=' . $context['user']['language'];
270
+	if (!isset($_GET['package']) || file_exists($_GET['package'])) {
271
+			$_GET['package'] = $url . '/packages.xml?language=' . $context['user']['language'];
272
+	}
265 273
 
266 274
 	// Check to be sure the packages.xml file actually exists where it is should be... or dump out.
267
-	if ((isset($_GET['absolute']) || isset($_GET['relative'])) && !url_exists($_GET['package']))
268
-		fatal_lang_error('packageget_unable', false, array($url . '/index.php'));
275
+	if ((isset($_GET['absolute']) || isset($_GET['relative'])) && !url_exists($_GET['package'])) {
276
+			fatal_lang_error('packageget_unable', false, array($url . '/index.php'));
277
+	}
269 278
 
270 279
 	// Might take some time.
271 280
 	@set_time_limit(600);
@@ -275,8 +284,9 @@  discard block
 block discarded – undo
275 284
 	$listing = new xmlArray(fetch_web_data($_GET['package']), true);
276 285
 
277 286
 	// Errm.... empty file?  Try the URL....
278
-	if (!$listing->exists('package-list'))
279
-		fatal_lang_error('packageget_unable', false, array($url . '/index.php'));
287
+	if (!$listing->exists('package-list')) {
288
+			fatal_lang_error('packageget_unable', false, array($url . '/index.php'));
289
+	}
280 290
 
281 291
 	// List out the packages...
282 292
 	$context['package_list'] = array();
@@ -284,8 +294,9 @@  discard block
 block discarded – undo
284 294
 	$listing = $listing->path('package-list[0]');
285 295
 
286 296
 	// Use the package list's name if it exists.
287
-	if ($listing->exists('list-title'))
288
-		$name = $smcFunc['htmlspecialchars']($listing->fetch('list-title'));
297
+	if ($listing->exists('list-title')) {
298
+			$name = $smcFunc['htmlspecialchars']($listing->fetch('list-title'));
299
+	}
289 300
 
290 301
 	// Pick the correct template.
291 302
 	$context['sub_template'] = 'package_list';
@@ -300,28 +311,32 @@  discard block
 block discarded – undo
300 311
 
301 312
 	$installed_mods = array();
302 313
 	// Look through the list of installed mods...
303
-	foreach ($instmods as $installed_mod)
304
-		$installed_mods[$installed_mod['package_id']] = $installed_mod['version'];
314
+	foreach ($instmods as $installed_mod) {
315
+			$installed_mods[$installed_mod['package_id']] = $installed_mod['version'];
316
+	}
305 317
 
306 318
 	// Get default author and email if they exist.
307 319
 	if ($listing->exists('default-author'))
308 320
 	{
309 321
 		$default_author = $smcFunc['htmlspecialchars']($listing->fetch('default-author'));
310
-		if ($listing->exists('default-author/@email') && filter_var($listing->fetch('default-author/@email'), FILTER_VALIDATE_EMAIL))
311
-			$default_email = $smcFunc['htmlspecialchars']($listing->fetch('default-author/@email'));
322
+		if ($listing->exists('default-author/@email') && filter_var($listing->fetch('default-author/@email'), FILTER_VALIDATE_EMAIL)) {
323
+					$default_email = $smcFunc['htmlspecialchars']($listing->fetch('default-author/@email'));
324
+		}
312 325
 	}
313 326
 
314 327
 	// Get default web site if it exists.
315 328
 	if ($listing->exists('default-website'))
316 329
 	{
317 330
 		$default_website = $smcFunc['htmlspecialchars']($listing->fetch('default-website'));
318
-		if ($listing->exists('default-website/@title'))
319
-			$default_title = $smcFunc['htmlspecialchars']($listing->fetch('default-website/@title'));
331
+		if ($listing->exists('default-website/@title')) {
332
+					$default_title = $smcFunc['htmlspecialchars']($listing->fetch('default-website/@title'));
333
+		}
320 334
 	}
321 335
 
322 336
 	$the_version = strtr($forum_version, array('SMF ' => ''));
323
-	if (!empty($_SESSION['version_emulate']))
324
-		$the_version = $_SESSION['version_emulate'];
337
+	if (!empty($_SESSION['version_emulate'])) {
338
+			$the_version = $_SESSION['version_emulate'];
339
+	}
325 340
 
326 341
 	$packageNum = 0;
327 342
 	$packageSection = 0;
@@ -342,11 +357,13 @@  discard block
 block discarded – undo
342 357
 				'type' => $thisPackage->name(),
343 358
 			);
344 359
 
345
-			if (in_array($package['type'], array('title', 'text')))
346
-				$context['package_list'][$packageSection][$package['type']] = $smcFunc['htmlspecialchars']($thisPackage->fetch('.'));
360
+			if (in_array($package['type'], array('title', 'text'))) {
361
+							$context['package_list'][$packageSection][$package['type']] = $smcFunc['htmlspecialchars']($thisPackage->fetch('.'));
362
+			}
347 363
 			// It's a Title, Heading, Rule or Text.
348
-			elseif (in_array($package['type'], array('heading', 'rule')))
349
-				$package['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('.'));
364
+			elseif (in_array($package['type'], array('heading', 'rule'))) {
365
+							$package['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('.'));
366
+			}
350 367
 			// It's a Remote link.
351 368
 			elseif ($package['type'] == 'remote')
352 369
 			{
@@ -354,20 +371,21 @@  discard block
 block discarded – undo
354 371
 
355 372
 				if ($remote_type == 'relative' && substr($thisPackage->fetch('@href'), 0, 7) != 'http://' && substr($thisPackage->fetch('@href'), 0, 8) != 'https://')
356 373
 				{
357
-					if (isset($_GET['absolute']))
358
-						$current_url = $_GET['absolute'] . '/';
359
-					elseif (isset($_GET['relative']))
360
-						$current_url = $_GET['relative'] . '/';
361
-					else
362
-						$current_url = '';
374
+					if (isset($_GET['absolute'])) {
375
+											$current_url = $_GET['absolute'] . '/';
376
+					} elseif (isset($_GET['relative'])) {
377
+											$current_url = $_GET['relative'] . '/';
378
+					} else {
379
+											$current_url = '';
380
+					}
363 381
 
364 382
 					$current_url .= $thisPackage->fetch('@href');
365
-					if (isset($_GET['absolute']))
366
-						$package['href'] = $scripturl . '?action=admin;area=packages;get;sa=browse;absolute=' . $current_url;
367
-					else
368
-						$package['href'] = $scripturl . '?action=admin;area=packages;get;sa=browse;server=' . $context['package_server'] . ';relative=' . $current_url;
369
-				}
370
-				else
383
+					if (isset($_GET['absolute'])) {
384
+											$package['href'] = $scripturl . '?action=admin;area=packages;get;sa=browse;absolute=' . $current_url;
385
+					} else {
386
+											$package['href'] = $scripturl . '?action=admin;area=packages;get;sa=browse;server=' . $context['package_server'] . ';relative=' . $current_url;
387
+					}
388
+				} else
371 389
 				{
372 390
 					$current_url = $thisPackage->fetch('@href');
373 391
 					$package['href'] = $scripturl . '?action=admin;area=packages;get;sa=browse;absolute=' . $current_url;
@@ -379,25 +397,28 @@  discard block
 block discarded – undo
379 397
 			// It's a package...
380 398
 			else
381 399
 			{
382
-				if (isset($_GET['absolute']))
383
-					$current_url = $_GET['absolute'] . '/';
384
-				elseif (isset($_GET['relative']))
385
-					$current_url = $_GET['relative'] . '/';
386
-				else
387
-					$current_url = '';
400
+				if (isset($_GET['absolute'])) {
401
+									$current_url = $_GET['absolute'] . '/';
402
+				} elseif (isset($_GET['relative'])) {
403
+									$current_url = $_GET['relative'] . '/';
404
+				} else {
405
+									$current_url = '';
406
+				}
388 407
 
389 408
 				$server_att = $server != '' ? ';server=' . $server : '';
390 409
 
391 410
 				$package += $thisPackage->to_array();
392 411
 
393
-				if (isset($package['website']))
394
-					unset($package['website']);
412
+				if (isset($package['website'])) {
413
+									unset($package['website']);
414
+				}
395 415
 				$package['author'] = array();
396 416
 
397
-				if ($package['description'] == '')
398
-					$package['description'] = $txt['package_no_description'];
399
-				else
400
-					$package['description'] = parse_bbc(preg_replace('~\[[/]?html\]~i', '', $smcFunc['htmlspecialchars']($package['description'])));
417
+				if ($package['description'] == '') {
418
+									$package['description'] = $txt['package_no_description'];
419
+				} else {
420
+									$package['description'] = parse_bbc(preg_replace('~\[[/]?html\]~i', '', $smcFunc['htmlspecialchars']($package['description'])));
421
+				}
401 422
 
402 423
 				$package['is_installed'] = isset($installed_mods[$package['id']]);
403 424
 				$package['is_current'] = $package['is_installed'] && ($installed_mods[$package['id']] == $package['version']);
@@ -406,12 +427,14 @@  discard block
 block discarded – undo
406 427
 				// This package is either not installed, or installed but old.  Is it supported on this version of SMF?
407 428
 				if (!$package['is_installed'] || (!$package['is_current'] && !$package['is_newer']))
408 429
 				{
409
-					if ($thisPackage->exists('version/@for'))
410
-						$package['can_install'] = matchPackageVersion($the_version, $thisPackage->fetch('version/@for'));
430
+					if ($thisPackage->exists('version/@for')) {
431
+											$package['can_install'] = matchPackageVersion($the_version, $thisPackage->fetch('version/@for'));
432
+					}
411 433
 				}
412 434
 				// Okay, it's already installed AND up to date.
413
-				else
414
-					$package['can_install'] = false;
435
+				else {
436
+									$package['can_install'] = false;
437
+				}
415 438
 
416 439
 				$already_exists = getPackageInfo(basename($package['filename']));
417 440
 				$package['download_conflict'] = is_array($already_exists) && $already_exists['id'] == $package['id'] && $already_exists['version'] != $package['version'];
@@ -423,40 +446,44 @@  discard block
 block discarded – undo
423 446
 
424 447
 				if ($thisPackage->exists('author') || isset($default_author))
425 448
 				{
426
-					if ($thisPackage->exists('author/@email') && filter_var($thisPackage->fetch('author/@email'), FILTER_VALIDATE_EMAIL))
427
-						$package['author']['email'] = $thisPackage->fetch('author/@email');
428
-					elseif (isset($default_email))
429
-						$package['author']['email'] = $default_email;
430
-
431
-					if ($thisPackage->exists('author') && $thisPackage->fetch('author') != '')
432
-						$package['author']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('author'));
433
-					else
434
-						$package['author']['name'] = $default_author;
435
-
436
-					if (!empty($package['author']['email']))
437
-						$package['author']['link'] = '<a href="mailto:' . $package['author']['email'] . '">' . $package['author']['name'] . '</a>';
449
+					if ($thisPackage->exists('author/@email') && filter_var($thisPackage->fetch('author/@email'), FILTER_VALIDATE_EMAIL)) {
450
+											$package['author']['email'] = $thisPackage->fetch('author/@email');
451
+					} elseif (isset($default_email)) {
452
+											$package['author']['email'] = $default_email;
453
+					}
454
+
455
+					if ($thisPackage->exists('author') && $thisPackage->fetch('author') != '') {
456
+											$package['author']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('author'));
457
+					} else {
458
+											$package['author']['name'] = $default_author;
459
+					}
460
+
461
+					if (!empty($package['author']['email'])) {
462
+											$package['author']['link'] = '<a href="mailto:' . $package['author']['email'] . '">' . $package['author']['name'] . '</a>';
463
+					}
438 464
 				}
439 465
 
440 466
 				if ($thisPackage->exists('website') || isset($default_website))
441 467
 				{
442
-					if ($thisPackage->exists('website') && $thisPackage->exists('website/@title'))
443
-						$package['author']['website']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('website/@title'));
444
-					elseif (isset($default_title))
445
-						$package['author']['website']['name'] = $default_title;
446
-					elseif ($thisPackage->exists('website'))
447
-						$package['author']['website']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('website'));
448
-					else
449
-						$package['author']['website']['name'] = $default_website;
450
-
451
-					if ($thisPackage->exists('website') && $thisPackage->fetch('website') != '')
452
-						$authorhompage = $smcFunc['htmlspecialchars']($thisPackage->fetch('website'));
453
-					else
454
-						$authorhompage = $default_website;
468
+					if ($thisPackage->exists('website') && $thisPackage->exists('website/@title')) {
469
+											$package['author']['website']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('website/@title'));
470
+					} elseif (isset($default_title)) {
471
+											$package['author']['website']['name'] = $default_title;
472
+					} elseif ($thisPackage->exists('website')) {
473
+											$package['author']['website']['name'] = $smcFunc['htmlspecialchars']($thisPackage->fetch('website'));
474
+					} else {
475
+											$package['author']['website']['name'] = $default_website;
476
+					}
477
+
478
+					if ($thisPackage->exists('website') && $thisPackage->fetch('website') != '') {
479
+											$authorhompage = $smcFunc['htmlspecialchars']($thisPackage->fetch('website'));
480
+					} else {
481
+											$authorhompage = $default_website;
482
+					}
455 483
 
456 484
 					$package['author']['website']['href'] = $authorhompage;
457 485
 					$package['author']['website']['link'] = '<a href="' . $authorhompage . '">' . $package['author']['website']['name'] . '</a>';
458
-				}
459
-				else
486
+				} else
460 487
 				{
461 488
 					$package['author']['website']['href'] = '';
462 489
 					$package['author']['website']['link'] = '';
@@ -472,11 +499,13 @@  discard block
 block discarded – undo
472 499
 			$packageNum = in_array($package['type'], array('title', 'heading', 'text', 'remote', 'rule')) ? 0 : $packageNum + 1;
473 500
 			$package['count'] = $packageNum;
474 501
 
475
-			if (!in_array($package['type'], array('title', 'text')))
476
-				$context['package_list'][$packageSection]['items'][] = $package;
502
+			if (!in_array($package['type'], array('title', 'text'))) {
503
+							$context['package_list'][$packageSection]['items'][] = $package;
504
+			}
477 505
 
478
-			if ($package['count'] > 1)
479
-				$context['list_type'] = 'ol';
506
+			if ($package['count'] > 1) {
507
+							$context['list_type'] = 'ol';
508
+			}
480 509
 		}
481 510
 
482 511
 		$packageSection++;
@@ -489,8 +518,9 @@  discard block
 block discarded – undo
489 518
 	{
490 519
 		foreach ($packageSection['items'] as $i => $package)
491 520
 		{
492
-			if ($package['count'] == 0 || isset($package['can_install']))
493
-				continue;
521
+			if ($package['count'] == 0 || isset($package['can_install'])) {
522
+							continue;
523
+			}
494 524
 
495 525
 			$context['package_list'][$ps_id]['items'][$i]['can_install'] = false;
496 526
 
@@ -539,8 +569,9 @@  discard block
 block discarded – undo
539 569
 	checkSession('get');
540 570
 
541 571
 	// To download something, we need a valid server or url.
542
-	if (empty($_GET['server']) && (!empty($_GET['get']) && !empty($_REQUEST['package'])))
543
-		fatal_lang_error('package_get_error_is_zero', false);
572
+	if (empty($_GET['server']) && (!empty($_GET['get']) && !empty($_REQUEST['package']))) {
573
+			fatal_lang_error('package_get_error_is_zero', false);
574
+	}
544 575
 
545 576
 	if (isset($_GET['server']))
546 577
 	{
@@ -560,22 +591,23 @@  discard block
 block discarded – undo
560 591
 		$smcFunc['db_free_result']($request);
561 592
 
562 593
 		// If server does not exist then dump out.
563
-		if (empty($url))
564
-			fatal_lang_error('couldnt_connect', false);
594
+		if (empty($url)) {
595
+					fatal_lang_error('couldnt_connect', false);
596
+		}
565 597
 
566 598
 		$url = $url . '/';
567
-	}
568
-	else
599
+	} else
569 600
 	{
570 601
 		// Initialize the requried variables.
571 602
 		$server = '';
572 603
 		$url = '';
573 604
 	}
574 605
 
575
-	if (isset($_REQUEST['byurl']) && !empty($_POST['filename']))
576
-		$package_name = basename($_REQUEST['filename']);
577
-	else
578
-		$package_name = basename($_REQUEST['package']);
606
+	if (isset($_REQUEST['byurl']) && !empty($_POST['filename'])) {
607
+			$package_name = basename($_REQUEST['filename']);
608
+	} else {
609
+			$package_name = basename($_REQUEST['package']);
610
+	}
579 611
 
580 612
 	if (isset($_REQUEST['conflict']) || (isset($_REQUEST['auto']) && file_exists($packagesdir . '/' . $package_name)))
581 613
 	{
@@ -584,14 +616,15 @@  discard block
 block discarded – undo
584 616
 		{
585 617
 			$ext = substr($package_name, strrpos(substr($package_name, 0, -3), '.'));
586 618
 			$package_name = substr($package_name, 0, strrpos(substr($package_name, 0, -3), '.')) . '_';
619
+		} else {
620
+					$ext = '';
587 621
 		}
588
-		else
589
-			$ext = '';
590 622
 
591 623
 		// Find the first available.
592 624
 		$i = 1;
593
-		while (file_exists($packagesdir . '/' . $package_name . $i . $ext))
594
-			$i++;
625
+		while (file_exists($packagesdir . '/' . $package_name . $i . $ext)) {
626
+					$i++;
627
+		}
595 628
 
596 629
 		$package_name = $package_name . $i . $ext;
597 630
 	}
@@ -601,25 +634,28 @@  discard block
 block discarded – undo
601 634
 	package_put_contents($packagesdir . '/' . $package_name, fetch_web_data($url . $_REQUEST['package']));
602 635
 
603 636
 	// Done!  Did we get this package automatically?
604
-	if (preg_match('~^http://[\w_\-]+\.simplemachines\.org/~', $_REQUEST['package']) == 1 && strpos($_REQUEST['package'], 'dlattach') === false && isset($_REQUEST['auto']))
605
-		redirectexit('action=admin;area=packages;sa=install;package=' . $package_name);
637
+	if (preg_match('~^http://[\w_\-]+\.simplemachines\.org/~', $_REQUEST['package']) == 1 && strpos($_REQUEST['package'], 'dlattach') === false && isset($_REQUEST['auto'])) {
638
+			redirectexit('action=admin;area=packages;sa=install;package=' . $package_name);
639
+	}
606 640
 
607 641
 	// You just downloaded a mod from SERVER_NAME_GOES_HERE.
608 642
 	$context['package_server'] = $server;
609 643
 
610 644
 	$context['package'] = getPackageInfo($package_name);
611 645
 
612
-	if (!is_array($context['package']))
613
-		fatal_lang_error('package_cant_download', false);
646
+	if (!is_array($context['package'])) {
647
+			fatal_lang_error('package_cant_download', false);
648
+	}
614 649
 
615
-	if ($context['package']['type'] == 'modification')
616
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['install_mod'] . ' ]</a>';
617
-	elseif ($context['package']['type'] == 'avatar')
618
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['use_avatars'] . ' ]</a>';
619
-	elseif ($context['package']['type'] == 'language')
620
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['add_languages'] . ' ]</a>';
621
-	else
622
-		$context['package']['install']['link'] = '';
650
+	if ($context['package']['type'] == 'modification') {
651
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['install_mod'] . ' ]</a>';
652
+	} elseif ($context['package']['type'] == 'avatar') {
653
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['use_avatars'] . ' ]</a>';
654
+	} elseif ($context['package']['type'] == 'language') {
655
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['add_languages'] . ' ]</a>';
656
+	} else {
657
+			$context['package']['install']['link'] = '';
658
+	}
623 659
 
624 660
 	// Does a 3rd party hook want to do some additional changes?
625 661
 	call_integration_hook('integrate_package_download');
@@ -645,10 +681,11 @@  discard block
 block discarded – undo
645 681
 	// @todo Use FTP if the Packages directory is not writable.
646 682
 
647 683
 	// Check the file was even sent!
648
-	if (!isset($_FILES['package']['name']) || $_FILES['package']['name'] == '')
649
-		fatal_lang_error('package_upload_error_nofile');
650
-	elseif (!is_uploaded_file($_FILES['package']['tmp_name']) || (ini_get('open_basedir') == '' && !file_exists($_FILES['package']['tmp_name'])))
651
-		fatal_lang_error('package_upload_error_failed');
684
+	if (!isset($_FILES['package']['name']) || $_FILES['package']['name'] == '') {
685
+			fatal_lang_error('package_upload_error_nofile');
686
+	} elseif (!is_uploaded_file($_FILES['package']['tmp_name']) || (ini_get('open_basedir') == '' && !file_exists($_FILES['package']['tmp_name']))) {
687
+			fatal_lang_error('package_upload_error_failed');
688
+	}
652 689
 
653 690
 	// Make sure it has a sane filename.
654 691
 	$_FILES['package']['name'] = preg_replace(array('/\s/', '/\.[\.]+/', '/[^\w_\.\-]/'), array('_', '.', ''), $_FILES['package']['name']);
@@ -665,8 +702,9 @@  discard block
 block discarded – undo
665 702
 	// Setup the destination and throw an error if the file is already there!
666 703
 	$destination = $packagesdir . '/' . $packageName;
667 704
 	// @todo Maybe just roll it like we do for downloads?
668
-	if (file_exists($destination))
669
-		fatal_lang_error('package_upload_error_exists');
705
+	if (file_exists($destination)) {
706
+			fatal_lang_error('package_upload_error_exists');
707
+	}
670 708
 
671 709
 	// Now move the file.
672 710
 	move_uploaded_file($_FILES['package']['tmp_name'], $destination);
@@ -689,12 +727,14 @@  discard block
 block discarded – undo
689 727
 	{
690 728
 		while ($package = readdir($dir))
691 729
 		{
692
-			if ($package == '.' || $package == '..' || $package == 'temp' || $package == $packageName || (!(is_dir($packagesdir . '/' . $package) && file_exists($packagesdir . '/' . $package . '/package-info.xml')) && substr(strtolower($package), -7) != '.tar.gz' && substr(strtolower($package), -4) != '.tgz' && substr(strtolower($package), -4) != '.zip'))
693
-				continue;
730
+			if ($package == '.' || $package == '..' || $package == 'temp' || $package == $packageName || (!(is_dir($packagesdir . '/' . $package) && file_exists($packagesdir . '/' . $package . '/package-info.xml')) && substr(strtolower($package), -7) != '.tar.gz' && substr(strtolower($package), -4) != '.tgz' && substr(strtolower($package), -4) != '.zip')) {
731
+							continue;
732
+			}
694 733
 
695 734
 			$packageInfo = getPackageInfo($package);
696
-			if (!is_array($packageInfo))
697
-				continue;
735
+			if (!is_array($packageInfo)) {
736
+							continue;
737
+			}
698 738
 
699 739
 			if ($packageInfo['id'] == $context['package']['id'] && $packageInfo['version'] == $context['package']['version'])
700 740
 			{
@@ -706,14 +746,15 @@  discard block
 block discarded – undo
706 746
 		closedir($dir);
707 747
 	}
708 748
 
709
-	if ($context['package']['type'] == 'modification')
710
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['install_mod'] . ' ]</a>';
711
-	elseif ($context['package']['type'] == 'avatar')
712
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['use_avatars'] . ' ]</a>';
713
-	elseif ($context['package']['type'] == 'language')
714
-		$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['add_languages'] . ' ]</a>';
715
-	else
716
-		$context['package']['install']['link'] = '';
749
+	if ($context['package']['type'] == 'modification') {
750
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['install_mod'] . ' ]</a>';
751
+	} elseif ($context['package']['type'] == 'avatar') {
752
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['use_avatars'] . ' ]</a>';
753
+	} elseif ($context['package']['type'] == 'language') {
754
+			$context['package']['install']['link'] = '<a href="' . $scripturl . '?action=admin;area=packages;sa=install;package=' . $context['package']['filename'] . '">[ ' . $txt['add_languages'] . ' ]</a>';
755
+	} else {
756
+			$context['package']['install']['link'] = '';
757
+	}
717 758
 
718 759
 	// Does a 3rd party hook want to do some additional changes?
719 760
 	call_integration_hook('integrate_package_upload');
@@ -736,16 +777,18 @@  discard block
 block discarded – undo
736 777
 	checkSession();
737 778
 
738 779
 	// If they put a slash on the end, get rid of it.
739
-	if (substr($_POST['serverurl'], -1) == '/')
740
-		$_POST['serverurl'] = substr($_POST['serverurl'], 0, -1);
780
+	if (substr($_POST['serverurl'], -1) == '/') {
781
+			$_POST['serverurl'] = substr($_POST['serverurl'], 0, -1);
782
+	}
741 783
 
742 784
 	// Are they both nice and clean?
743 785
 	$servername = trim($smcFunc['htmlspecialchars']($_POST['servername']));
744 786
 	$serverurl = trim($smcFunc['htmlspecialchars']($_POST['serverurl']));
745 787
 
746 788
 	// Make sure the URL has the correct prefix.
747
-	if (strpos($serverurl, 'http://') !== 0 && strpos($serverurl, 'https://') !== 0)
748
-		$serverurl = 'http://' . $serverurl;
789
+	if (strpos($serverurl, 'http://') !== 0 && strpos($serverurl, 'https://') !== 0) {
790
+			$serverurl = 'http://' . $serverurl;
791
+	}
749 792
 
750 793
 	$smcFunc['db_insert']('',
751 794
 		'{db_prefix}package_servers',
Please login to merge, or discard this patch.
Sources/SplitTopics.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -360,7 +360,7 @@  discard block
 block discarded – undo
360 360
 		)
361 361
 	);
362 362
 	$context['messages'] = array();
363
-	for ($counter = 0; $row = $smcFunc['db_fetch_assoc']($request); $counter ++)
363
+	for ($counter = 0; $row = $smcFunc['db_fetch_assoc']($request); $counter++)
364 364
 	{
365 365
 		censorText($row['subject']);
366 366
 		censorText($row['body']);
@@ -400,7 +400,7 @@  discard block
 block discarded – undo
400 400
 			)
401 401
 		);
402 402
 		$context['messages'] = array();
403
-		for ($counter = 0; $row = $smcFunc['db_fetch_assoc']($request); $counter ++)
403
+		for ($counter = 0; $row = $smcFunc['db_fetch_assoc']($request); $counter++)
404 404
 		{
405 405
 			censorText($row['subject']);
406 406
 			censorText($row['body']);
@@ -1098,7 +1098,7 @@  discard block
 block discarded – undo
1098 1098
 			$firstTopic = $row['id_topic'];
1099 1099
 
1100 1100
 		// Lowest topic id gets selected as surviving topic id. We need to store this board so we can adjust the topic count (This one will not have a redirect topic)
1101
-		if($row['id_topic'] < $lowestTopicId || empty($lowestTopicId) )
1101
+		if ($row['id_topic'] < $lowestTopicId || empty($lowestTopicId))
1102 1102
 		{
1103 1103
 			$lowestTopicId = $row['id_topic'];
1104 1104
 			$lowestTopicBoard = $row['id_board'];
@@ -1404,7 +1404,7 @@  discard block
 block discarded – undo
1404 1404
 			}
1405 1405
 
1406 1406
 			// Update subject search index
1407
-			updateStats('subject',$this_old_topic,$redirect_subject);
1407
+			updateStats('subject', $this_old_topic, $redirect_subject);
1408 1408
 		}
1409 1409
 	}
1410 1410
 
Please login to merge, or discard this patch.
Braces   +260 added lines, -186 removed lines patch added patch discarded remove patch
@@ -15,8 +15,9 @@  discard block
 block discarded – undo
15 15
  * Original module by Mach8 - We'll never forget you.
16 16
  */
17 17
 
18
-if (!defined('SMF'))
18
+if (!defined('SMF')) {
19 19
 	die('No direct access...');
20
+}
20 21
 
21 22
 /**
22 23
  * splits a topic into two topics.
@@ -30,15 +31,17 @@  discard block
 block discarded – undo
30 31
 	global $topic, $sourcedir;
31 32
 
32 33
 	// And... which topic were you splitting, again?
33
-	if (empty($topic))
34
-		fatal_lang_error('numbers_one_to_nine', false);
34
+	if (empty($topic)) {
35
+			fatal_lang_error('numbers_one_to_nine', false);
36
+	}
35 37
 
36 38
 	// Are you allowed to split topics?
37 39
 	isAllowedTo('split_any');
38 40
 
39 41
 	// Load up the "dependencies" - the template, getMsgMemberID(), and sendNotifications().
40
-	if (!isset($_REQUEST['xml']))
41
-		loadTemplate('SplitTopics');
42
+	if (!isset($_REQUEST['xml'])) {
43
+			loadTemplate('SplitTopics');
44
+	}
42 45
 	require_once($sourcedir . '/Subs-Boards.php');
43 46
 	require_once($sourcedir . '/Subs-Post.php');
44 47
 
@@ -50,12 +53,12 @@  discard block
 block discarded – undo
50 53
 	);
51 54
 
52 55
 	// ?action=splittopics;sa=LETSBREAKIT won't work, sorry.
53
-	if (empty($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']]))
54
-		SplitIndex();
55
-
56
-	else
57
-		call_helper($subActions[$_REQUEST['sa']]);
58
-}
56
+	if (empty($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']])) {
57
+			SplitIndex();
58
+	} else {
59
+			call_helper($subActions[$_REQUEST['sa']]);
60
+	}
61
+	}
59 62
 
60 63
 /**
61 64
  * screen shown before the actual split.
@@ -71,8 +74,9 @@  discard block
 block discarded – undo
71 74
 	global $txt, $topic, $context, $smcFunc, $modSettings;
72 75
 
73 76
 	// Validate "at".
74
-	if (empty($_GET['at']))
75
-		fatal_lang_error('numbers_one_to_nine', false);
77
+	if (empty($_GET['at'])) {
78
+			fatal_lang_error('numbers_one_to_nine', false);
79
+	}
76 80
 	$_GET['at'] = (int) $_GET['at'];
77 81
 
78 82
 	// Retrieve the subject and stuff of the specific topic/message.
@@ -89,26 +93,31 @@  discard block
 block discarded – undo
89 93
 			'split_at' => $_GET['at'],
90 94
 		)
91 95
 	);
92
-	if ($smcFunc['db_num_rows']($request) == 0)
93
-		fatal_lang_error('cant_find_messages');
96
+	if ($smcFunc['db_num_rows']($request) == 0) {
97
+			fatal_lang_error('cant_find_messages');
98
+	}
94 99
 	list ($_REQUEST['subname'], $num_replies, $unapproved_posts, $id_first_msg, $approved) = $smcFunc['db_fetch_row']($request);
95 100
 	$smcFunc['db_free_result']($request);
96 101
 
97 102
 	// If not approved validate they can see it.
98
-	if ($modSettings['postmod_active'] && !$approved)
99
-		isAllowedTo('approve_posts');
103
+	if ($modSettings['postmod_active'] && !$approved) {
104
+			isAllowedTo('approve_posts');
105
+	}
100 106
 
101 107
 	// If this topic has unapproved posts, we need to count them too...
102
-	if ($modSettings['postmod_active'] && allowedTo('approve_posts'))
103
-		$num_replies += $unapproved_posts - ($approved ? 0 : 1);
108
+	if ($modSettings['postmod_active'] && allowedTo('approve_posts')) {
109
+			$num_replies += $unapproved_posts - ($approved ? 0 : 1);
110
+	}
104 111
 
105 112
 	// Check if there is more than one message in the topic.  (there should be.)
106
-	if ($num_replies < 1)
107
-		fatal_lang_error('topic_one_post', false);
113
+	if ($num_replies < 1) {
114
+			fatal_lang_error('topic_one_post', false);
115
+	}
108 116
 
109 117
 	// Check if this is the first message in the topic (if so, the first and second option won't be available)
110
-	if ($id_first_msg == $_GET['at'])
111
-		return SplitSelectTopics();
118
+	if ($id_first_msg == $_GET['at']) {
119
+			return SplitSelectTopics();
120
+	}
112 121
 
113 122
 	// Basic template information....
114 123
 	$context['message'] = array(
@@ -137,8 +146,9 @@  discard block
 block discarded – undo
137 146
 	checkSession();
138 147
 
139 148
 	// Clean up the subject.
140
-	if (!isset($_POST['subname']) || $_POST['subname'] == '')
141
-		$_POST['subname'] = $txt['new_topic'];
149
+	if (!isset($_POST['subname']) || $_POST['subname'] == '') {
150
+			$_POST['subname'] = $txt['new_topic'];
151
+	}
142 152
 
143 153
 	// Redirect to the selector if they chose selective.
144 154
 	if ($_POST['step2'] == 'selective')
@@ -163,16 +173,19 @@  discard block
 block discarded – undo
163 173
 				'split_at' => $_POST['at'],
164 174
 			)
165 175
 		);
166
-		while ($row = $smcFunc['db_fetch_assoc']($request))
167
-			$messagesToBeSplit[] = $row['id_msg'];
176
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
177
+					$messagesToBeSplit[] = $row['id_msg'];
178
+		}
168 179
 		$smcFunc['db_free_result']($request);
169 180
 	}
170 181
 	// Only the selected message has to be split. That should be easy.
171
-	elseif ($_POST['step2'] == 'onlythis')
172
-		$messagesToBeSplit[] = $_POST['at'];
182
+	elseif ($_POST['step2'] == 'onlythis') {
183
+			$messagesToBeSplit[] = $_POST['at'];
184
+	}
173 185
 	// There's another action?!
174
-	else
175
-		fatal_lang_error('no_access', false);
186
+	else {
187
+			fatal_lang_error('no_access', false);
188
+	}
176 189
 
177 190
 	$context['old_topic'] = $topic;
178 191
 	$context['new_topic'] = splitTopic($topic, $messagesToBeSplit, $_POST['subname']);
@@ -199,8 +212,9 @@  discard block
 block discarded – undo
199 212
 	$_SESSION['split_selection'][$topic] = empty($_SESSION['split_selection'][$topic]) ? array() : $_SESSION['split_selection'][$topic];
200 213
 
201 214
 	// This is a special case for split topics from quick-moderation checkboxes
202
-	if (isset($_REQUEST['subname_enc']))
203
-		$_REQUEST['subname'] = urldecode($_REQUEST['subname_enc']);
215
+	if (isset($_REQUEST['subname_enc'])) {
216
+			$_REQUEST['subname'] = urldecode($_REQUEST['subname_enc']);
217
+	}
204 218
 
205 219
 	$context['not_selected'] = array(
206 220
 		'num_messages' => 0,
@@ -252,10 +266,12 @@  discard block
 block discarded – undo
252 266
 			)
253 267
 		);
254 268
 		// You can't split the last message off.
255
-		if (empty($context['not_selected']['start']) && $smcFunc['db_num_rows']($request) <= 1 && $_REQUEST['move'] == 'down')
256
-			$_REQUEST['move'] = '';
257
-		while ($row = $smcFunc['db_fetch_assoc']($request))
258
-			$original_msgs['not_selected'][] = $row['id_msg'];
269
+		if (empty($context['not_selected']['start']) && $smcFunc['db_num_rows']($request) <= 1 && $_REQUEST['move'] == 'down') {
270
+					$_REQUEST['move'] = '';
271
+		}
272
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
273
+					$original_msgs['not_selected'][] = $row['id_msg'];
274
+		}
259 275
 		$smcFunc['db_free_result']($request);
260 276
 		if (!empty($_SESSION['split_selection'][$topic]))
261 277
 		{
@@ -275,8 +291,9 @@  discard block
 block discarded – undo
275 291
 					'messages_per_page' => $context['messages_per_page'],
276 292
 				)
277 293
 			);
278
-			while ($row = $smcFunc['db_fetch_assoc']($request))
279
-				$original_msgs['selected'][] = $row['id_msg'];
294
+			while ($row = $smcFunc['db_fetch_assoc']($request)) {
295
+							$original_msgs['selected'][] = $row['id_msg'];
296
+			}
280 297
 			$smcFunc['db_free_result']($request);
281 298
 		}
282 299
 	}
@@ -286,12 +303,13 @@  discard block
 block discarded – undo
286 303
 	{
287 304
 		$_REQUEST['msg'] = (int) $_REQUEST['msg'];
288 305
 
289
-		if ($_REQUEST['move'] == 'reset')
290
-			$_SESSION['split_selection'][$topic] = array();
291
-		elseif ($_REQUEST['move'] == 'up')
292
-			$_SESSION['split_selection'][$topic] = array_diff($_SESSION['split_selection'][$topic], array($_REQUEST['msg']));
293
-		else
294
-			$_SESSION['split_selection'][$topic][] = $_REQUEST['msg'];
306
+		if ($_REQUEST['move'] == 'reset') {
307
+					$_SESSION['split_selection'][$topic] = array();
308
+		} elseif ($_REQUEST['move'] == 'up') {
309
+					$_SESSION['split_selection'][$topic] = array_diff($_SESSION['split_selection'][$topic], array($_REQUEST['msg']));
310
+		} else {
311
+					$_SESSION['split_selection'][$topic][] = $_REQUEST['msg'];
312
+		}
295 313
 	}
296 314
 
297 315
 	// Make sure the selection is still accurate.
@@ -310,8 +328,9 @@  discard block
 block discarded – undo
310 328
 			)
311 329
 		);
312 330
 		$_SESSION['split_selection'][$topic] = array();
313
-		while ($row = $smcFunc['db_fetch_assoc']($request))
314
-			$_SESSION['split_selection'][$topic][] = $row['id_msg'];
331
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
332
+					$_SESSION['split_selection'][$topic][] = $row['id_msg'];
333
+		}
315 334
 		$smcFunc['db_free_result']($request);
316 335
 	}
317 336
 
@@ -328,13 +347,15 @@  discard block
 block discarded – undo
328 347
 			'is_approved' => 1,
329 348
 		)
330 349
 	);
331
-	while ($row = $smcFunc['db_fetch_assoc']($request))
332
-		$context[empty($row['is_selected']) || $row['is_selected'] == 'f' ? 'not_selected' : 'selected']['num_messages'] = $row['num_messages'];
350
+	while ($row = $smcFunc['db_fetch_assoc']($request)) {
351
+			$context[empty($row['is_selected']) || $row['is_selected'] == 'f' ? 'not_selected' : 'selected']['num_messages'] = $row['num_messages'];
352
+	}
333 353
 	$smcFunc['db_free_result']($request);
334 354
 
335 355
 	// Fix an oversized starting page (to make sure both pageindexes are properly set).
336
-	if ($context['selected']['start'] >= $context['selected']['num_messages'])
337
-		$context['selected']['start'] = $context['selected']['num_messages'] <= $context['messages_per_page'] ? 0 : ($context['selected']['num_messages'] - (($context['selected']['num_messages'] % $context['messages_per_page']) == 0 ? $context['messages_per_page'] : ($context['selected']['num_messages'] % $context['messages_per_page'])));
356
+	if ($context['selected']['start'] >= $context['selected']['num_messages']) {
357
+			$context['selected']['start'] = $context['selected']['num_messages'] <= $context['messages_per_page'] ? 0 : ($context['selected']['num_messages'] - (($context['selected']['num_messages'] % $context['messages_per_page']) == 0 ? $context['messages_per_page'] : ($context['selected']['num_messages'] % $context['messages_per_page'])));
358
+	}
338 359
 
339 360
 	// Build a page list of the not-selected topics...
340 361
 	$context['not_selected']['page_index'] = constructPageIndex($scripturl . '?action=splittopics;sa=selectTopics;subname=' . strtr(urlencode($_REQUEST['subname']), array('%' => '%%')) . ';topic=' . $topic . '.%1$d;start2=' . $context['selected']['start'], $context['not_selected']['start'], $context['not_selected']['num_messages'], $context['messages_per_page'], true);
@@ -434,11 +455,12 @@  discard block
 block discarded – undo
434 455
 		);
435 456
 
436 457
 		$context['changes'] = array();
437
-		foreach ($changes as $change_type => $change_array)
438
-			foreach ($change_array as $section => $msg_array)
458
+		foreach ($changes as $change_type => $change_array) {
459
+					foreach ($change_array as $section => $msg_array)
439 460
 			{
440 461
 				if (empty($msg_array))
441 462
 					continue;
463
+		}
442 464
 
443 465
 				foreach ($msg_array as $id_msg)
444 466
 				{
@@ -447,8 +469,9 @@  discard block
 block discarded – undo
447 469
 						'type' => $change_type,
448 470
 						'section' => $section,
449 471
 					);
450
-					if ($change_type == 'insert')
451
-						$context['changes']['insert' . $id_msg]['insert_value'] = $context[$section]['messages'][$id_msg];
472
+					if ($change_type == 'insert') {
473
+											$context['changes']['insert' . $id_msg]['insert_value'] = $context[$section]['messages'][$id_msg];
474
+					}
452 475
 				}
453 476
 			}
454 477
 	}
@@ -468,12 +491,14 @@  discard block
 block discarded – undo
468 491
 	checkSession();
469 492
 
470 493
 	// Default the subject in case it's blank.
471
-	if (!isset($_POST['subname']) || $_POST['subname'] == '')
472
-		$_POST['subname'] = $txt['new_topic'];
494
+	if (!isset($_POST['subname']) || $_POST['subname'] == '') {
495
+			$_POST['subname'] = $txt['new_topic'];
496
+	}
473 497
 
474 498
 	// You must've selected some messages!  Can't split out none!
475
-	if (empty($_SESSION['split_selection'][$topic]))
476
-		fatal_lang_error('no_posts_selected', false);
499
+	if (empty($_SESSION['split_selection'][$topic])) {
500
+			fatal_lang_error('no_posts_selected', false);
501
+	}
477 502
 
478 503
 	$context['old_topic'] = $topic;
479 504
 	$context['new_topic'] = splitTopic($topic, $_SESSION['split_selection'][$topic], $_POST['subname']);
@@ -499,8 +524,9 @@  discard block
 block discarded – undo
499 524
 	global $smcFunc, $txt, $sourcedir;
500 525
 
501 526
 	// Nothing to split?
502
-	if (empty($splitMessages))
503
-		fatal_lang_error('no_posts_selected', false);
527
+	if (empty($splitMessages)) {
528
+			fatal_lang_error('no_posts_selected', false);
529
+	}
504 530
 
505 531
 	// Get some board info.
506 532
 	$request = $smcFunc['db_query']('', '
@@ -532,8 +558,9 @@  discard block
 block discarded – undo
532 558
 		)
533 559
 	);
534 560
 	// You can't select ALL the messages!
535
-	if ($smcFunc['db_num_rows']($request) == 0)
536
-		fatal_lang_error('selected_all_posts', false);
561
+	if ($smcFunc['db_num_rows']($request) == 0) {
562
+			fatal_lang_error('selected_all_posts', false);
563
+	}
537 564
 
538 565
 	$split1_first_msg = null;
539 566
 	$split1_last_msg = null;
@@ -541,24 +568,27 @@  discard block
 block discarded – undo
541 568
 	while ($row = $smcFunc['db_fetch_assoc']($request))
542 569
 	{
543 570
 		// Get the right first and last message dependant on approved state...
544
-		if (empty($split1_first_msg) || $row['myid_first_msg'] < $split1_first_msg)
545
-			$split1_first_msg = $row['myid_first_msg'];
546
-		if (empty($split1_last_msg) || $row['approved'])
547
-			$split1_last_msg = $row['myid_last_msg'];
571
+		if (empty($split1_first_msg) || $row['myid_first_msg'] < $split1_first_msg) {
572
+					$split1_first_msg = $row['myid_first_msg'];
573
+		}
574
+		if (empty($split1_last_msg) || $row['approved']) {
575
+					$split1_last_msg = $row['myid_last_msg'];
576
+		}
548 577
 
549 578
 		// Get the counts correct...
550 579
 		if ($row['approved'])
551 580
 		{
552 581
 			$split1_replies = $row['message_count'] - 1;
553 582
 			$split1_unapprovedposts = 0;
554
-		}
555
-		else
583
+		} else
556 584
 		{
557
-			if (!isset($split1_replies))
558
-				$split1_replies = 0;
585
+			if (!isset($split1_replies)) {
586
+							$split1_replies = 0;
587
+			}
559 588
 			// If the topic isn't approved then num replies must go up by one... as first post wouldn't be counted.
560
-			elseif (!$split1_approved)
561
-				$split1_replies++;
589
+			elseif (!$split1_approved) {
590
+							$split1_replies++;
591
+			}
562 592
 
563 593
 			$split1_unapprovedposts = $row['message_count'];
564 594
 		}
@@ -584,10 +614,12 @@  discard block
 block discarded – undo
584 614
 	while ($row = $smcFunc['db_fetch_assoc']($request))
585 615
 	{
586 616
 		// As before get the right first and last message dependant on approved state...
587
-		if (empty($split2_first_msg) || $row['myid_first_msg'] < $split2_first_msg)
588
-			$split2_first_msg = $row['myid_first_msg'];
589
-		if (empty($split2_last_msg) || $row['approved'])
590
-			$split2_last_msg = $row['myid_last_msg'];
617
+		if (empty($split2_first_msg) || $row['myid_first_msg'] < $split2_first_msg) {
618
+					$split2_first_msg = $row['myid_first_msg'];
619
+		}
620
+		if (empty($split2_last_msg) || $row['approved']) {
621
+					$split2_last_msg = $row['myid_last_msg'];
622
+		}
591 623
 
592 624
 		// Then do the counts again...
593 625
 		if ($row['approved'])
@@ -595,18 +627,20 @@  discard block
 block discarded – undo
595 627
 			$split2_approved = true;
596 628
 			$split2_replies = $row['message_count'] - 1;
597 629
 			$split2_unapprovedposts = 0;
598
-		}
599
-		else
630
+		} else
600 631
 		{
601 632
 			// Should this one be approved??
602
-			if ($split2_first_msg == $row['myid_first_msg'])
603
-				$split2_approved = false;
633
+			if ($split2_first_msg == $row['myid_first_msg']) {
634
+							$split2_approved = false;
635
+			}
604 636
 
605
-			if (!isset($split2_replies))
606
-				$split2_replies = 0;
637
+			if (!isset($split2_replies)) {
638
+							$split2_replies = 0;
639
+			}
607 640
 			// As before, fix number of replies.
608
-			elseif (!$split2_approved)
609
-				$split2_replies++;
641
+			elseif (!$split2_approved) {
642
+							$split2_replies++;
643
+			}
610 644
 
611 645
 			$split2_unapprovedposts = $row['message_count'];
612 646
 		}
@@ -616,12 +650,14 @@  discard block
 block discarded – undo
616 650
 	$split2_lastMem = getMsgMemberID($split2_last_msg);
617 651
 
618 652
 	// No database changes yet, so let's double check to see if everything makes at least a little sense.
619
-	if ($split1_first_msg <= 0 || $split1_last_msg <= 0 || $split2_first_msg <= 0 || $split2_last_msg <= 0 || $split1_replies < 0 || $split2_replies < 0 || $split1_unapprovedposts < 0 || $split2_unapprovedposts < 0 || !isset($split1_approved) || !isset($split2_approved))
620
-		fatal_lang_error('cant_find_messages');
653
+	if ($split1_first_msg <= 0 || $split1_last_msg <= 0 || $split2_first_msg <= 0 || $split2_last_msg <= 0 || $split1_replies < 0 || $split2_replies < 0 || $split1_unapprovedposts < 0 || $split2_unapprovedposts < 0 || !isset($split1_approved) || !isset($split2_approved)) {
654
+			fatal_lang_error('cant_find_messages');
655
+	}
621 656
 
622 657
 	// You cannot split off the first message of a topic.
623
-	if ($split1_first_msg > $split2_first_msg)
624
-		fatal_lang_error('split_first_post', false);
658
+	if ($split1_first_msg > $split2_first_msg) {
659
+			fatal_lang_error('split_first_post', false);
660
+	}
625 661
 
626 662
 	// We're off to insert the new topic!  Use 0 for now to avoid UNIQUE errors.
627 663
 	$smcFunc['db_insert']('',
@@ -644,14 +680,16 @@  discard block
 block discarded – undo
644 680
 			array('id_topic')
645 681
 		);
646 682
 	$split2_ID_TOPIC = $smcFunc['db_insert_id']('{db_prefix}topics', 'id_topic');
647
-	if ($split2_ID_TOPIC <= 0)
648
-		fatal_lang_error('cant_insert_topic');
683
+	if ($split2_ID_TOPIC <= 0) {
684
+			fatal_lang_error('cant_insert_topic');
685
+	}
649 686
 
650 687
 	// Move the messages over to the other topic.
651 688
 	$new_subject = strtr($smcFunc['htmltrim']($smcFunc['htmlspecialchars']($new_subject)), array("\r" => '', "\n" => '', "\t" => ''));
652 689
 	// Check the subject length.
653
-	if ($smcFunc['strlen']($new_subject) > 100)
654
-		$new_subject = $smcFunc['substr']($new_subject, 0, 100);
690
+	if ($smcFunc['strlen']($new_subject) > 100) {
691
+			$new_subject = $smcFunc['substr']($new_subject, 0, 100);
692
+	}
655 693
 	// Valid subject?
656 694
 	if ($new_subject != '')
657 695
 	{
@@ -722,8 +760,8 @@  discard block
 block discarded – undo
722 760
 	);
723 761
 
724 762
 	// If the new topic isn't approved ensure the first message flags this just in case.
725
-	if (!$split2_approved)
726
-		$smcFunc['db_query']('', '
763
+	if (!$split2_approved) {
764
+			$smcFunc['db_query']('', '
727 765
 			UPDATE {db_prefix}messages
728 766
 			SET approved = {int:approved}
729 767
 			WHERE id_msg = {int:id_msg}
@@ -734,6 +772,7 @@  discard block
 block discarded – undo
734 772
 				'id_topic' => $split2_ID_TOPIC,
735 773
 			)
736 774
 		);
775
+	}
737 776
 
738 777
 	// The board has more topics now (Or more unapproved ones!).
739 778
 	$smcFunc['db_query']('', '
@@ -760,8 +799,9 @@  discard block
 block discarded – undo
760 799
 	if ($smcFunc['db_num_rows']($request) > 0)
761 800
 	{
762 801
 		$replaceEntries = array();
763
-		while ($row = $smcFunc['db_fetch_assoc']($request))
764
-			$replaceEntries[] = array($row['id_member'], $split2_ID_TOPIC, $row['id_msg'], $row['unwatched']);
802
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
803
+					$replaceEntries[] = array($row['id_member'], $split2_ID_TOPIC, $row['id_msg'], $row['unwatched']);
804
+		}
765 805
 
766 806
 		$smcFunc['db_insert']('ignore',
767 807
 			'{db_prefix}log_topics',
@@ -785,8 +825,9 @@  discard block
 block discarded – undo
785 825
 	// If there's a search index that needs updating, update it...
786 826
 	require_once($sourcedir . '/Search.php');
787 827
 	$searchAPI = findSearchAPI();
788
-	if (is_callable(array($searchAPI, 'topicSplit')))
789
-		$searchAPI->topicSplit($split2_ID_TOPIC, $splitMessages);
828
+	if (is_callable(array($searchAPI, 'topicSplit'))) {
829
+			$searchAPI->topicSplit($split2_ID_TOPIC, $splitMessages);
830
+	}
790 831
 
791 832
 	// Return the ID of the newly created topic.
792 833
 	return $split2_ID_TOPIC;
@@ -812,12 +853,12 @@  discard block
 block discarded – undo
812 853
 	);
813 854
 
814 855
 	// ?action=mergetopics;sa=LETSBREAKIT won't work, sorry.
815
-	if (empty($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']]))
816
-		MergeIndex();
817
-
818
-	else
819
-		call_helper($subActions[$_REQUEST['sa']]);
820
-}
856
+	if (empty($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']])) {
857
+			MergeIndex();
858
+	} else {
859
+			call_helper($subActions[$_REQUEST['sa']]);
860
+	}
861
+	}
821 862
 
822 863
 /**
823 864
  * allows to pick a topic to merge the current topic with.
@@ -831,8 +872,9 @@  discard block
 block discarded – undo
831 872
 	global $txt, $board, $context, $smcFunc, $sourcedir;
832 873
 	global $scripturl, $modSettings;
833 874
 
834
-	if (!isset($_GET['from']))
835
-		fatal_lang_error('no_access', false);
875
+	if (!isset($_GET['from'])) {
876
+			fatal_lang_error('no_access', false);
877
+	}
836 878
 	$_GET['from'] = (int) $_GET['from'];
837 879
 
838 880
 	$_REQUEST['targetboard'] = isset($_REQUEST['targetboard']) ? (int) $_REQUEST['targetboard'] : $board;
@@ -843,9 +885,9 @@  discard block
 block discarded – undo
843 885
 	{
844 886
 		$can_approve_boards = boardsAllowedTo('approve_posts');
845 887
 		$onlyApproved = $can_approve_boards !== array(0) && !in_array($_REQUEST['targetboard'], $can_approve_boards);
888
+	} else {
889
+			$onlyApproved = false;
846 890
 	}
847
-	else
848
-		$onlyApproved = false;
849 891
 
850 892
 	// How many topics are on this board?  (used for paging.)
851 893
 	$request = $smcFunc['db_query']('', '
@@ -879,8 +921,9 @@  discard block
 block discarded – undo
879 921
 			'is_approved' => 1,
880 922
 		)
881 923
 	);
882
-	if ($smcFunc['db_num_rows']($request) == 0)
883
-		fatal_lang_error('no_board');
924
+	if ($smcFunc['db_num_rows']($request) == 0) {
925
+			fatal_lang_error('no_board');
926
+	}
884 927
 	list ($subject) = $smcFunc['db_fetch_row']($request);
885 928
 	$smcFunc['db_free_result']($request);
886 929
 
@@ -893,8 +936,9 @@  discard block
 block discarded – undo
893 936
 	// Check which boards you have merge permissions on.
894 937
 	$merge_boards = boardsAllowedTo('merge_any');
895 938
 
896
-	if (empty($merge_boards))
897
-		fatal_lang_error('cannot_merge_any', 'user');
939
+	if (empty($merge_boards)) {
940
+			fatal_lang_error('cannot_merge_any', 'user');
941
+	}
898 942
 
899 943
 	// No sense in loading this if you can only merge on this board
900 944
 	if (count($merge_boards) > 1 || in_array(0, $merge_boards))
@@ -908,8 +952,9 @@  discard block
 block discarded – undo
908 952
 		);
909 953
 
910 954
 		// Only include these boards in the list (0 means you're an admin')
911
-		if (!in_array(0, $merge_boards))
912
-			$options['included_boards'] = $merge_boards;
955
+		if (!in_array(0, $merge_boards)) {
956
+					$options['included_boards'] = $merge_boards;
957
+		}
913 958
 
914 959
 		$context['merge_categories'] = getBoardList($options);
915 960
 	}
@@ -955,8 +1000,9 @@  discard block
 block discarded – undo
955 1000
 	}
956 1001
 	$smcFunc['db_free_result']($request);
957 1002
 
958
-	if (empty($context['topics']) && count($merge_boards) <= 1 && !in_array(0, $merge_boards))
959
-		fatal_lang_error('merge_need_more_topics');
1003
+	if (empty($context['topics']) && count($merge_boards) <= 1 && !in_array(0, $merge_boards)) {
1004
+			fatal_lang_error('merge_need_more_topics');
1005
+	}
960 1006
 
961 1007
 	$context['sub_template'] = 'merge';
962 1008
 }
@@ -986,24 +1032,29 @@  discard block
 block discarded – undo
986 1032
 	checkSession('request');
987 1033
 
988 1034
 	// Handle URLs from MergeIndex.
989
-	if (!empty($_GET['from']) && !empty($_GET['to']))
990
-		$topics = array((int) $_GET['from'], (int) $_GET['to']);
1035
+	if (!empty($_GET['from']) && !empty($_GET['to'])) {
1036
+			$topics = array((int) $_GET['from'], (int) $_GET['to']);
1037
+	}
991 1038
 
992 1039
 	// If we came from a form, the topic IDs came by post.
993
-	if (!empty($_POST['topics']) && is_array($_POST['topics']))
994
-		$topics = $_POST['topics'];
1040
+	if (!empty($_POST['topics']) && is_array($_POST['topics'])) {
1041
+			$topics = $_POST['topics'];
1042
+	}
995 1043
 
996 1044
 	// There's nothing to merge with just one topic...
997
-	if (empty($topics) || !is_array($topics) || count($topics) == 1)
998
-		fatal_lang_error('merge_need_more_topics');
1045
+	if (empty($topics) || !is_array($topics) || count($topics) == 1) {
1046
+			fatal_lang_error('merge_need_more_topics');
1047
+	}
999 1048
 
1000 1049
 	// Make sure every topic is numeric, or some nasty things could be done with the DB.
1001
-	foreach ($topics as $id => $topic)
1002
-		$topics[$id] = (int) $topic;
1050
+	foreach ($topics as $id => $topic) {
1051
+			$topics[$id] = (int) $topic;
1052
+	}
1003 1053
 
1004 1054
 	// Joy of all joys, make sure they're not messing about with unapproved topics they can't see :P
1005
-	if ($modSettings['postmod_active'])
1006
-		$can_approve_boards = boardsAllowedTo('approve_posts');
1055
+	if ($modSettings['postmod_active']) {
1056
+			$can_approve_boards = boardsAllowedTo('approve_posts');
1057
+	}
1007 1058
 
1008 1059
 	// Get info about the topics and polls that will be merged.
1009 1060
 	$request = $smcFunc['db_query']('', '
@@ -1024,8 +1075,9 @@  discard block
 block discarded – undo
1024 1075
 			'limit' => count($topics),
1025 1076
 		)
1026 1077
 	);
1027
-	if ($smcFunc['db_num_rows']($request) < 2)
1028
-		fatal_lang_error('no_topic_id');
1078
+	if ($smcFunc['db_num_rows']($request) < 2) {
1079
+			fatal_lang_error('no_topic_id');
1080
+	}
1029 1081
 	$num_views = 0;
1030 1082
 	$is_sticky = 0;
1031 1083
 	$boardTotals = array();
@@ -1038,34 +1090,38 @@  discard block
 block discarded – undo
1038 1090
 	while ($row = $smcFunc['db_fetch_assoc']($request))
1039 1091
 	{
1040 1092
 		// Sorry, redirection topics can't be merged
1041
-		if (!empty($row['id_redirect_topic']))
1042
-			fatal_lang_error('cannot_merge_redirect', false);
1093
+		if (!empty($row['id_redirect_topic'])) {
1094
+					fatal_lang_error('cannot_merge_redirect', false);
1095
+		}
1043 1096
 
1044 1097
 		// Make a note for the board counts...
1045
-		if (!isset($boardTotals[$row['id_board']]))
1046
-			$boardTotals[$row['id_board']] = array(
1098
+		if (!isset($boardTotals[$row['id_board']])) {
1099
+					$boardTotals[$row['id_board']] = array(
1047 1100
 				'posts' => 0,
1048 1101
 				'topics' => 0,
1049 1102
 				'unapproved_posts' => 0,
1050 1103
 				'unapproved_topics' => 0
1051 1104
 			);
1105
+		}
1052 1106
 
1053 1107
 		// We can't see unapproved topics here?
1054 1108
 		if ($modSettings['postmod_active'] && !$row['approved'] && $can_approve_boards != array(0) && in_array($row['id_board'], $can_approve_boards))
1055 1109
 		{
1056 1110
 			unset($topics[$row['id_topic']]); // If we can't see it, we should not merge it and not adjust counts! Instead skip it.
1057 1111
 			continue;
1058
-		}elseif (!$row['approved'])
1059
-			$boardTotals[$row['id_board']]['unapproved_topics']++;
1060
-		else
1061
-			$boardTotals[$row['id_board']]['topics']++;
1112
+		} elseif (!$row['approved']) {
1113
+					$boardTotals[$row['id_board']]['unapproved_topics']++;
1114
+		} else {
1115
+					$boardTotals[$row['id_board']]['topics']++;
1116
+		}
1062 1117
 
1063 1118
 		$boardTotals[$row['id_board']]['unapproved_posts'] += $row['unapproved_posts'];
1064 1119
 		$boardTotals[$row['id_board']]['posts'] += $row['num_replies'] + ($row['approved'] ? 1 : 0);
1065 1120
 
1066 1121
 		// In the case of making a redirect, the topic count goes up by one due to the redirect topic.
1067
-		if (isset($_POST['postRedirect']))
1068
-			$boardTotals[$row['id_board']]['topics']--;
1122
+		if (isset($_POST['postRedirect'])) {
1123
+					$boardTotals[$row['id_board']]['topics']--;
1124
+		}
1069 1125
 
1070 1126
 		$topic_data[$row['id_topic']] = array(
1071 1127
 			'id' => $row['id_topic'],
@@ -1091,11 +1147,13 @@  discard block
 block discarded – undo
1091 1147
 		$boards[] = $row['id_board'];
1092 1148
 
1093 1149
 		// If there's no poll, id_poll == 0...
1094
-		if ($row['id_poll'] > 0)
1095
-			$polls[] = $row['id_poll'];
1150
+		if ($row['id_poll'] > 0) {
1151
+					$polls[] = $row['id_poll'];
1152
+		}
1096 1153
 		// Store the id_topic with the lowest id_first_msg.
1097
-		if (empty($firstTopic))
1098
-			$firstTopic = $row['id_topic'];
1154
+		if (empty($firstTopic)) {
1155
+					$firstTopic = $row['id_topic'];
1156
+		}
1099 1157
 
1100 1158
 		// Lowest topic id gets selected as surviving topic id. We need to store this board so we can adjust the topic count (This one will not have a redirect topic)
1101 1159
 		if($row['id_topic'] < $lowestTopicId || empty($lowestTopicId) )
@@ -1109,11 +1167,13 @@  discard block
 block discarded – undo
1109 1167
 	$smcFunc['db_free_result']($request);
1110 1168
 
1111 1169
 	// If we didn't get any topics then they've been messing with unapproved stuff.
1112
-	if (empty($topic_data))
1113
-		fatal_lang_error('no_topic_id');
1170
+	if (empty($topic_data)) {
1171
+			fatal_lang_error('no_topic_id');
1172
+	}
1114 1173
 
1115
-	if (isset($_POST['postRedirect']) && !empty($lowestTopicBoard))
1116
-		$boardTotals[$lowestTopicBoard]['topics']++;
1174
+	if (isset($_POST['postRedirect']) && !empty($lowestTopicBoard)) {
1175
+			$boardTotals[$lowestTopicBoard]['topics']++;
1176
+	}
1117 1177
 
1118 1178
 	// Will this be approved?
1119 1179
 	$context['is_approved'] = $topic_data[$firstTopic]['approved'];
@@ -1129,8 +1189,9 @@  discard block
 block discarded – undo
1129 1189
 
1130 1190
 	// Get the boards a user is allowed to merge in.
1131 1191
 	$merge_boards = boardsAllowedTo('merge_any');
1132
-	if (empty($merge_boards))
1133
-		fatal_lang_error('cannot_merge_any', 'user');
1192
+	if (empty($merge_boards)) {
1193
+			fatal_lang_error('cannot_merge_any', 'user');
1194
+	}
1134 1195
 
1135 1196
 	// Make sure they can see all boards....
1136 1197
 	$request = $smcFunc['db_query']('', '
@@ -1147,8 +1208,9 @@  discard block
 block discarded – undo
1147 1208
 		)
1148 1209
 	);
1149 1210
 	// If the number of boards that's in the output isn't exactly the same as we've put in there, you're in trouble.
1150
-	if ($smcFunc['db_num_rows']($request) != count($boards))
1151
-		fatal_lang_error('no_board');
1211
+	if ($smcFunc['db_num_rows']($request) != count($boards)) {
1212
+			fatal_lang_error('no_board');
1213
+	}
1152 1214
 	$smcFunc['db_free_result']($request);
1153 1215
 
1154 1216
 	if (empty($_REQUEST['sa']) || $_REQUEST['sa'] == 'options')
@@ -1167,8 +1229,8 @@  discard block
 block discarded – undo
1167 1229
 					'limit' => count($polls),
1168 1230
 				)
1169 1231
 			);
1170
-			while ($row = $smcFunc['db_fetch_assoc']($request))
1171
-				$context['polls'][] = array(
1232
+			while ($row = $smcFunc['db_fetch_assoc']($request)) {
1233
+							$context['polls'][] = array(
1172 1234
 					'id' => $row['id_poll'],
1173 1235
 					'topic' => array(
1174 1236
 						'id' => $row['id_topic'],
@@ -1177,6 +1239,7 @@  discard block
 block discarded – undo
1177 1239
 					'question' => $row['question'],
1178 1240
 					'selected' => $row['id_topic'] == $firstTopic
1179 1241
 				);
1242
+			}
1180 1243
 			$smcFunc['db_free_result']($request);
1181 1244
 		}
1182 1245
 		if (count($boards) > 1)
@@ -1192,18 +1255,20 @@  discard block
 block discarded – undo
1192 1255
 					'limit' => count($boards),
1193 1256
 				)
1194 1257
 			);
1195
-			while ($row = $smcFunc['db_fetch_assoc']($request))
1196
-				$context['boards'][] = array(
1258
+			while ($row = $smcFunc['db_fetch_assoc']($request)) {
1259
+							$context['boards'][] = array(
1197 1260
 					'id' => $row['id_board'],
1198 1261
 					'name' => $row['name'],
1199 1262
 					'selected' => $row['id_board'] == $topic_data[$firstTopic]['board']
1200 1263
 				);
1264
+			}
1201 1265
 			$smcFunc['db_free_result']($request);
1202 1266
 		}
1203 1267
 
1204 1268
 		$context['topics'] = $topic_data;
1205
-		foreach ($topic_data as $id => $topic)
1206
-			$context['topics'][$id]['selected'] = $topic['id'] == $firstTopic;
1269
+		foreach ($topic_data as $id => $topic) {
1270
+					$context['topics'][$id]['selected'] = $topic['id'] == $firstTopic;
1271
+		}
1207 1272
 
1208 1273
 		$context['page_title'] = $txt['merge'];
1209 1274
 		$context['sub_template'] = 'merge_extra_options';
@@ -1212,13 +1277,15 @@  discard block
 block discarded – undo
1212 1277
 
1213 1278
 	// Determine target board.
1214 1279
 	$target_board = count($boards) > 1 ? (int) $_REQUEST['board'] : $boards[0];
1215
-	if (!in_array($target_board, $boards))
1216
-		fatal_lang_error('no_board');
1280
+	if (!in_array($target_board, $boards)) {
1281
+			fatal_lang_error('no_board');
1282
+	}
1217 1283
 
1218 1284
 	// Determine which poll will survive and which polls won't.
1219 1285
 	$target_poll = count($polls) > 1 ? (int) $_POST['poll'] : (count($polls) == 1 ? $polls[0] : 0);
1220
-	if ($target_poll > 0 && !in_array($target_poll, $polls))
1221
-		fatal_lang_error('no_access', false);
1286
+	if ($target_poll > 0 && !in_array($target_poll, $polls)) {
1287
+			fatal_lang_error('no_access', false);
1288
+	}
1222 1289
 	$deleted_polls = empty($target_poll) ? $polls : array_diff($polls, array($target_poll));
1223 1290
 
1224 1291
 	// Determine the subject of the newly merged topic - was a custom subject specified?
@@ -1226,19 +1293,23 @@  discard block
 block discarded – undo
1226 1293
 	{
1227 1294
 		$target_subject = strtr($smcFunc['htmltrim']($smcFunc['htmlspecialchars']($_POST['custom_subject'])), array("\r" => '', "\n" => '', "\t" => ''));
1228 1295
 		// Keep checking the length.
1229
-		if ($smcFunc['strlen']($target_subject) > 100)
1230
-			$target_subject = $smcFunc['substr']($target_subject, 0, 100);
1296
+		if ($smcFunc['strlen']($target_subject) > 100) {
1297
+					$target_subject = $smcFunc['substr']($target_subject, 0, 100);
1298
+		}
1231 1299
 
1232 1300
 		// Nothing left - odd but pick the first topics subject.
1233
-		if ($target_subject == '')
1234
-			$target_subject = $topic_data[$firstTopic]['subject'];
1301
+		if ($target_subject == '') {
1302
+					$target_subject = $topic_data[$firstTopic]['subject'];
1303
+		}
1235 1304
 	}
1236 1305
 	// A subject was selected from the list.
1237
-	elseif (!empty($topic_data[(int) $_POST['subject']]['subject']))
1238
-		$target_subject = $topic_data[(int) $_POST['subject']]['subject'];
1306
+	elseif (!empty($topic_data[(int) $_POST['subject']]['subject'])) {
1307
+			$target_subject = $topic_data[(int) $_POST['subject']]['subject'];
1308
+	}
1239 1309
 	// Nothing worked? Just take the subject of the first message.
1240
-	else
1241
-		$target_subject = $topic_data[$firstTopic]['subject'];
1310
+	else {
1311
+			$target_subject = $topic_data[$firstTopic]['subject'];
1312
+	}
1242 1313
 
1243 1314
 	// Get the first and last message and the number of messages....
1244 1315
 	$request = $smcFunc['db_query']('', '
@@ -1264,15 +1335,13 @@  discard block
 block discarded – undo
1264 1335
 			{
1265 1336
 				$num_replies = $row['message_count'] - 1;
1266 1337
 				$num_unapproved = 0;
1267
-			}
1268
-			else
1338
+			} else
1269 1339
 			{
1270 1340
 				$topic_approved = 0;
1271 1341
 				$num_replies = 0;
1272 1342
 				$num_unapproved = $row['message_count'];
1273 1343
 			}
1274
-		}
1275
-		else
1344
+		} else
1276 1345
 		{
1277 1346
 			// If this has a lower first_msg then the first post is not approved and hence the number of replies was wrong!
1278 1347
 			if ($first_msg > $row['first_msg'])
@@ -1318,8 +1387,9 @@  discard block
 block discarded – undo
1318 1387
 	list ($member_started) = $smcFunc['db_fetch_row']($request);
1319 1388
 	list ($member_updated) = $smcFunc['db_fetch_row']($request);
1320 1389
 	// First and last message are the same, so only row was returned.
1321
-	if ($member_updated === NULL)
1322
-		$member_updated = $member_started;
1390
+	if ($member_updated === NULL) {
1391
+			$member_updated = $member_started;
1392
+	}
1323 1393
 
1324 1394
 	$smcFunc['db_free_result']($request);
1325 1395
 
@@ -1332,8 +1402,9 @@  discard block
 block discarded – undo
1332 1402
 		array(
1333 1403
 			'topic_list' => $topics,
1334 1404
 	));
1335
-	while ($row = $smcFunc['db_fetch_row']($request))
1336
-		$affected_msgs[] = $row[0];
1405
+	while ($row = $smcFunc['db_fetch_row']($request)) {
1406
+			$affected_msgs[] = $row[0];
1407
+	}
1337 1408
 	$smcFunc['db_free_result']($request);
1338 1409
 
1339 1410
 	// Assign the first topic ID to be the merged topic.
@@ -1411,9 +1482,9 @@  discard block
 block discarded – undo
1411 1482
 	// Grab the response prefix (like 'Re: ') in the default forum language.
1412 1483
 	if (!isset($context['response_prefix']) && !($context['response_prefix'] = cache_get_data('response_prefix')))
1413 1484
 	{
1414
-		if ($language === $user_info['language'])
1415
-			$context['response_prefix'] = $txt['response_prefix'];
1416
-		else
1485
+		if ($language === $user_info['language']) {
1486
+					$context['response_prefix'] = $txt['response_prefix'];
1487
+		} else
1417 1488
 		{
1418 1489
 			loadLanguage('index', $language, false);
1419 1490
 			$context['response_prefix'] = $txt['response_prefix'];
@@ -1493,8 +1564,9 @@  discard block
 block discarded – undo
1493 1564
 	if ($smcFunc['db_num_rows']($request) > 0)
1494 1565
 	{
1495 1566
 		$replaceEntries = array();
1496
-		while ($row = $smcFunc['db_fetch_assoc']($request))
1497
-			$replaceEntries[] = array($row['id_member'], $id_topic, $row['new_id_msg'], $row['unwatched']);
1567
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
1568
+					$replaceEntries[] = array($row['id_member'], $id_topic, $row['new_id_msg'], $row['unwatched']);
1569
+		}
1498 1570
 
1499 1571
 		$smcFunc['db_insert']('replace',
1500 1572
 			'{db_prefix}log_topics',
@@ -1531,8 +1603,9 @@  discard block
 block discarded – undo
1531 1603
 		if ($smcFunc['db_num_rows']($request) > 0)
1532 1604
 		{
1533 1605
 			$replaceEntries = array();
1534
-			while ($row = $smcFunc['db_fetch_assoc']($request))
1535
-				$replaceEntries[] = array($row['id_member'], $id_topic, 0, $row['sent']);
1606
+			while ($row = $smcFunc['db_fetch_assoc']($request)) {
1607
+							$replaceEntries[] = array($row['id_member'], $id_topic, 0, $row['sent']);
1608
+			}
1536 1609
 
1537 1610
 			$smcFunc['db_insert']('replace',
1538 1611
 					'{db_prefix}log_notify',
@@ -1707,8 +1780,9 @@  discard block
 block discarded – undo
1707 1780
 	// If there's a search index that needs updating, update it...
1708 1781
 	require_once($sourcedir . '/Search.php');
1709 1782
 	$searchAPI = findSearchAPI();
1710
-	if (is_callable(array($searchAPI, 'topicMerge')))
1711
-		$searchAPI->topicMerge($id_topic, $topics, $affected_msgs, empty($_POST['enforce_subject']) ? null : array($context['response_prefix'], $target_subject));
1783
+	if (is_callable(array($searchAPI, 'topicMerge'))) {
1784
+			$searchAPI->topicMerge($id_topic, $topics, $affected_msgs, empty($_POST['enforce_subject']) ? null : array($context['response_prefix'], $target_subject));
1785
+	}
1712 1786
 
1713 1787
 	// Send them to the all done page.
1714 1788
 	redirectexit('action=mergetopics;sa=done;to=' . $id_topic . ';targetboard=' . $target_board);
Please login to merge, or discard this patch.
Sources/Subs-MembersOnline.php 1 patch
Braces   +30 added lines, -23 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 3
14 14
  */
15 15
 
16
-if (!defined('SMF'))
16
+if (!defined('SMF')) {
17 17
 	die('No direct access...');
18
+}
18 19
 
19 20
 /**
20 21
  * Retrieve a list and several other statistics of the users currently online.
@@ -45,12 +46,14 @@  discard block
 block discarded – undo
45 46
 	}
46 47
 
47 48
 	// Not allowed sort method? Bang! Error!
48
-	elseif (!in_array($membersOnlineOptions['sort'], $allowed_sort_options))
49
-		trigger_error('Sort method for getMembersOnlineStats() function is not allowed', E_USER_NOTICE);
49
+	elseif (!in_array($membersOnlineOptions['sort'], $allowed_sort_options)) {
50
+			trigger_error('Sort method for getMembersOnlineStats() function is not allowed', E_USER_NOTICE);
51
+	}
50 52
 
51 53
 	// Get it from the cache and send it back.
52
-	if (($temp = cache_get_data('membersOnlineStats-' . $membersOnlineOptions['sort'], 240)) !== null)
53
-		return $temp;
54
+	if (($temp = cache_get_data('membersOnlineStats-' . $membersOnlineOptions['sort'], 240)) !== null) {
55
+			return $temp;
56
+	}
54 57
 
55 58
 	// Initialize the array that'll be returned later on.
56 59
 	$membersOnlineStats = array(
@@ -67,8 +70,9 @@  discard block
 block discarded – undo
67 70
 	// Get any spiders if enabled.
68 71
 	$spiders = array();
69 72
 	$spider_finds = array();
70
-	if (!empty($modSettings['show_spider_online']) && ($modSettings['show_spider_online'] < 3 || allowedTo('admin_forum')) && !empty($modSettings['spider_name_cache']))
71
-		$spiders = smf_json_decode($modSettings['spider_name_cache'], true);
73
+	if (!empty($modSettings['show_spider_online']) && ($modSettings['show_spider_online'] < 3 || allowedTo('admin_forum')) && !empty($modSettings['spider_name_cache'])) {
74
+			$spiders = smf_json_decode($modSettings['spider_name_cache'], true);
75
+	}
72 76
 
73 77
 	// Load the users online right now.
74 78
 	$request = $smcFunc['db_query']('', '
@@ -96,9 +100,7 @@  discard block
 block discarded – undo
96 100
 			$membersOnlineStats['num_guests']++;
97 101
 
98 102
 			continue;
99
-		}
100
-
101
-		elseif (empty($row['show_online']) && empty($membersOnlineOptions['show_hidden']))
103
+		} elseif (empty($row['show_online']) && empty($membersOnlineOptions['show_hidden']))
102 104
 		{
103 105
 			// Just increase the stats and don't add this hidden user to any list.
104 106
 			$membersOnlineStats['num_users_hidden']++;
@@ -106,10 +108,11 @@  discard block
 block discarded – undo
106 108
 		}
107 109
 
108 110
 		// Some basic color coding...
109
-		if (!empty($row['online_color']))
110
-			$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" style="color: ' . $row['online_color'] . ';">' . $row['real_name'] . '</a>';
111
-		else
112
-			$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>';
111
+		if (!empty($row['online_color'])) {
112
+					$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" style="color: ' . $row['online_color'] . ';">' . $row['real_name'] . '</a>';
113
+		} else {
114
+					$link = '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>';
115
+		}
113 116
 
114 117
 		// Buddies get counted and highlighted.
115 118
 		$is_buddy = in_array($row['id_member'], $user_info['buddies']);
@@ -136,12 +139,13 @@  discard block
 block discarded – undo
136 139
 		$membersOnlineStats['list_users_online'][$row[$membersOnlineOptions['sort']] . '_' . $row['member_name']] = empty($row['show_online']) ? '<em>' . $link . '</em>' : $link;
137 140
 
138 141
 		// Store all distinct (primary) membergroups that are shown.
139
-		if (!isset($membersOnlineStats['online_groups'][$row['id_group']]))
140
-			$membersOnlineStats['online_groups'][$row['id_group']] = array(
142
+		if (!isset($membersOnlineStats['online_groups'][$row['id_group']])) {
143
+					$membersOnlineStats['online_groups'][$row['id_group']] = array(
141 144
 				'id' => $row['id_group'],
142 145
 				'name' => $row['group_name'],
143 146
 				'color' => $row['online_color']
144 147
 			);
148
+		}
145 149
 	}
146 150
 	$smcFunc['db_free_result']($request);
147 151
 
@@ -204,11 +208,12 @@  discard block
 block discarded – undo
204 208
 	$settingsToUpdate = array();
205 209
 
206 210
 	// More members on now than ever were?  Update it!
207
-	if (!isset($modSettings['mostOnline']) || $total_users_online >= $modSettings['mostOnline'])
208
-		$settingsToUpdate = array(
211
+	if (!isset($modSettings['mostOnline']) || $total_users_online >= $modSettings['mostOnline']) {
212
+			$settingsToUpdate = array(
209 213
 			'mostOnline' => $total_users_online,
210 214
 			'mostDate' => time()
211 215
 		);
216
+	}
212 217
 
213 218
 	$date = strftime('%Y-%m-%d', forum_time(false));
214 219
 
@@ -240,8 +245,9 @@  discard block
 block discarded – undo
240 245
 		{
241 246
 			list ($modSettings['mostOnlineToday']) = $smcFunc['db_fetch_row']($request);
242 247
 
243
-			if ($total_users_online > $modSettings['mostOnlineToday'])
244
-				trackStats(array('most_on' => $total_users_online));
248
+			if ($total_users_online > $modSettings['mostOnlineToday']) {
249
+							trackStats(array('most_on' => $total_users_online));
250
+			}
245 251
 
246 252
 			$total_users_online = max($total_users_online, $modSettings['mostOnlineToday']);
247 253
 		}
@@ -258,8 +264,9 @@  discard block
 block discarded – undo
258 264
 		$settingsToUpdate['mostOnlineToday'] = $total_users_online;
259 265
 	}
260 266
 
261
-	if (!empty($settingsToUpdate))
262
-		updateSettings($settingsToUpdate);
263
-}
267
+	if (!empty($settingsToUpdate)) {
268
+			updateSettings($settingsToUpdate);
269
+	}
270
+	}
264 271
 
265 272
 ?>
266 273
\ No newline at end of file
Please login to merge, or discard this patch.
Sources/Subs-Notify.php 1 patch
Braces   +17 added lines, -11 removed lines patch added patch discarded remove patch
@@ -11,8 +11,9 @@  discard block
 block discarded – undo
11 11
  * @version 2.1 Beta 3
12 12
  */
13 13
 
14
-if (!defined('SMF'))
14
+if (!defined('SMF')) {
15 15
 	die('No direct access...');
16
+}
16 17
 
17 18
 /**
18 19
  * Fetches the list of preferences (or a single/subset of preferences) for
@@ -30,8 +31,9 @@  discard block
 block discarded – undo
30 31
 	// We want this as an array whether it is or not.
31 32
 	$members = is_array($members) ? $members : (array) $members;
32 33
 
33
-	if (!empty($prefs))
34
-		$prefs = is_array($prefs) ? $prefs : (array) $prefs;
34
+	if (!empty($prefs)) {
35
+			$prefs = is_array($prefs) ? $prefs : (array) $prefs;
36
+	}
35 37
 
36 38
 	$result = array();
37 39
 
@@ -56,9 +58,10 @@  discard block
 block discarded – undo
56 58
 	// We may want to keep the default values separate from a given user's. Or we might not.
57 59
 	if ($process_default && isset($result[0]))
58 60
 	{
59
-		foreach ($members as $member)
60
-			if (!isset($result[$member]))
61
+		foreach ($members as $member) {
62
+					if (!isset($result[$member]))
61 63
 				$result[$member] = $result[0];
64
+		}
62 65
 
63 66
 		unset ($result[0]);
64 67
 	}
@@ -76,12 +79,14 @@  discard block
 block discarded – undo
76 79
 {
77 80
 	global $smcFunc;
78 81
 
79
-	if (empty($prefs) || !is_int($memID))
80
-		return;
82
+	if (empty($prefs) || !is_int($memID)) {
83
+			return;
84
+	}
81 85
 
82 86
 	$update_rows = array();
83
-	foreach ($prefs as $k => $v)
84
-		$update_rows[] = array($memID, $k, $v);
87
+	foreach ($prefs as $k => $v) {
88
+			$update_rows[] = array($memID, $k, $v);
89
+	}
85 90
 
86 91
 	$smcFunc['db_insert']('replace',
87 92
 		'{db_prefix}user_alerts_prefs',
@@ -101,8 +106,9 @@  discard block
 block discarded – undo
101 106
 {
102 107
 	global $smcFunc;
103 108
 
104
-	if (empty($prefs) || empty($memID))
105
-		return;
109
+	if (empty($prefs) || empty($memID)) {
110
+			return;
111
+	}
106 112
 
107 113
 	$smcFunc['db_query']('', '
108 114
 		DELETE FROM {db_prefix}user_alerts_prefs
Please login to merge, or discard this patch.
Sources/RepairBoards.php 2 patches
Spacing   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -232,7 +232,7 @@  discard block
 block discarded – undo
232 232
 					LEFT JOIN {db_prefix}topics AS t ON (t.id_topic = m.id_topic)
233 233
 				WHERE t.id_topic IS NULL
234 234
 				GROUP BY m.id_topic, m.id_board',
235
-			'fix_processing' => function ($row) use ($smcFunc)
235
+			'fix_processing' => function($row) use ($smcFunc)
236 236
 			{
237 237
 				global $salvageBoardID;
238 238
 
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 			// Remove all topics that have zero messages in the messages table.
320 320
 			'fix_collect' => array(
321 321
 				'index' => 'id_topic',
322
-				'process' => function ($topics) use ($smcFunc)
322
+				'process' => function($topics) use ($smcFunc)
323 323
 				{
324 324
 					$smcFunc['db_query']('', '
325 325
 						DELETE FROM {db_prefix}topics
@@ -357,21 +357,21 @@  discard block
 block discarded – undo
357 357
 				  AND p.id_poll IS NULL
358 358
 				GROUP BY o.id_poll
359 359
 				  ',
360
-			'fix_processing' => function ($row) use ($smcFunc, $txt)
360
+			'fix_processing' => function($row) use ($smcFunc, $txt)
361 361
 			{
362 362
 				global $salvageBoardID;
363 363
 
364 364
 				$row['poster_name'] = !empty($row['poster_name']) ? $row['poster_name'] : $txt['guest'];
365 365
 				$row['id_poster'] = !empty($row['id_poster']) ? $row['id_poster'] : 0;
366 366
 
367
-				if(empty($row['id_board']))
367
+				if (empty($row['id_board']))
368 368
 				{
369 369
 					// Only if we don't have a reasonable idea of where to put it.
370 370
 					createSalvageArea();
371
-					$row['id_board'] = (int)$salvageBoardID;
371
+					$row['id_board'] = (int) $salvageBoardID;
372 372
 				}
373 373
 
374
-				if(empty($row['id_topic'])) {
374
+				if (empty($row['id_topic'])) {
375 375
 					$smcFunc['db_insert']('',
376 376
 						'{db_prefix}messages',
377 377
 						array(
@@ -495,7 +495,7 @@  discard block
 block discarded – undo
495 495
 					LEFT JOIN {db_prefix}topics AS t ON (t.id_poll = p.id_poll)
496 496
 				WHERE p.id_poll BETWEEN {STEP_LOW} AND {STEP_HIGH}
497 497
 					AND t.id_poll IS NULL',
498
-			'fix_processing' => function ($row) use ($smcFunc, $txt)
498
+			'fix_processing' => function($row) use ($smcFunc, $txt)
499 499
 			{
500 500
 				global $salvageBoardID;
501 501
 
@@ -610,7 +610,7 @@  discard block
 block discarded – undo
610 610
 				WHERE t.id_topic BETWEEN {STEP_LOW} AND {STEP_HIGH}
611 611
 				GROUP BY t.id_topic, t.id_first_msg, t.id_last_msg, t.approved, mf.approved
612 612
 				ORDER BY t.id_topic',
613
-			'fix_processing' => function ($row) use ($smcFunc)
613
+			'fix_processing' => function($row) use ($smcFunc)
614 614
 			{
615 615
 				$row['firstmsg_approved'] = (int) $row['firstmsg_approved'];
616 616
 				$row['myid_first_msg'] = (int) $row['myid_first_msg'];
@@ -639,7 +639,7 @@  discard block
 block discarded – undo
639 639
 					)
640 640
 				);
641 641
 			},
642
-			'message_function' => function ($row) use ($txt, &$context)
642
+			'message_function' => function($row) use ($txt, &$context)
643 643
 			{
644 644
 				// A pretend error?
645 645
 				if ($row['myid_first_msg'] == $row['myid_first_msg'] && $row['myid_first_msg'] == $row['myid_first_msg'] && $row['approved'] == $row['firstmsg_approved'])
@@ -673,7 +673,7 @@  discard block
 block discarded – undo
673 673
 				WHERE t.id_topic BETWEEN {STEP_LOW} AND {STEP_HIGH}
674 674
 				GROUP BY t.id_topic, t.num_replies, mf.approved
675 675
 				ORDER BY t.id_topic',
676
-			'fix_processing' => function ($row)
676
+			'fix_processing' => function($row)
677 677
 		{
678 678
 
679 679
 				global $smcFunc;
@@ -694,7 +694,7 @@  discard block
 block discarded – undo
694 694
 				);
695 695
 
696 696
 		},
697
-			'message_function' => function ($row)
697
+			'message_function' => function($row)
698 698
 		{
699 699
 
700 700
 				global $txt, $context;
@@ -727,7 +727,7 @@  discard block
 block discarded – undo
727 727
 				GROUP BY t.id_topic, t.unapproved_posts
728 728
 				HAVING unapproved_posts != COUNT(mu.id_msg)
729 729
 				ORDER BY t.id_topic',
730
-			'fix_processing' => function ($row)
730
+			'fix_processing' => function($row)
731 731
 		{
732 732
 
733 733
 				global $smcFunc;
@@ -769,7 +769,7 @@  discard block
 block discarded – undo
769 769
 				WHERE b.id_board IS NULL
770 770
 					AND t.id_topic BETWEEN {STEP_LOW} AND {STEP_HIGH}
771 771
 				GROUP BY t.id_board',
772
-			'fix_processing' => function ($row)
772
+			'fix_processing' => function($row)
773 773
 		{
774 774
 
775 775
 				global $smcFunc, $salvageCatID, $txt;
@@ -818,7 +818,7 @@  discard block
 block discarded – undo
818 818
 				ORDER BY b.id_cat, b.id_board',
819 819
 			'fix_collect' => array(
820 820
 				'index' => 'id_cat',
821
-				'process' => function ($cats)
821
+				'process' => function($cats)
822 822
 				{
823 823
 					global $smcFunc, $salvageCatID;
824 824
 					createSalvageArea();
@@ -854,7 +854,7 @@  discard block
 block discarded – undo
854 854
 			// Last step-make sure all non-guest posters still exist.
855 855
 			'fix_collect' => array(
856 856
 				'index' => 'id_msg',
857
-				'process' => function ($msgs)
857
+				'process' => function($msgs)
858 858
 		{
859 859
 
860 860
 					global $smcFunc;
@@ -883,7 +883,7 @@  discard block
 block discarded – undo
883 883
 				ORDER BY b.id_parent, b.id_board',
884 884
 			'fix_collect' => array(
885 885
 				'index' => 'id_parent',
886
-				'process' => function ($parents)
886
+				'process' => function($parents)
887 887
 				{
888 888
 					global $smcFunc, $salvageBoardID, $salvageCatID;
889 889
 					createSalvageArea();
@@ -917,7 +917,7 @@  discard block
 block discarded – undo
917 917
 					AND p.id_poll IS NULL',
918 918
 			'fix_collect' => array(
919 919
 				'index' => 'id_poll',
920
-				'process' => function ($polls)
920
+				'process' => function($polls)
921 921
 		{
922 922
 
923 923
 					global $smcFunc;
@@ -951,7 +951,7 @@  discard block
 block discarded – undo
951 951
 				ORDER BY cal.id_topic',
952 952
 			'fix_collect' => array(
953 953
 				'index' => 'id_topic',
954
-				'process' => function ($events)
954
+				'process' => function($events)
955 955
 		{
956 956
 
957 957
 					global $smcFunc;
@@ -983,7 +983,7 @@  discard block
 block discarded – undo
983 983
 					AND lt.id_member BETWEEN {STEP_LOW} AND {STEP_HIGH}',
984 984
 			'fix_collect' => array(
985 985
 				'index' => 'id_topic',
986
-				'process' => function ($topics)
986
+				'process' => function($topics)
987 987
 		{
988 988
 
989 989
 					global $smcFunc;
@@ -1015,7 +1015,7 @@  discard block
 block discarded – undo
1015 1015
 				GROUP BY lt.id_member',
1016 1016
 			'fix_collect' => array(
1017 1017
 				'index' => 'id_member',
1018
-				'process' => function ($members)
1018
+				'process' => function($members)
1019 1019
 		{
1020 1020
 
1021 1021
 					global $smcFunc;
@@ -1047,7 +1047,7 @@  discard block
 block discarded – undo
1047 1047
 				GROUP BY lb.id_board',
1048 1048
 			'fix_collect' => array(
1049 1049
 				'index' => 'id_board',
1050
-				'process' => function ($boards)
1050
+				'process' => function($boards)
1051 1051
 		{
1052 1052
 
1053 1053
 					global $smcFunc;
@@ -1079,7 +1079,7 @@  discard block
 block discarded – undo
1079 1079
 				GROUP BY lb.id_member',
1080 1080
 			'fix_collect' => array(
1081 1081
 				'index' => 'id_member',
1082
-				'process' => function ($members) use ($smcFunc)
1082
+				'process' => function($members) use ($smcFunc)
1083 1083
 				{
1084 1084
 					$smcFunc['db_query']('', '
1085 1085
 						DELETE FROM {db_prefix}log_boards
@@ -1108,7 +1108,7 @@  discard block
 block discarded – undo
1108 1108
 				GROUP BY lmr.id_board',
1109 1109
 			'fix_collect' => array(
1110 1110
 				'index' => 'id_board',
1111
-				'process' => function ($boards) use ($smcFunc)
1111
+				'process' => function($boards) use ($smcFunc)
1112 1112
 				{
1113 1113
 					$smcFunc['db_query']('', '
1114 1114
 						DELETE FROM {db_prefix}log_mark_read
@@ -1137,7 +1137,7 @@  discard block
 block discarded – undo
1137 1137
 				GROUP BY lmr.id_member',
1138 1138
 			'fix_collect' => array(
1139 1139
 				'index' => 'id_member',
1140
-				'process' => function ($members) use ($smcFunc)
1140
+				'process' => function($members) use ($smcFunc)
1141 1141
 				{
1142 1142
 					$smcFunc['db_query']('', '
1143 1143
 						DELETE FROM {db_prefix}log_mark_read
@@ -1166,7 +1166,7 @@  discard block
 block discarded – undo
1166 1166
 				GROUP BY pmr.id_pm',
1167 1167
 			'fix_collect' => array(
1168 1168
 				'index' => 'id_pm',
1169
-				'process' => function ($pms) use ($smcFunc)
1169
+				'process' => function($pms) use ($smcFunc)
1170 1170
 				{
1171 1171
 					$smcFunc['db_query']('', '
1172 1172
 						DELETE FROM {db_prefix}pm_recipients
@@ -1196,7 +1196,7 @@  discard block
 block discarded – undo
1196 1196
 				GROUP BY pmr.id_member',
1197 1197
 			'fix_collect' => array(
1198 1198
 				'index' => 'id_member',
1199
-				'process' => function ($members)
1199
+				'process' => function($members)
1200 1200
 		{
1201 1201
 
1202 1202
 					global $smcFunc;
@@ -1228,7 +1228,7 @@  discard block
 block discarded – undo
1228 1228
 					AND mem.id_member IS NULL',
1229 1229
 			'fix_collect' => array(
1230 1230
 				'index' => 'id_pm',
1231
-				'process' => function ($guestMessages)
1231
+				'process' => function($guestMessages)
1232 1232
 		{
1233 1233
 
1234 1234
 					global $smcFunc;
@@ -1260,7 +1260,7 @@  discard block
 block discarded – undo
1260 1260
 				GROUP BY ln.id_member',
1261 1261
 			'fix_collect' => array(
1262 1262
 				'index' => 'id_member',
1263
-				'process' => function ($members) use ($smcFunc)
1263
+				'process' => function($members) use ($smcFunc)
1264 1264
 				{
1265 1265
 					$smcFunc['db_query']('', '
1266 1266
 						DELETE FROM {db_prefix}log_notify
@@ -1287,7 +1287,7 @@  discard block
 block discarded – undo
1287 1287
 					LEFT JOIN {db_prefix}log_search_subjects AS lss ON (lss.id_topic = t.id_topic)
1288 1288
 				WHERE t.id_topic BETWEEN {STEP_LOW} AND {STEP_HIGH}
1289 1289
 					AND lss.id_topic IS NULL',
1290
-			'fix_full_processing' => function ($result)
1290
+			'fix_full_processing' => function($result)
1291 1291
 		{
1292 1292
 
1293 1293
 				global $smcFunc;
@@ -1319,7 +1319,7 @@  discard block
 block discarded – undo
1319 1319
 					);
1320 1320
 
1321 1321
 		},
1322
-			'message_function' => function ($row)
1322
+			'message_function' => function($row)
1323 1323
 		{
1324 1324
 
1325 1325
 				global $txt, $context;
@@ -1349,7 +1349,7 @@  discard block
 block discarded – undo
1349 1349
 					AND t.id_topic IS NULL',
1350 1350
 			'fix_collect' => array(
1351 1351
 				'index' => 'id_topic',
1352
-				'process' => function ($deleteTopics)
1352
+				'process' => function($deleteTopics)
1353 1353
 		{
1354 1354
 
1355 1355
 					global $smcFunc;
@@ -1381,7 +1381,7 @@  discard block
 block discarded – undo
1381 1381
 					AND mem.id_member IS NULL',
1382 1382
 			'fix_collect' => array(
1383 1383
 				'index' => 'id_member',
1384
-				'process' => function ($members)
1384
+				'process' => function($members)
1385 1385
 		{
1386 1386
 
1387 1387
 					global $smcFunc;
@@ -1412,7 +1412,7 @@  discard block
 block discarded – undo
1412 1412
 					AND p.id_poll IS NULL',
1413 1413
 			'fix_collect' => array(
1414 1414
 				'index' => 'id_poll',
1415
-				'process' => function ($polls)
1415
+				'process' => function($polls)
1416 1416
 		{
1417 1417
 
1418 1418
 					global $smcFunc;
@@ -1443,7 +1443,7 @@  discard block
 block discarded – undo
1443 1443
 					AND lrc.id_report IS NULL',
1444 1444
 			'fix_collect' => array(
1445 1445
 				'index' => 'id_report',
1446
-				'process' => function ($reports)
1446
+				'process' => function($reports)
1447 1447
 		{
1448 1448
 
1449 1449
 					global $smcFunc;
@@ -1474,7 +1474,7 @@  discard block
 block discarded – undo
1474 1474
 					AND lr.id_report IS NULL',
1475 1475
 			'fix_collect' => array(
1476 1476
 				'index' => 'id_report',
1477
-				'process' => function ($reports)
1477
+				'process' => function($reports)
1478 1478
 				{
1479 1479
 					global $smcFunc;
1480 1480
 					$smcFunc['db_query']('', '
@@ -1504,7 +1504,7 @@  discard block
 block discarded – undo
1504 1504
 				GROUP BY lgr.id_member',
1505 1505
 			'fix_collect' => array(
1506 1506
 				'index' => 'id_member',
1507
-				'process' => function ($members)
1507
+				'process' => function($members)
1508 1508
 				{
1509 1509
 					global $smcFunc;
1510 1510
 					$smcFunc['db_query']('', '
@@ -1534,7 +1534,7 @@  discard block
 block discarded – undo
1534 1534
 				GROUP BY lgr.id_group',
1535 1535
 			'fix_collect' => array(
1536 1536
 				'index' => 'id_group',
1537
-				'process' => function ($groups)
1537
+				'process' => function($groups)
1538 1538
 				{
1539 1539
 					global $smcFunc;
1540 1540
 					$smcFunc['db_query']('', '
Please login to merge, or discard this patch.
Braces   +119 added lines, -85 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 3
14 14
  */
15 15
 
16
-if (!defined('SMF'))
16
+if (!defined('SMF')) {
17 17
 	die('No direct access...');
18
+}
18 19
 
19 20
 /**
20 21
  * Finds or repairs errors in the database to fix possible problems.
@@ -50,8 +51,9 @@  discard block
 block discarded – undo
50 51
 	);
51 52
 
52 53
 	// Start displaying errors without fixing them.
53
-	if (isset($_GET['fixErrors']))
54
-		checkSession('get');
54
+	if (isset($_GET['fixErrors'])) {
55
+			checkSession('get');
56
+	}
55 57
 
56 58
 	// Will want this.
57 59
 	loadForumTests();
@@ -69,11 +71,11 @@  discard block
 block discarded – undo
69 71
 			$_SESSION['repairboards_to_fix'] = $context['to_fix'];
70 72
 			$_SESSION['repairboards_to_fix2'] = null;
71 73
 
72
-			if (empty($context['repair_errors']))
73
-				$context['repair_errors'][] = '???';
74
+			if (empty($context['repair_errors'])) {
75
+							$context['repair_errors'][] = '???';
76
+			}
74 77
 		}
75
-	}
76
-	else
78
+	} else
77 79
 	{
78 80
 		$context['error_search'] = false;
79 81
 		$context['to_fix'] = isset($_SESSION['repairboards_to_fix']) ? $_SESSION['repairboards_to_fix'] : array();
@@ -120,16 +122,19 @@  discard block
 block discarded – undo
120 122
 
121 123
 	// More time, I need more time!
122 124
 	@set_time_limit(600);
123
-	if (function_exists('apache_reset_timeout'))
124
-		@apache_reset_timeout();
125
+	if (function_exists('apache_reset_timeout')) {
126
+			@apache_reset_timeout();
127
+	}
125 128
 
126 129
 	// Errr, wait.  How much time has this taken already?
127
-	if (!$force && time() - array_sum(explode(' ', $time_start)) < 3)
128
-		return;
130
+	if (!$force && time() - array_sum(explode(' ', $time_start)) < 3) {
131
+			return;
132
+	}
129 133
 
130 134
 	// Restore the query cache if interested.
131
-	if (!empty($db_temp_cache))
132
-		$db_cache = $db_temp_cache;
135
+	if (!empty($db_temp_cache)) {
136
+			$db_cache = $db_temp_cache;
137
+	}
133 138
 
134 139
 	$context['continue_get_data'] = '?action=admin;area=repairboards' . (isset($_GET['fixErrors']) ? ';fixErrors' : '') . ';step=' . $_GET['step'] . ';substep=' . $_GET['substep'] . ';' . $context['session_var'] . '=' . $context['session_id'];
135 140
 	$context['page_title'] = $txt['not_done_title'];
@@ -138,10 +143,11 @@  discard block
 block discarded – undo
138 143
 	$context['sub_template'] = 'not_done';
139 144
 
140 145
 	// Change these two if more steps are added!
141
-	if (empty($max_substep))
142
-		$context['continue_percent'] = round(($_GET['step'] * 100) / $context['total_steps']);
143
-	else
144
-		$context['continue_percent'] = round((($_GET['step'] + ($_GET['substep'] / $max_substep)) * 100) / $context['total_steps']);
146
+	if (empty($max_substep)) {
147
+			$context['continue_percent'] = round(($_GET['step'] * 100) / $context['total_steps']);
148
+	} else {
149
+			$context['continue_percent'] = round((($_GET['step'] + ($_GET['substep'] / $max_substep)) * 100) / $context['total_steps']);
150
+	}
145 151
 
146 152
 	// Never more than 100%!
147 153
 	$context['continue_percent'] = min($context['continue_percent'], 100);
@@ -617,8 +623,9 @@  discard block
 block discarded – undo
617 623
 				$row['myid_last_msg'] = (int) $row['myid_last_msg'];
618 624
 
619 625
 				// Not really a problem?
620
-				if ($row['myid_first_msg'] == $row['myid_first_msg'] && $row['myid_first_msg'] == $row['myid_first_msg'] && $row['approved'] == $row['firstmsg_approved'])
621
-					return false;
626
+				if ($row['myid_first_msg'] == $row['myid_first_msg'] && $row['myid_first_msg'] == $row['myid_first_msg'] && $row['approved'] == $row['firstmsg_approved']) {
627
+									return false;
628
+				}
622 629
 
623 630
 				$memberStartedID = (int) getMsgMemberID($row['myid_first_msg']);
624 631
 				$memberUpdatedID = (int) getMsgMemberID($row['myid_last_msg']);
@@ -642,15 +649,19 @@  discard block
 block discarded – undo
642 649
 			'message_function' => function ($row) use ($txt, &$context)
643 650
 			{
644 651
 				// A pretend error?
645
-				if ($row['myid_first_msg'] == $row['myid_first_msg'] && $row['myid_first_msg'] == $row['myid_first_msg'] && $row['approved'] == $row['firstmsg_approved'])
646
-					return false;
652
+				if ($row['myid_first_msg'] == $row['myid_first_msg'] && $row['myid_first_msg'] == $row['myid_first_msg'] && $row['approved'] == $row['firstmsg_approved']) {
653
+									return false;
654
+				}
647 655
 
648
-				if ($row['id_first_msg'] != $row['myid_first_msg'])
649
-					$context['repair_errors'][] = sprintf($txt['repair_stats_topics_1'], $row['id_topic'], $row['id_first_msg']);
650
-				if ($row['id_last_msg'] != $row['myid_last_msg'])
651
-					$context['repair_errors'][] = sprintf($txt['repair_stats_topics_2'], $row['id_topic'], $row['id_last_msg']);
652
-				if ($row['approved'] != $row['firstmsg_approved'])
653
-					$context['repair_errors'][] = sprintf($txt['repair_stats_topics_5'], $row['id_topic']);
656
+				if ($row['id_first_msg'] != $row['myid_first_msg']) {
657
+									$context['repair_errors'][] = sprintf($txt['repair_stats_topics_1'], $row['id_topic'], $row['id_first_msg']);
658
+				}
659
+				if ($row['id_last_msg'] != $row['myid_last_msg']) {
660
+									$context['repair_errors'][] = sprintf($txt['repair_stats_topics_2'], $row['id_topic'], $row['id_last_msg']);
661
+				}
662
+				if ($row['approved'] != $row['firstmsg_approved']) {
663
+									$context['repair_errors'][] = sprintf($txt['repair_stats_topics_5'], $row['id_topic']);
664
+				}
654 665
 
655 666
 				return true;
656 667
 			},
@@ -680,8 +691,9 @@  discard block
 block discarded – undo
680 691
 				$row['my_num_replies'] = (int) $row['my_num_replies'];
681 692
 
682 693
 				// Not really a problem?
683
-				if ($row['my_num_replies'] == $row['num_replies'])
684
-					return false;
694
+				if ($row['my_num_replies'] == $row['num_replies']) {
695
+									return false;
696
+				}
685 697
 
686 698
 				$smcFunc['db_query']('', '
687 699
 					UPDATE {db_prefix}topics
@@ -700,11 +712,13 @@  discard block
 block discarded – undo
700 712
 				global $txt, $context;
701 713
 
702 714
 				// Just joking?
703
-				if ($row['my_num_replies'] == $row['num_replies'])
704
-					return false;
715
+				if ($row['my_num_replies'] == $row['num_replies']) {
716
+									return false;
717
+				}
705 718
 
706
-				if ($row['num_replies'] != $row['my_num_replies'])
707
-					$context['repair_errors'][] = sprintf($txt['repair_stats_topics_3'], $row['id_topic'], $row['num_replies']);
719
+				if ($row['num_replies'] != $row['my_num_replies']) {
720
+									$context['repair_errors'][] = sprintf($txt['repair_stats_topics_3'], $row['id_topic'], $row['num_replies']);
721
+				}
708 722
 
709 723
 				return true;
710 724
 
@@ -1295,8 +1309,9 @@  discard block
 block discarded – undo
1295 1309
 				$inserts = array();
1296 1310
 				while ($row = $smcFunc['db_fetch_assoc']($result))
1297 1311
 				{
1298
-					foreach (text2words($row['subject']) as $word)
1299
-						$inserts[] = array($word, $row['id_topic']);
1312
+					foreach (text2words($row['subject']) as $word) {
1313
+											$inserts[] = array($word, $row['id_topic']);
1314
+					}
1300 1315
 					if (count($inserts) > 500)
1301 1316
 					{
1302 1317
 						$smcFunc['db_insert']('ignore',
@@ -1310,13 +1325,14 @@  discard block
 block discarded – undo
1310 1325
 
1311 1326
 				}
1312 1327
 
1313
-				if (!empty($inserts))
1314
-					$smcFunc['db_insert']('ignore',
1328
+				if (!empty($inserts)) {
1329
+									$smcFunc['db_insert']('ignore',
1315 1330
 						'{db_prefix}log_search_subjects',
1316 1331
 						array('word' => 'string', 'id_topic' => 'int'),
1317 1332
 						$inserts,
1318 1333
 						array('word', 'id_topic')
1319 1334
 					);
1335
+				}
1320 1336
 
1321 1337
 		},
1322 1338
 			'message_function' => function ($row)
@@ -1586,8 +1602,9 @@  discard block
 block discarded – undo
1586 1602
 		$current_step++;
1587 1603
 
1588 1604
 		// Already done this?
1589
-		if ($_GET['step'] > $current_step)
1590
-			continue;
1605
+		if ($_GET['step'] > $current_step) {
1606
+					continue;
1607
+		}
1591 1608
 
1592 1609
 		// If we're fixing it but it ain't broke why try?
1593 1610
 		if ($do_fix && !in_array($error_type, $to_fix))
@@ -1616,14 +1633,16 @@  discard block
 block discarded – undo
1616 1633
 		while (!$done)
1617 1634
 		{
1618 1635
 			// Make sure there's at least one ID to test.
1619
-			if (isset($test['substeps']) && empty($step_max))
1620
-				break;
1636
+			if (isset($test['substeps']) && empty($step_max)) {
1637
+							break;
1638
+			}
1621 1639
 
1622 1640
 			// What is the testing query (Changes if we are testing or fixing)
1623
-			if (!$do_fix)
1624
-				$test_query = 'check_query';
1625
-			else
1626
-				$test_query = isset($test['fix_query']) ? 'fix_query' : 'check_query';
1641
+			if (!$do_fix) {
1642
+							$test_query = 'check_query';
1643
+			} else {
1644
+							$test_query = isset($test['fix_query']) ? 'fix_query' : 'check_query';
1645
+			}
1627 1646
 
1628 1647
 			// Do the test...
1629 1648
 			$request = $smcFunc['db_query']('',
@@ -1634,10 +1653,11 @@  discard block
 block discarded – undo
1634 1653
 			$needs_fix = false;
1635 1654
 
1636 1655
 			// Does it need a fix?
1637
-			if (!empty($test['check_type']) && $test['check_type'] == 'count')
1638
-				list ($needs_fix) = $smcFunc['db_fetch_row']($request);
1639
-			else
1640
-				$needs_fix = $smcFunc['db_num_rows']($request);
1656
+			if (!empty($test['check_type']) && $test['check_type'] == 'count') {
1657
+							list ($needs_fix) = $smcFunc['db_fetch_row']($request);
1658
+			} else {
1659
+							$needs_fix = $smcFunc['db_num_rows']($request);
1660
+			}
1641 1661
 
1642 1662
 			$total_queries++;
1643 1663
 
@@ -1649,8 +1669,9 @@  discard block
 block discarded – undo
1649 1669
 					// Assume need to fix.
1650 1670
 					$found_errors = true;
1651 1671
 
1652
-					if (isset($test['message']))
1653
-						$context['repair_errors'][] = $txt[$test['message']];
1672
+					if (isset($test['message'])) {
1673
+											$context['repair_errors'][] = $txt[$test['message']];
1674
+					}
1654 1675
 
1655 1676
 					// One per row!
1656 1677
 					elseif (isset($test['messages']))
@@ -1660,10 +1681,11 @@  discard block
 block discarded – undo
1660 1681
 							$variables = $test['messages'];
1661 1682
 							foreach ($variables as $k => $v)
1662 1683
 							{
1663
-								if ($k == 0 && isset($txt[$v]))
1664
-									$variables[$k] = $txt[$v];
1665
-								elseif ($k > 0 && isset($row[$v]))
1666
-									$variables[$k] = $row[$v];
1684
+								if ($k == 0 && isset($txt[$v])) {
1685
+																	$variables[$k] = $txt[$v];
1686
+								} elseif ($k > 0 && isset($row[$v])) {
1687
+																	$variables[$k] = $row[$v];
1688
+								}
1667 1689
 							}
1668 1690
 							$context['repair_errors'][] = call_user_func_array('sprintf', $variables);
1669 1691
 						}
@@ -1674,13 +1696,15 @@  discard block
 block discarded – undo
1674 1696
 					{
1675 1697
 						// Find out if there are actually errors.
1676 1698
 						$found_errors = false;
1677
-						while ($row = $smcFunc['db_fetch_assoc']($request))
1678
-							$found_errors |= $test['message_function']($row);
1699
+						while ($row = $smcFunc['db_fetch_assoc']($request)) {
1700
+													$found_errors |= $test['message_function']($row);
1701
+						}
1679 1702
 					}
1680 1703
 
1681 1704
 					// Actually have something to fix?
1682
-					if ($found_errors)
1683
-						$to_fix[] = $error_type;
1705
+					if ($found_errors) {
1706
+											$to_fix[] = $error_type;
1707
+					}
1684 1708
 				}
1685 1709
 
1686 1710
 				// We want to fix, we need to fix - so work out what exactly to do!
@@ -1690,8 +1714,9 @@  discard block
 block discarded – undo
1690 1714
 					if (isset($test['fix_collect']))
1691 1715
 					{
1692 1716
 						$ids = array();
1693
-						while ($row = $smcFunc['db_fetch_assoc']($request))
1694
-							$ids[] = $row[$test['fix_collect']['index']];
1717
+						while ($row = $smcFunc['db_fetch_assoc']($request)) {
1718
+													$ids[] = $row[$test['fix_collect']['index']];
1719
+						}
1695 1720
 						if (!empty($ids))
1696 1721
 						{
1697 1722
 							// Fix it!
@@ -1700,30 +1725,34 @@  discard block
 block discarded – undo
1700 1725
 					}
1701 1726
 
1702 1727
 					// Simply executing a fix it query?
1703
-					elseif (isset($test['fix_it_query']))
1704
-						$smcFunc['db_query']('',
1728
+					elseif (isset($test['fix_it_query'])) {
1729
+											$smcFunc['db_query']('',
1705 1730
 							$test['fix_it_query'],
1706 1731
 							array(
1707 1732
 							)
1708 1733
 						);
1734
+					}
1709 1735
 
1710 1736
 					// Do we have some processing to do?
1711 1737
 					elseif (isset($test['fix_processing']))
1712 1738
 					{
1713
-						while ($row = $smcFunc['db_fetch_assoc']($request))
1714
-							$test['fix_processing']($row);
1739
+						while ($row = $smcFunc['db_fetch_assoc']($request)) {
1740
+													$test['fix_processing']($row);
1741
+						}
1715 1742
 					}
1716 1743
 
1717 1744
 					// What about the full set of processing?
1718
-					elseif (isset($test['fix_full_processing']))
1719
-						$test['fix_full_processing']($request);
1745
+					elseif (isset($test['fix_full_processing'])) {
1746
+											$test['fix_full_processing']($request);
1747
+					}
1720 1748
 
1721 1749
 					// Do we have other things we need to fix as a result?
1722 1750
 					if (!empty($test['force_fix']))
1723 1751
 					{
1724
-						foreach ($test['force_fix'] as $item)
1725
-							if (!in_array($item, $to_fix))
1752
+						foreach ($test['force_fix'] as $item) {
1753
+													if (!in_array($item, $to_fix))
1726 1754
 								$to_fix[] = $item;
1755
+						}
1727 1756
 					}
1728 1757
 				}
1729 1758
 			}
@@ -1741,16 +1770,17 @@  discard block
 block discarded – undo
1741 1770
 				if ($_GET['substep'] <= $step_max)
1742 1771
 				{
1743 1772
 					pauseRepairProcess($to_fix, $error_type, $step_max);
1773
+				} else {
1774
+									$done = true;
1744 1775
 				}
1745
-				else
1746
-					$done = true;
1776
+			} else {
1777
+							$done = true;
1747 1778
 			}
1748
-			else
1749
-				$done = true;
1750 1779
 
1751 1780
 			// Don't allow more than 1000 queries at a time.
1752
-			if ($total_queries >= 1000)
1753
-				pauseRepairProcess($to_fix, $error_type, $step_max, true);
1781
+			if ($total_queries >= 1000) {
1782
+							pauseRepairProcess($to_fix, $error_type, $step_max, true);
1783
+			}
1754 1784
 		}
1755 1785
 
1756 1786
 		// Keep going.
@@ -1763,8 +1793,9 @@  discard block
 block discarded – undo
1763 1793
 		if ($do_fix)
1764 1794
 		{
1765 1795
 			$key = array_search($error_type, $to_fix);
1766
-			if ($key !== false && isset($to_fix[$key]))
1767
-				unset($to_fix[$key]);
1796
+			if ($key !== false && isset($to_fix[$key])) {
1797
+							unset($to_fix[$key]);
1798
+			}
1768 1799
 		}
1769 1800
 
1770 1801
 		// Are we done?
@@ -1787,10 +1818,11 @@  discard block
 block discarded – undo
1787 1818
 	static $createOnce = false;
1788 1819
 
1789 1820
 	// Have we already created it?
1790
-	if ($createOnce)
1791
-		return;
1792
-	else
1793
-		$createOnce = true;
1821
+	if ($createOnce) {
1822
+			return;
1823
+	} else {
1824
+			$createOnce = true;
1825
+	}
1794 1826
 
1795 1827
 	// Back to the forum's default language.
1796 1828
 	loadLanguage('Admin', $language);
@@ -1805,8 +1837,9 @@  discard block
 block discarded – undo
1805 1837
 			'cat_name' => $txt['salvaged_category_name'],
1806 1838
 		)
1807 1839
 	);
1808
-	if ($smcFunc['db_num_rows']($result) != 0)
1809
-		list ($salvageCatID) = $smcFunc['db_fetch_row']($result);
1840
+	if ($smcFunc['db_num_rows']($result) != 0) {
1841
+			list ($salvageCatID) = $smcFunc['db_fetch_row']($result);
1842
+	}
1810 1843
 	$smcFunc['db_free_result']($result);
1811 1844
 
1812 1845
 	if (empty($salvageCatID))
@@ -1839,8 +1872,9 @@  discard block
 block discarded – undo
1839 1872
 			'board_name' => $txt['salvaged_board_name'],
1840 1873
 		)
1841 1874
 	);
1842
-	if ($smcFunc['db_num_rows']($result) != 0)
1843
-		list ($salvageBoardID) = $smcFunc['db_fetch_row']($result);
1875
+	if ($smcFunc['db_num_rows']($result) != 0) {
1876
+			list ($salvageBoardID) = $smcFunc['db_fetch_row']($result);
1877
+	}
1844 1878
 	$smcFunc['db_free_result']($result);
1845 1879
 
1846 1880
 	if (empty($salvageBoardID))
Please login to merge, or discard this patch.
Sources/Groups.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
 					'value' => $txt['name'],
97 97
 				),
98 98
 				'data' => array(
99
-					'function' => function ($rowData) use ($scripturl)
99
+					'function' => function($rowData) use ($scripturl)
100 100
 					{
101 101
 						// Since the moderator group has no explicit members, no link is needed.
102 102
 						if ($rowData['id_group'] == 3)
@@ -146,7 +146,7 @@  discard block
 block discarded – undo
146 146
 					'value' => $txt['moderators'],
147 147
 				),
148 148
 				'data' => array(
149
-					'function' => function ($group) use ($txt)
149
+					'function' => function($group) use ($txt)
150 150
 					{
151 151
 						return empty($group['moderators']) ? '<em>' . $txt['membergroups_new_copy_none'] . '</em>' : implode(', ', $group['moderators']);
152 152
 					},
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
 					'value' => $txt['membergroups_members_top'],
158 158
 				),
159 159
 				'data' => array(
160
-					'function' => function ($rowData) use ($txt)
160
+					'function' => function($rowData) use ($txt)
161 161
 					{
162 162
 						// No explicit members for the moderator group.
163 163
 						return $rowData['id_group'] == 3 ? $txt['membergroups_guests_na'] : comma_format($rowData['num_members']);
@@ -745,7 +745,7 @@  discard block
 block discarded – undo
745 745
 	while ($row = $smcFunc['db_fetch_assoc']($request))
746 746
 	{
747 747
 		if (empty($row['reason']))
748
-			$reason = '<em>(' . $txt['mc_groupr_no_reason'] .  ')</em>';
748
+			$reason = '<em>(' . $txt['mc_groupr_no_reason'] . ')</em>';
749 749
 		else
750 750
 			$reason = censorText($row['reason']);
751 751
 
Please login to merge, or discard this patch.
Braces   +80 added lines, -59 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 3
14 14
  */
15 15
 
16
-if (!defined('SMF'))
16
+if (!defined('SMF')) {
17 17
 	die('No direct access...');
18
+}
18 19
 
19 20
 /**
20 21
  * Entry point function, permission checks, admin bars, etc.
@@ -99,27 +100,27 @@  discard block
 block discarded – undo
99 100
 					'function' => function ($rowData) use ($scripturl)
100 101
 					{
101 102
 						// Since the moderator group has no explicit members, no link is needed.
102
-						if ($rowData['id_group'] == 3)
103
-							$group_name = $rowData['group_name'];
104
-						else
103
+						if ($rowData['id_group'] == 3) {
104
+													$group_name = $rowData['group_name'];
105
+						} else
105 106
 						{
106 107
 							$color_style = empty($rowData['online_color']) ? '' : sprintf(' style="color: %1$s;"', $rowData['online_color']);
107 108
 
108 109
 							if (allowedTo('manage_membergroups'))
109 110
 							{
110 111
 								$group_name = sprintf('<a href="%1$s?action=admin;area=membergroups;sa=members;group=%2$d"%3$s>%4$s</a>', $scripturl, $rowData['id_group'], $color_style, $rowData['group_name']);
111
-							}
112
-							else
112
+							} else
113 113
 							{
114 114
 								$group_name = sprintf('<a href="%1$s?action=groups;sa=members;group=%2$d"%3$s>%4$s</a>', $scripturl, $rowData['id_group'], $color_style, $rowData['group_name']);
115 115
 							}
116 116
 						}
117 117
 
118 118
 						// Add a help option for moderator and administrator.
119
-						if ($rowData['id_group'] == 1)
120
-							$group_name .= sprintf(' (<a href="%1$s?action=helpadmin;help=membergroup_administrator" onclick="return reqOverlayDiv(this.href);">?</a>)', $scripturl);
121
-						elseif ($rowData['id_group'] == 3)
122
-							$group_name .= sprintf(' (<a href="%1$s?action=helpadmin;help=membergroup_moderator" onclick="return reqOverlayDiv(this.href);">?</a>)', $scripturl);
119
+						if ($rowData['id_group'] == 1) {
120
+													$group_name .= sprintf(' (<a href="%1$s?action=helpadmin;help=membergroup_administrator" onclick="return reqOverlayDiv(this.href);">?</a>)', $scripturl);
121
+						} elseif ($rowData['id_group'] == 3) {
122
+													$group_name .= sprintf(' (<a href="%1$s?action=helpadmin;help=membergroup_moderator" onclick="return reqOverlayDiv(this.href);">?</a>)', $scripturl);
123
+						}
123 124
 
124 125
 						return $group_name;
125 126
 					},
@@ -198,8 +199,9 @@  discard block
 block discarded – undo
198 199
 	$_REQUEST['group'] = isset($_REQUEST['group']) ? (int) $_REQUEST['group'] : 0;
199 200
 
200 201
 	// No browsing of guests, membergroup 0 or moderators.
201
-	if (in_array($_REQUEST['group'], array(-1, 0, 3)))
202
-		fatal_lang_error('membergroup_does_not_exist', false);
202
+	if (in_array($_REQUEST['group'], array(-1, 0, 3))) {
203
+			fatal_lang_error('membergroup_does_not_exist', false);
204
+	}
203 205
 
204 206
 	// Load up the group details.
205 207
 	$request = $smcFunc['db_query']('', '
@@ -214,8 +216,9 @@  discard block
 block discarded – undo
214 216
 		)
215 217
 	);
216 218
 	// Doesn't exist?
217
-	if ($smcFunc['db_num_rows']($request) == 0)
218
-		fatal_lang_error('membergroup_does_not_exist', false);
219
+	if ($smcFunc['db_num_rows']($request) == 0) {
220
+			fatal_lang_error('membergroup_does_not_exist', false);
221
+	}
219 222
 	$context['group'] = $smcFunc['db_fetch_assoc']($request);
220 223
 	$smcFunc['db_free_result']($request);
221 224
 
@@ -248,21 +251,25 @@  discard block
 block discarded – undo
248 251
 			'name' => $row['real_name']
249 252
 		);
250 253
 
251
-		if ($user_info['id'] == $row['id_member'] && $context['group']['group_type'] != 1)
252
-			$context['group']['can_moderate'] = true;
254
+		if ($user_info['id'] == $row['id_member'] && $context['group']['group_type'] != 1) {
255
+					$context['group']['can_moderate'] = true;
256
+		}
253 257
 	}
254 258
 	$smcFunc['db_free_result']($request);
255 259
 
256 260
 	// If this group is hidden then it can only "exists" if the user can moderate it!
257
-	if ($context['group']['hidden'] && !$context['group']['can_moderate'])
258
-		fatal_lang_error('membergroup_does_not_exist', false);
261
+	if ($context['group']['hidden'] && !$context['group']['can_moderate']) {
262
+			fatal_lang_error('membergroup_does_not_exist', false);
263
+	}
259 264
 
260 265
 	// You can only assign membership if you are the moderator and/or can manage groups!
261
-	if (!$context['group']['can_moderate'])
262
-		$context['group']['assignable'] = 0;
266
+	if (!$context['group']['can_moderate']) {
267
+			$context['group']['assignable'] = 0;
268
+	}
263 269
 	// Non-admins cannot assign admins.
264
-	elseif ($context['group']['id'] == 1 && !allowedTo('admin_forum'))
265
-		$context['group']['assignable'] = 0;
270
+	elseif ($context['group']['id'] == 1 && !allowedTo('admin_forum')) {
271
+			$context['group']['assignable'] = 0;
272
+	}
266 273
 
267 274
 	// Removing member from group?
268 275
 	if (isset($_POST['remove']) && !empty($_REQUEST['rem']) && is_array($_REQUEST['rem']) && $context['group']['assignable'])
@@ -271,8 +278,9 @@  discard block
 block discarded – undo
271 278
 		validateToken('mod-mgm');
272 279
 
273 280
 		// Make sure we're dealing with integers only.
274
-		foreach ($_REQUEST['rem'] as $key => $group)
275
-			$_REQUEST['rem'][$key] = (int) $group;
281
+		foreach ($_REQUEST['rem'] as $key => $group) {
282
+					$_REQUEST['rem'][$key] = (int) $group;
283
+		}
276 284
 
277 285
 		require_once($sourcedir . '/Subs-Membergroups.php');
278 286
 		removeMembersFromGroups($_REQUEST['rem'], $_REQUEST['group'], true);
@@ -295,16 +303,18 @@  discard block
 block discarded – undo
295 303
 		{
296 304
 			$member_names[$index] = trim($smcFunc['strtolower']($member_names[$index]));
297 305
 
298
-			if (strlen($member_names[$index]) == 0)
299
-				unset($member_names[$index]);
306
+			if (strlen($member_names[$index]) == 0) {
307
+							unset($member_names[$index]);
308
+			}
300 309
 		}
301 310
 
302 311
 		// Any passed by ID?
303 312
 		$member_ids = array();
304
-		if (!empty($_REQUEST['member_add']))
305
-			foreach ($_REQUEST['member_add'] as $id)
313
+		if (!empty($_REQUEST['member_add'])) {
314
+					foreach ($_REQUEST['member_add'] as $id)
306 315
 				if ($id > 0)
307 316
 					$member_ids[] = (int) $id;
317
+		}
308 318
 
309 319
 		// Construct the query pelements.
310 320
 		if (!empty($member_ids))
@@ -332,8 +342,9 @@  discard block
 block discarded – undo
332 342
 					'id_group' => $_REQUEST['group'],
333 343
 				))
334 344
 			);
335
-			while ($row = $smcFunc['db_fetch_assoc']($request))
336
-				$members[] = $row['id_member'];
345
+			while ($row = $smcFunc['db_fetch_assoc']($request)) {
346
+							$members[] = $row['id_member'];
347
+			}
337 348
 			$smcFunc['db_free_result']($request);
338 349
 		}
339 350
 
@@ -372,10 +383,11 @@  discard block
 block discarded – undo
372 383
 	$context['sort_direction'] = isset($_REQUEST['desc']) ? 'down' : 'up';
373 384
 
374 385
 	// The where on the query is interesting. Non-moderators should only see people who are in this group as primary.
375
-	if ($context['group']['can_moderate'])
376
-		$where = $context['group']['is_post_group'] ? 'id_post_group = {int:group}' : 'id_group = {int:group} OR FIND_IN_SET({int:group}, additional_groups) != 0';
377
-	else
378
-		$where = $context['group']['is_post_group'] ? 'id_post_group = {int:group}' : 'id_group = {int:group}';
386
+	if ($context['group']['can_moderate']) {
387
+			$where = $context['group']['is_post_group'] ? 'id_post_group = {int:group}' : 'id_group = {int:group} OR FIND_IN_SET({int:group}, additional_groups) != 0';
388
+	} else {
389
+			$where = $context['group']['is_post_group'] ? 'id_post_group = {int:group}' : 'id_group = {int:group}';
390
+	}
379 391
 
380 392
 	// Count members of the group.
381 393
 	$request = $smcFunc['db_query']('', '
@@ -416,8 +428,9 @@  discard block
 block discarded – undo
416 428
 		$last_online = empty($row['last_login']) ? $txt['never'] : timeformat($row['last_login']);
417 429
 
418 430
 		// Italicize the online note if they aren't activated.
419
-		if ($row['is_activated'] % 10 != 1)
420
-			$last_online = '<em title="' . $txt['not_activated'] . '">' . $last_online . '</em>';
431
+		if ($row['is_activated'] % 10 != 1) {
432
+					$last_online = '<em title="' . $txt['not_activated'] . '">' . $last_online . '</em>';
433
+		}
421 434
 
422 435
 		$context['members'][] = array(
423 436
 			'id' => $row['id_member'],
@@ -437,9 +450,10 @@  discard block
 block discarded – undo
437 450
 	$context['page_title'] = $txt['membergroups_members_title'] . ': ' . $context['group']['name'];
438 451
 	createToken('mod-mgm');
439 452
 
440
-	if ($context['group']['assignable'])
441
-		loadJavaScriptFile('suggest.js', array('defer' => false), 'smf_suggest');
442
-}
453
+	if ($context['group']['assignable']) {
454
+			loadJavaScriptFile('suggest.js', array('defer' => false), 'smf_suggest');
455
+	}
456
+	}
443 457
 
444 458
 /**
445 459
  * Show and manage all group requests.
@@ -453,16 +467,18 @@  discard block
 block discarded – undo
453 467
 	$context['sub_template'] = 'show_list';
454 468
 
455 469
 	// Verify we can be here.
456
-	if ($user_info['mod_cache']['gq'] == '0=1')
457
-		isAllowedTo('manage_membergroups');
470
+	if ($user_info['mod_cache']['gq'] == '0=1') {
471
+			isAllowedTo('manage_membergroups');
472
+	}
458 473
 
459 474
 	// Normally, we act normally...
460 475
 	$where = ($user_info['mod_cache']['gq'] == '1=1' || $user_info['mod_cache']['gq'] == '0=1' ? $user_info['mod_cache']['gq'] : 'lgr.' . $user_info['mod_cache']['gq']);
461 476
 
462
-	if (isset($_GET['closed']))
463
-		$where .= ' AND lgr.status != {int:status_open}';
464
-	else
465
-		$where .= ' AND lgr.status = {int:status_open}';
477
+	if (isset($_GET['closed'])) {
478
+			$where .= ' AND lgr.status != {int:status_open}';
479
+	} else {
480
+			$where .= ' AND lgr.status = {int:status_open}';
481
+	}
466 482
 
467 483
 	$where_parameters = array(
468 484
 		'status_open' => 0,
@@ -475,8 +491,9 @@  discard block
 block discarded – undo
475 491
 		validateToken('mod-gr');
476 492
 
477 493
 		// Clean the values.
478
-		foreach ($_POST['groupr'] as $k => $request)
479
-			$_POST['groupr'][$k] = (int) $request;
494
+		foreach ($_POST['groupr'] as $k => $request) {
495
+					$_POST['groupr'][$k] = (int) $request;
496
+		}
480 497
 
481 498
 		$log_changes = array();
482 499
 
@@ -513,8 +530,8 @@  discard block
 block discarded – undo
513 530
 			$request_list = array();
514 531
 			while ($row = $smcFunc['db_fetch_assoc']($request))
515 532
 			{
516
-				if (!isset($log_changes[$row['id_request']]))
517
-					$log_changes[$row['id_request']] = array(
533
+				if (!isset($log_changes[$row['id_request']])) {
534
+									$log_changes[$row['id_request']] = array(
518 535
 						'id_request' => $row['id_request'],
519 536
 						'status' => $_POST['req_action'] == 'approve' ? 1 : 2, // 1 = approved, 2 = rejected
520 537
 						'id_member_acted' => $user_info['id'],
@@ -522,6 +539,7 @@  discard block
 block discarded – undo
522 539
 						'time_acted' => time(),
523 540
 						'act_reason' => $_POST['req_action'] != 'approve' && !empty($_POST['groupreason']) && !empty($_POST['groupreason'][$row['id_request']]) ? $smcFunc['htmlspecialchars']($_POST['groupreason'][$row['id_request']], ENT_QUOTES) : '',
524 541
 					);
542
+				}
525 543
 				$request_list[] = $row['id_request'];
526 544
 			}
527 545
 			$smcFunc['db_free_result']($request);
@@ -744,21 +762,24 @@  discard block
 block discarded – undo
744 762
 	$group_requests = array();
745 763
 	while ($row = $smcFunc['db_fetch_assoc']($request))
746 764
 	{
747
-		if (empty($row['reason']))
748
-			$reason = '<em>(' . $txt['mc_groupr_no_reason'] .  ')</em>';
749
-		else
750
-			$reason = censorText($row['reason']);
765
+		if (empty($row['reason'])) {
766
+					$reason = '<em>(' . $txt['mc_groupr_no_reason'] .  ')</em>';
767
+		} else {
768
+					$reason = censorText($row['reason']);
769
+		}
751 770
 
752 771
 		if (isset($_GET['closed']))
753 772
 		{
754
-			if ($row['status'] == 1)
755
-				$reason .= '<br><br><strong>' . $txt['mc_groupr_approved'] . '</strong>';
756
-			elseif ($row['status'] == 2)
757
-				$reason .= '<br><br><strong>' . $txt['mc_groupr_rejected'] . '</strong>';
773
+			if ($row['status'] == 1) {
774
+							$reason .= '<br><br><strong>' . $txt['mc_groupr_approved'] . '</strong>';
775
+			} elseif ($row['status'] == 2) {
776
+							$reason .= '<br><br><strong>' . $txt['mc_groupr_rejected'] . '</strong>';
777
+			}
758 778
 
759 779
 				$reason .= ' (' . timeformat($row['time_acted']) . ')';
760
-			if (!empty($row['act_reason']))
761
-				$reason .= '<br><br>' . censorText($row['act_reason']);
780
+			if (!empty($row['act_reason'])) {
781
+							$reason .= '<br><br>' . censorText($row['act_reason']);
782
+			}
762 783
 		}
763 784
 
764 785
 		$group_requests[] = array(
Please login to merge, or discard this patch.
Sources/minify/src/CSS.php 2 patches
Indentation   +412 added lines, -412 removed lines patch added patch discarded remove patch
@@ -17,97 +17,97 @@  discard block
 block discarded – undo
17 17
  */
18 18
 class CSS extends Minify
19 19
 {
20
-    /**
21
-     * @var int
22
-     */
23
-    protected $maxImportSize = 5;
24
-
25
-    /**
26
-     * @var string[]
27
-     */
28
-    protected $importExtensions = array(
29
-        'gif' => 'data:image/gif',
30
-        'png' => 'data:image/png',
31
-        'jpe' => 'data:image/jpeg',
32
-        'jpg' => 'data:image/jpeg',
33
-        'jpeg' => 'data:image/jpeg',
34
-        'svg' => 'data:image/svg+xml',
35
-        'woff' => 'data:application/x-font-woff',
36
-        'tif' => 'image/tiff',
37
-        'tiff' => 'image/tiff',
38
-        'xbm' => 'image/x-xbitmap',
39
-    );
40
-
41
-    /**
42
-     * Set the maximum size if files to be imported.
43
-     *
44
-     * Files larger than this size (in kB) will not be imported into the CSS.
45
-     * Importing files into the CSS as data-uri will save you some connections,
46
-     * but we should only import relatively small decorative images so that our
47
-     * CSS file doesn't get too bulky.
48
-     *
49
-     * @param int $size Size in kB
50
-     */
51
-    public function setMaxImportSize($size)
52
-    {
53
-        $this->maxImportSize = $size;
54
-    }
55
-
56
-    /**
57
-     * Set the type of extensions to be imported into the CSS (to save network
58
-     * connections).
59
-     * Keys of the array should be the file extensions & respective values
60
-     * should be the data type.
61
-     *
62
-     * @param string[] $extensions Array of file extensions
63
-     */
64
-    public function setImportExtensions(array $extensions)
65
-    {
66
-        $this->importExtensions = $extensions;
67
-    }
68
-
69
-    /**
70
-     * Move any import statements to the top.
71
-     *
72
-     * @param string $content Nearly finished CSS content
73
-     *
74
-     * @return string
75
-     */
76
-    protected function moveImportsToTop($content)
77
-    {
78
-        if (preg_match_all('/@import[^;]+;/', $content, $matches)) {
79
-
80
-            // remove from content
81
-            foreach ($matches[0] as $import) {
82
-                $content = str_replace($import, '', $content);
83
-            }
84
-
85
-            // add to top
86
-            $content = implode('', $matches[0]).$content;
87
-        };
88
-
89
-        return $content;
90
-    }
91
-
92
-    /**
93
-     * Combine CSS from import statements.
94
-     *
95
-     * @import's will be loaded and their content merged into the original file,
96
-     * to save HTTP requests.
97
-     *
98
-     * @param string   $source  The file to combine imports for.
99
-     * @param string   $content The CSS content to combine imports for.
100
-     * @param string[] $parents Parent paths, for circular reference checks.
101
-     *
102
-     * @return string
103
-     *
104
-     * @throws FileImportException
105
-     */
106
-    protected function combineImports($source, $content, $parents)
107
-    {
108
-        $importRegexes = array(
109
-            // @import url(xxx)
110
-            '/
20
+	/**
21
+	 * @var int
22
+	 */
23
+	protected $maxImportSize = 5;
24
+
25
+	/**
26
+	 * @var string[]
27
+	 */
28
+	protected $importExtensions = array(
29
+		'gif' => 'data:image/gif',
30
+		'png' => 'data:image/png',
31
+		'jpe' => 'data:image/jpeg',
32
+		'jpg' => 'data:image/jpeg',
33
+		'jpeg' => 'data:image/jpeg',
34
+		'svg' => 'data:image/svg+xml',
35
+		'woff' => 'data:application/x-font-woff',
36
+		'tif' => 'image/tiff',
37
+		'tiff' => 'image/tiff',
38
+		'xbm' => 'image/x-xbitmap',
39
+	);
40
+
41
+	/**
42
+	 * Set the maximum size if files to be imported.
43
+	 *
44
+	 * Files larger than this size (in kB) will not be imported into the CSS.
45
+	 * Importing files into the CSS as data-uri will save you some connections,
46
+	 * but we should only import relatively small decorative images so that our
47
+	 * CSS file doesn't get too bulky.
48
+	 *
49
+	 * @param int $size Size in kB
50
+	 */
51
+	public function setMaxImportSize($size)
52
+	{
53
+		$this->maxImportSize = $size;
54
+	}
55
+
56
+	/**
57
+	 * Set the type of extensions to be imported into the CSS (to save network
58
+	 * connections).
59
+	 * Keys of the array should be the file extensions & respective values
60
+	 * should be the data type.
61
+	 *
62
+	 * @param string[] $extensions Array of file extensions
63
+	 */
64
+	public function setImportExtensions(array $extensions)
65
+	{
66
+		$this->importExtensions = $extensions;
67
+	}
68
+
69
+	/**
70
+	 * Move any import statements to the top.
71
+	 *
72
+	 * @param string $content Nearly finished CSS content
73
+	 *
74
+	 * @return string
75
+	 */
76
+	protected function moveImportsToTop($content)
77
+	{
78
+		if (preg_match_all('/@import[^;]+;/', $content, $matches)) {
79
+
80
+			// remove from content
81
+			foreach ($matches[0] as $import) {
82
+				$content = str_replace($import, '', $content);
83
+			}
84
+
85
+			// add to top
86
+			$content = implode('', $matches[0]).$content;
87
+		};
88
+
89
+		return $content;
90
+	}
91
+
92
+	/**
93
+	 * Combine CSS from import statements.
94
+	 *
95
+	 * @import's will be loaded and their content merged into the original file,
96
+	 * to save HTTP requests.
97
+	 *
98
+	 * @param string   $source  The file to combine imports for.
99
+	 * @param string   $content The CSS content to combine imports for.
100
+	 * @param string[] $parents Parent paths, for circular reference checks.
101
+	 *
102
+	 * @return string
103
+	 *
104
+	 * @throws FileImportException
105
+	 */
106
+	protected function combineImports($source, $content, $parents)
107
+	{
108
+		$importRegexes = array(
109
+			// @import url(xxx)
110
+			'/
111 111
             # import statement
112 112
             @import
113 113
 
@@ -152,8 +152,8 @@  discard block
 block discarded – undo
152 152
 
153 153
             /ix',
154 154
 
155
-            // @import 'xxx'
156
-            '/
155
+			// @import 'xxx'
156
+			'/
157 157
 
158 158
             # import statement
159 159
             @import
@@ -192,172 +192,172 @@  discard block
 block discarded – undo
192 192
             ;?
193 193
 
194 194
             /ix',
195
-        );
196
-
197
-        // find all relative imports in css
198
-        $matches = array();
199
-        foreach ($importRegexes as $importRegex) {
200
-            if (preg_match_all($importRegex, $content, $regexMatches, PREG_SET_ORDER)) {
201
-                $matches = array_merge($matches, $regexMatches);
202
-            }
203
-        }
204
-
205
-        $search = array();
206
-        $replace = array();
207
-
208
-        // loop the matches
209
-        foreach ($matches as $match) {
210
-            // get the path for the file that will be imported
211
-            $importPath = dirname($source).'/'.$match['path'];
212
-
213
-            // only replace the import with the content if we can grab the
214
-            // content of the file
215
-            if ($this->canImportFile($importPath)) {
216
-                // check if current file was not imported previously in the same
217
-                // import chain.
218
-                if (in_array($importPath, $parents)) {
219
-                    throw new FileImportException('Failed to import file "'.$importPath.'": circular reference detected.');
220
-                }
221
-
222
-                // grab referenced file & minify it (which may include importing
223
-                // yet other @import statements recursively)
224
-                $minifier = new static($importPath);
225
-                $importContent = $minifier->execute($source, $parents);
226
-
227
-                // check if this is only valid for certain media
228
-                if (!empty($match['media'])) {
229
-                    $importContent = '@media '.$match['media'].'{'.$importContent.'}';
230
-                }
231
-
232
-                // add to replacement array
233
-                $search[] = $match[0];
234
-                $replace[] = $importContent;
235
-            }
236
-        }
237
-
238
-        // replace the import statements
239
-        $content = str_replace($search, $replace, $content);
240
-
241
-        return $content;
242
-    }
243
-
244
-    /**
245
-     * Import files into the CSS, base64-ized.
246
-     *
247
-     * @url(image.jpg) images will be loaded and their content merged into the
248
-     * original file, to save HTTP requests.
249
-     *
250
-     * @param string $source  The file to import files for.
251
-     * @param string $content The CSS content to import files for.
252
-     *
253
-     * @return string
254
-     */
255
-    protected function importFiles($source, $content)
256
-    {
257
-        $extensions = array_keys($this->importExtensions);
258
-        $regex = '/url\((["\']?)((?!["\']?data:).*?\.('.implode('|', $extensions).'))\\1\)/i';
259
-        if ($extensions && preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) {
260
-            $search = array();
261
-            $replace = array();
262
-
263
-            // loop the matches
264
-            foreach ($matches as $match) {
265
-                // get the path for the file that will be imported
266
-                $path = $match[2];
267
-                $path = dirname($source).'/'.$path;
268
-                $extension = $match[3];
269
-
270
-                // only replace the import with the content if we're able to get
271
-                // the content of the file, and it's relatively small
272
-                if ($this->canImportFile($path) && $this->canImportBySize($path)) {
273
-                    // grab content && base64-ize
274
-                    $importContent = $this->load($path);
275
-                    $importContent = base64_encode($importContent);
276
-
277
-                    // build replacement
278
-                    $search[] = $match[0];
279
-                    $replace[] = 'url('.$this->importExtensions[$extension].';base64,'.$importContent.')';
280
-                }
281
-            }
282
-
283
-            // replace the import statements
284
-            $content = str_replace($search, $replace, $content);
285
-        }
286
-
287
-        return $content;
288
-    }
289
-
290
-    /**
291
-     * Minify the data.
292
-     * Perform CSS optimizations.
293
-     *
294
-     * @param string[optional] $path    Path to write the data to.
295
-     * @param string[]         $parents Parent paths, for circular reference checks.
296
-     *
297
-     * @return string The minified data.
298
-     */
299
-    public function execute($path = null, $parents = array())
300
-    {
301
-        $content = '';
302
-
303
-        // loop css data (raw data and files)
304
-        foreach ($this->data as $source => $css) {
305
-            /*
195
+		);
196
+
197
+		// find all relative imports in css
198
+		$matches = array();
199
+		foreach ($importRegexes as $importRegex) {
200
+			if (preg_match_all($importRegex, $content, $regexMatches, PREG_SET_ORDER)) {
201
+				$matches = array_merge($matches, $regexMatches);
202
+			}
203
+		}
204
+
205
+		$search = array();
206
+		$replace = array();
207
+
208
+		// loop the matches
209
+		foreach ($matches as $match) {
210
+			// get the path for the file that will be imported
211
+			$importPath = dirname($source).'/'.$match['path'];
212
+
213
+			// only replace the import with the content if we can grab the
214
+			// content of the file
215
+			if ($this->canImportFile($importPath)) {
216
+				// check if current file was not imported previously in the same
217
+				// import chain.
218
+				if (in_array($importPath, $parents)) {
219
+					throw new FileImportException('Failed to import file "'.$importPath.'": circular reference detected.');
220
+				}
221
+
222
+				// grab referenced file & minify it (which may include importing
223
+				// yet other @import statements recursively)
224
+				$minifier = new static($importPath);
225
+				$importContent = $minifier->execute($source, $parents);
226
+
227
+				// check if this is only valid for certain media
228
+				if (!empty($match['media'])) {
229
+					$importContent = '@media '.$match['media'].'{'.$importContent.'}';
230
+				}
231
+
232
+				// add to replacement array
233
+				$search[] = $match[0];
234
+				$replace[] = $importContent;
235
+			}
236
+		}
237
+
238
+		// replace the import statements
239
+		$content = str_replace($search, $replace, $content);
240
+
241
+		return $content;
242
+	}
243
+
244
+	/**
245
+	 * Import files into the CSS, base64-ized.
246
+	 *
247
+	 * @url(image.jpg) images will be loaded and their content merged into the
248
+	 * original file, to save HTTP requests.
249
+	 *
250
+	 * @param string $source  The file to import files for.
251
+	 * @param string $content The CSS content to import files for.
252
+	 *
253
+	 * @return string
254
+	 */
255
+	protected function importFiles($source, $content)
256
+	{
257
+		$extensions = array_keys($this->importExtensions);
258
+		$regex = '/url\((["\']?)((?!["\']?data:).*?\.('.implode('|', $extensions).'))\\1\)/i';
259
+		if ($extensions && preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) {
260
+			$search = array();
261
+			$replace = array();
262
+
263
+			// loop the matches
264
+			foreach ($matches as $match) {
265
+				// get the path for the file that will be imported
266
+				$path = $match[2];
267
+				$path = dirname($source).'/'.$path;
268
+				$extension = $match[3];
269
+
270
+				// only replace the import with the content if we're able to get
271
+				// the content of the file, and it's relatively small
272
+				if ($this->canImportFile($path) && $this->canImportBySize($path)) {
273
+					// grab content && base64-ize
274
+					$importContent = $this->load($path);
275
+					$importContent = base64_encode($importContent);
276
+
277
+					// build replacement
278
+					$search[] = $match[0];
279
+					$replace[] = 'url('.$this->importExtensions[$extension].';base64,'.$importContent.')';
280
+				}
281
+			}
282
+
283
+			// replace the import statements
284
+			$content = str_replace($search, $replace, $content);
285
+		}
286
+
287
+		return $content;
288
+	}
289
+
290
+	/**
291
+	 * Minify the data.
292
+	 * Perform CSS optimizations.
293
+	 *
294
+	 * @param string[optional] $path    Path to write the data to.
295
+	 * @param string[]         $parents Parent paths, for circular reference checks.
296
+	 *
297
+	 * @return string The minified data.
298
+	 */
299
+	public function execute($path = null, $parents = array())
300
+	{
301
+		$content = '';
302
+
303
+		// loop css data (raw data and files)
304
+		foreach ($this->data as $source => $css) {
305
+			/*
306 306
              * Let's first take out strings & comments, since we can't just remove
307 307
              * whitespace anywhere. If whitespace occurs inside a string, we should
308 308
              * leave it alone. E.g.:
309 309
              * p { content: "a   test" }
310 310
              */
311
-            $this->extractStrings();
312
-            $this->stripComments();
313
-            $css = $this->replace($css);
311
+			$this->extractStrings();
312
+			$this->stripComments();
313
+			$css = $this->replace($css);
314 314
 
315
-            $css = $this->stripWhitespace($css);
316
-            $css = $this->shortenHex($css);
317
-            $css = $this->shortenZeroes($css);
318
-            $css = $this->stripEmptyTags($css);
315
+			$css = $this->stripWhitespace($css);
316
+			$css = $this->shortenHex($css);
317
+			$css = $this->shortenZeroes($css);
318
+			$css = $this->stripEmptyTags($css);
319 319
 
320
-            // restore the string we've extracted earlier
321
-            $css = $this->restoreExtractedData($css);
320
+			// restore the string we've extracted earlier
321
+			$css = $this->restoreExtractedData($css);
322 322
 
323
-            $source = is_int($source) ? '' : $source;
324
-            $parents = $source ? array_merge($parents, array($source)) : $parents;
325
-            $css = $this->combineImports($source, $css, $parents);
326
-            $css = $this->importFiles($source, $css);
323
+			$source = is_int($source) ? '' : $source;
324
+			$parents = $source ? array_merge($parents, array($source)) : $parents;
325
+			$css = $this->combineImports($source, $css, $parents);
326
+			$css = $this->importFiles($source, $css);
327 327
 
328
-            /*
328
+			/*
329 329
              * If we'll save to a new path, we'll have to fix the relative paths
330 330
              * to be relative no longer to the source file, but to the new path.
331 331
              * If we don't write to a file, fall back to same path so no
332 332
              * conversion happens (because we still want it to go through most
333 333
              * of the move code...)
334 334
              */
335
-            $converter = new Converter($source, $path ?: $source);
336
-            $css = $this->move($converter, $css);
337
-
338
-            // combine css
339
-            $content .= $css;
340
-        }
341
-
342
-        $content = $this->moveImportsToTop($content);
343
-
344
-        return $content;
345
-    }
346
-
347
-    /**
348
-     * Moving a css file should update all relative urls.
349
-     * Relative references (e.g. ../images/image.gif) in a certain css file,
350
-     * will have to be updated when a file is being saved at another location
351
-     * (e.g. ../../images/image.gif, if the new CSS file is 1 folder deeper).
352
-     *
353
-     * @param Converter $converter Relative path converter
354
-     * @param string    $content   The CSS content to update relative urls for.
355
-     *
356
-     * @return string
357
-     */
358
-    protected function move(Converter $converter, $content)
359
-    {
360
-        /*
335
+			$converter = new Converter($source, $path ?: $source);
336
+			$css = $this->move($converter, $css);
337
+
338
+			// combine css
339
+			$content .= $css;
340
+		}
341
+
342
+		$content = $this->moveImportsToTop($content);
343
+
344
+		return $content;
345
+	}
346
+
347
+	/**
348
+	 * Moving a css file should update all relative urls.
349
+	 * Relative references (e.g. ../images/image.gif) in a certain css file,
350
+	 * will have to be updated when a file is being saved at another location
351
+	 * (e.g. ../../images/image.gif, if the new CSS file is 1 folder deeper).
352
+	 *
353
+	 * @param Converter $converter Relative path converter
354
+	 * @param string    $content   The CSS content to update relative urls for.
355
+	 *
356
+	 * @return string
357
+	 */
358
+	protected function move(Converter $converter, $content)
359
+	{
360
+		/*
361 361
          * Relative path references will usually be enclosed by url(). @import
362 362
          * is an exception, where url() is not necessary around the path (but is
363 363
          * allowed).
@@ -368,9 +368,9 @@  discard block
 block discarded – undo
368 368
          * recent PCRE version. That's why I'm doing 2 separate regular
369 369
          * expressions & combining the matches after executing of both.
370 370
          */
371
-        $relativeRegexes = array(
372
-            // url(xxx)
373
-            '/
371
+		$relativeRegexes = array(
372
+			// url(xxx)
373
+			'/
374 374
             # open url()
375 375
             url\(
376 376
 
@@ -402,8 +402,8 @@  discard block
 block discarded – undo
402 402
 
403 403
             /ix',
404 404
 
405
-            // @import "xxx"
406
-            '/
405
+			// @import "xxx"
406
+			'/
407 407
             # import statement
408 408
             @import
409 409
 
@@ -432,167 +432,167 @@  discard block
 block discarded – undo
432 432
                 (?P=quotes)
433 433
 
434 434
             /ix',
435
-        );
436
-
437
-        // find all relative urls in css
438
-        $matches = array();
439
-        foreach ($relativeRegexes as $relativeRegex) {
440
-            if (preg_match_all($relativeRegex, $content, $regexMatches, PREG_SET_ORDER)) {
441
-                $matches = array_merge($matches, $regexMatches);
442
-            }
443
-        }
444
-
445
-        $search = array();
446
-        $replace = array();
447
-
448
-        // loop all urls
449
-        foreach ($matches as $match) {
450
-            // determine if it's a url() or an @import match
451
-            $type = (strpos($match[0], '@import') === 0 ? 'import' : 'url');
452
-
453
-            // attempting to interpret GET-params makes no sense, so let's discard them for awhile
454
-            $params = strrchr($match['path'], '?');
455
-            $url = $params ? substr($match['path'], 0, -strlen($params)) : $match['path'];
456
-
457
-            // fix relative url
458
-            $url = $converter->convert($url);
459
-
460
-            // now that the path has been converted, re-apply GET-params
461
-            $url .= $params;
462
-
463
-            // build replacement
464
-            $search[] = $match[0];
465
-            if ($type == 'url') {
466
-                $replace[] = 'url('.$url.')';
467
-            } elseif ($type == 'import') {
468
-                $replace[] = '@import "'.$url.'"';
469
-            }
470
-        }
471
-
472
-        // replace urls
473
-        $content = str_replace($search, $replace, $content);
474
-
475
-        return $content;
476
-    }
477
-
478
-    /**
479
-     * Shorthand hex color codes.
480
-     * #FF0000 -> #F00.
481
-     *
482
-     * @param string $content The CSS content to shorten the hex color codes for.
483
-     *
484
-     * @return string
485
-     */
486
-    protected function shortenHex($content)
487
-    {
488
-        $content = preg_replace('/(?<![\'"])#([0-9a-z])\\1([0-9a-z])\\2([0-9a-z])\\3(?![\'"])/i', '#$1$2$3', $content);
489
-
490
-        return $content;
491
-    }
492
-
493
-    /**
494
-     * Shorthand 0 values to plain 0, instead of e.g. -0em.
495
-     *
496
-     * @param string $content The CSS content to shorten the zero values for.
497
-     *
498
-     * @return string
499
-     */
500
-    protected function shortenZeroes($content)
501
-    {
502
-        // reusable bits of code throughout these regexes:
503
-        // before & after are used to make sure we don't match lose unintended
504
-        // 0-like values (e.g. in #000, or in http://url/1.0)
505
-        // units can be stripped from 0 values, or used to recognize non 0
506
-        // values (where wa may be able to strip a .0 suffix)
507
-        $before = '(?<=[:(, ])';
508
-        $after = '(?=[ ,);}])';
509
-        $units = '(em|ex|%|px|cm|mm|in|pt|pc|ch|rem|vh|vw|vmin|vmax|vm)';
510
-
511
-        // strip units after zeroes (0px -> 0)
512
-        // NOTE: it should be safe to remove all units for a 0 value, but in
513
-        // practice, Webkit (especially Safari) seems to stumble over at least
514
-        // 0%, potentially other units as well. Only stripping 'px' for now.
515
-        // @see https://github.com/matthiasmullie/minify/issues/60
516
-        $content = preg_replace('/'.$before.'(-?0*(\.0+)?)(?<=0)px'.$after.'/', '\\1', $content);
517
-
518
-        // strip 0-digits (.0 -> 0)
519
-        $content = preg_replace('/'.$before.'\.0+'.$units.'?'.$after.'/', '0\\1', $content);
520
-        // strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px
521
-        $content = preg_replace('/'.$before.'(-?[0-9]+\.[0-9]+)0+'.$units.'?'.$after.'/', '\\1\\2', $content);
522
-        // strip trailing 0: 50.00 -> 50, 50.00px -> 50px
523
-        $content = preg_replace('/'.$before.'(-?[0-9]+)\.0+'.$units.'?'.$after.'/', '\\1\\2', $content);
524
-        // strip leading 0: 0.1 -> .1, 01.1 -> 1.1
525
-        $content = preg_replace('/'.$before.'(-?)0+([0-9]*\.[0-9]+)'.$units.'?'.$after.'/', '\\1\\2\\3', $content);
526
-
527
-        // strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0)
528
-        $content = preg_replace('/'.$before.'-?0+'.$units.'?'.$after.'/', '0\\1', $content);
529
-
530
-        return $content;
531
-    }
532
-
533
-    /**
534
-     * Strip comments from source code.
535
-     *
536
-     * @param string $content
537
-     *
538
-     * @return string
539
-     */
540
-    protected function stripEmptyTags($content)
541
-    {
542
-        return preg_replace('/(^|\})[^\{\}]+\{\s*\}/', '\\1', $content);
543
-    }
544
-
545
-    /**
546
-     * Strip comments from source code.
547
-     */
548
-    protected function stripComments()
549
-    {
550
-        $this->registerPattern('/\/\*.*?\*\//s', '');
551
-    }
552
-
553
-    /**
554
-     * Strip whitespace.
555
-     *
556
-     * @param string $content The CSS content to strip the whitespace for.
557
-     *
558
-     * @return string
559
-     */
560
-    protected function stripWhitespace($content)
561
-    {
562
-        // remove leading & trailing whitespace
563
-        $content = preg_replace('/^\s*/m', '', $content);
564
-        $content = preg_replace('/\s*$/m', '', $content);
565
-
566
-        // replace newlines with a single space
567
-        $content = preg_replace('/\s+/', ' ', $content);
568
-
569
-        // remove whitespace around meta characters
570
-        // inspired by stackoverflow.com/questions/15195750/minify-compress-css-with-regex
571
-        $content = preg_replace('/\s*([\*$~^|]?+=|[{};,>~]|!important\b)\s*/', '$1', $content);
572
-        $content = preg_replace('/([\[(:])\s+/', '$1', $content);
573
-        $content = preg_replace('/\s+([\]\)])/', '$1', $content);
574
-        $content = preg_replace('/\s+(:)(?![^\}]*\{)/', '$1', $content);
575
-
576
-        // whitespace around + and - can only be stripped in selectors, like
577
-        // :nth-child(3+2n), not in things like calc(3px + 2px) or shorthands
578
-        // like 3px -2px
579
-        $content = preg_replace('/\s*([+-])\s*(?=[^}]*{)/', '$1', $content);
580
-
581
-        // remove semicolon/whitespace followed by closing bracket
582
-        $content = str_replace(';}', '}', $content);
583
-
584
-        return trim($content);
585
-    }
586
-
587
-    /**
588
-     * Check if file is small enough to be imported.
589
-     *
590
-     * @param string $path The path to the file.
591
-     *
592
-     * @return bool
593
-     */
594
-    protected function canImportBySize($path)
595
-    {
596
-        return ($size = @filesize($path)) && $size <= $this->maxImportSize * 1024;
597
-    }
435
+		);
436
+
437
+		// find all relative urls in css
438
+		$matches = array();
439
+		foreach ($relativeRegexes as $relativeRegex) {
440
+			if (preg_match_all($relativeRegex, $content, $regexMatches, PREG_SET_ORDER)) {
441
+				$matches = array_merge($matches, $regexMatches);
442
+			}
443
+		}
444
+
445
+		$search = array();
446
+		$replace = array();
447
+
448
+		// loop all urls
449
+		foreach ($matches as $match) {
450
+			// determine if it's a url() or an @import match
451
+			$type = (strpos($match[0], '@import') === 0 ? 'import' : 'url');
452
+
453
+			// attempting to interpret GET-params makes no sense, so let's discard them for awhile
454
+			$params = strrchr($match['path'], '?');
455
+			$url = $params ? substr($match['path'], 0, -strlen($params)) : $match['path'];
456
+
457
+			// fix relative url
458
+			$url = $converter->convert($url);
459
+
460
+			// now that the path has been converted, re-apply GET-params
461
+			$url .= $params;
462
+
463
+			// build replacement
464
+			$search[] = $match[0];
465
+			if ($type == 'url') {
466
+				$replace[] = 'url('.$url.')';
467
+			} elseif ($type == 'import') {
468
+				$replace[] = '@import "'.$url.'"';
469
+			}
470
+		}
471
+
472
+		// replace urls
473
+		$content = str_replace($search, $replace, $content);
474
+
475
+		return $content;
476
+	}
477
+
478
+	/**
479
+	 * Shorthand hex color codes.
480
+	 * #FF0000 -> #F00.
481
+	 *
482
+	 * @param string $content The CSS content to shorten the hex color codes for.
483
+	 *
484
+	 * @return string
485
+	 */
486
+	protected function shortenHex($content)
487
+	{
488
+		$content = preg_replace('/(?<![\'"])#([0-9a-z])\\1([0-9a-z])\\2([0-9a-z])\\3(?![\'"])/i', '#$1$2$3', $content);
489
+
490
+		return $content;
491
+	}
492
+
493
+	/**
494
+	 * Shorthand 0 values to plain 0, instead of e.g. -0em.
495
+	 *
496
+	 * @param string $content The CSS content to shorten the zero values for.
497
+	 *
498
+	 * @return string
499
+	 */
500
+	protected function shortenZeroes($content)
501
+	{
502
+		// reusable bits of code throughout these regexes:
503
+		// before & after are used to make sure we don't match lose unintended
504
+		// 0-like values (e.g. in #000, or in http://url/1.0)
505
+		// units can be stripped from 0 values, or used to recognize non 0
506
+		// values (where wa may be able to strip a .0 suffix)
507
+		$before = '(?<=[:(, ])';
508
+		$after = '(?=[ ,);}])';
509
+		$units = '(em|ex|%|px|cm|mm|in|pt|pc|ch|rem|vh|vw|vmin|vmax|vm)';
510
+
511
+		// strip units after zeroes (0px -> 0)
512
+		// NOTE: it should be safe to remove all units for a 0 value, but in
513
+		// practice, Webkit (especially Safari) seems to stumble over at least
514
+		// 0%, potentially other units as well. Only stripping 'px' for now.
515
+		// @see https://github.com/matthiasmullie/minify/issues/60
516
+		$content = preg_replace('/'.$before.'(-?0*(\.0+)?)(?<=0)px'.$after.'/', '\\1', $content);
517
+
518
+		// strip 0-digits (.0 -> 0)
519
+		$content = preg_replace('/'.$before.'\.0+'.$units.'?'.$after.'/', '0\\1', $content);
520
+		// strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px
521
+		$content = preg_replace('/'.$before.'(-?[0-9]+\.[0-9]+)0+'.$units.'?'.$after.'/', '\\1\\2', $content);
522
+		// strip trailing 0: 50.00 -> 50, 50.00px -> 50px
523
+		$content = preg_replace('/'.$before.'(-?[0-9]+)\.0+'.$units.'?'.$after.'/', '\\1\\2', $content);
524
+		// strip leading 0: 0.1 -> .1, 01.1 -> 1.1
525
+		$content = preg_replace('/'.$before.'(-?)0+([0-9]*\.[0-9]+)'.$units.'?'.$after.'/', '\\1\\2\\3', $content);
526
+
527
+		// strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0)
528
+		$content = preg_replace('/'.$before.'-?0+'.$units.'?'.$after.'/', '0\\1', $content);
529
+
530
+		return $content;
531
+	}
532
+
533
+	/**
534
+	 * Strip comments from source code.
535
+	 *
536
+	 * @param string $content
537
+	 *
538
+	 * @return string
539
+	 */
540
+	protected function stripEmptyTags($content)
541
+	{
542
+		return preg_replace('/(^|\})[^\{\}]+\{\s*\}/', '\\1', $content);
543
+	}
544
+
545
+	/**
546
+	 * Strip comments from source code.
547
+	 */
548
+	protected function stripComments()
549
+	{
550
+		$this->registerPattern('/\/\*.*?\*\//s', '');
551
+	}
552
+
553
+	/**
554
+	 * Strip whitespace.
555
+	 *
556
+	 * @param string $content The CSS content to strip the whitespace for.
557
+	 *
558
+	 * @return string
559
+	 */
560
+	protected function stripWhitespace($content)
561
+	{
562
+		// remove leading & trailing whitespace
563
+		$content = preg_replace('/^\s*/m', '', $content);
564
+		$content = preg_replace('/\s*$/m', '', $content);
565
+
566
+		// replace newlines with a single space
567
+		$content = preg_replace('/\s+/', ' ', $content);
568
+
569
+		// remove whitespace around meta characters
570
+		// inspired by stackoverflow.com/questions/15195750/minify-compress-css-with-regex
571
+		$content = preg_replace('/\s*([\*$~^|]?+=|[{};,>~]|!important\b)\s*/', '$1', $content);
572
+		$content = preg_replace('/([\[(:])\s+/', '$1', $content);
573
+		$content = preg_replace('/\s+([\]\)])/', '$1', $content);
574
+		$content = preg_replace('/\s+(:)(?![^\}]*\{)/', '$1', $content);
575
+
576
+		// whitespace around + and - can only be stripped in selectors, like
577
+		// :nth-child(3+2n), not in things like calc(3px + 2px) or shorthands
578
+		// like 3px -2px
579
+		$content = preg_replace('/\s*([+-])\s*(?=[^}]*{)/', '$1', $content);
580
+
581
+		// remove semicolon/whitespace followed by closing bracket
582
+		$content = str_replace(';}', '}', $content);
583
+
584
+		return trim($content);
585
+	}
586
+
587
+	/**
588
+	 * Check if file is small enough to be imported.
589
+	 *
590
+	 * @param string $path The path to the file.
591
+	 *
592
+	 * @return bool
593
+	 */
594
+	protected function canImportBySize($path)
595
+	{
596
+		return ($size = @filesize($path)) && $size <= $this->maxImportSize * 1024;
597
+	}
598 598
 }
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
             }
84 84
 
85 85
             // add to top
86
-            $content = implode('', $matches[0]).$content;
86
+            $content = implode('', $matches[0]) . $content;
87 87
         };
88 88
 
89 89
         return $content;
@@ -208,7 +208,7 @@  discard block
 block discarded – undo
208 208
         // loop the matches
209 209
         foreach ($matches as $match) {
210 210
             // get the path for the file that will be imported
211
-            $importPath = dirname($source).'/'.$match['path'];
211
+            $importPath = dirname($source) . '/' . $match['path'];
212 212
 
213 213
             // only replace the import with the content if we can grab the
214 214
             // content of the file
@@ -216,7 +216,7 @@  discard block
 block discarded – undo
216 216
                 // check if current file was not imported previously in the same
217 217
                 // import chain.
218 218
                 if (in_array($importPath, $parents)) {
219
-                    throw new FileImportException('Failed to import file "'.$importPath.'": circular reference detected.');
219
+                    throw new FileImportException('Failed to import file "' . $importPath . '": circular reference detected.');
220 220
                 }
221 221
 
222 222
                 // grab referenced file & minify it (which may include importing
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
 
227 227
                 // check if this is only valid for certain media
228 228
                 if (!empty($match['media'])) {
229
-                    $importContent = '@media '.$match['media'].'{'.$importContent.'}';
229
+                    $importContent = '@media ' . $match['media'] . '{' . $importContent . '}';
230 230
                 }
231 231
 
232 232
                 // add to replacement array
@@ -255,7 +255,7 @@  discard block
 block discarded – undo
255 255
     protected function importFiles($source, $content)
256 256
     {
257 257
         $extensions = array_keys($this->importExtensions);
258
-        $regex = '/url\((["\']?)((?!["\']?data:).*?\.('.implode('|', $extensions).'))\\1\)/i';
258
+        $regex = '/url\((["\']?)((?!["\']?data:).*?\.(' . implode('|', $extensions) . '))\\1\)/i';
259 259
         if ($extensions && preg_match_all($regex, $content, $matches, PREG_SET_ORDER)) {
260 260
             $search = array();
261 261
             $replace = array();
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
             foreach ($matches as $match) {
265 265
                 // get the path for the file that will be imported
266 266
                 $path = $match[2];
267
-                $path = dirname($source).'/'.$path;
267
+                $path = dirname($source) . '/' . $path;
268 268
                 $extension = $match[3];
269 269
 
270 270
                 // only replace the import with the content if we're able to get
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
 
277 277
                     // build replacement
278 278
                     $search[] = $match[0];
279
-                    $replace[] = 'url('.$this->importExtensions[$extension].';base64,'.$importContent.')';
279
+                    $replace[] = 'url(' . $this->importExtensions[$extension] . ';base64,' . $importContent . ')';
280 280
                 }
281 281
             }
282 282
 
@@ -463,9 +463,9 @@  discard block
 block discarded – undo
463 463
             // build replacement
464 464
             $search[] = $match[0];
465 465
             if ($type == 'url') {
466
-                $replace[] = 'url('.$url.')';
466
+                $replace[] = 'url(' . $url . ')';
467 467
             } elseif ($type == 'import') {
468
-                $replace[] = '@import "'.$url.'"';
468
+                $replace[] = '@import "' . $url . '"';
469 469
             }
470 470
         }
471 471
 
@@ -513,19 +513,19 @@  discard block
 block discarded – undo
513 513
         // practice, Webkit (especially Safari) seems to stumble over at least
514 514
         // 0%, potentially other units as well. Only stripping 'px' for now.
515 515
         // @see https://github.com/matthiasmullie/minify/issues/60
516
-        $content = preg_replace('/'.$before.'(-?0*(\.0+)?)(?<=0)px'.$after.'/', '\\1', $content);
516
+        $content = preg_replace('/' . $before . '(-?0*(\.0+)?)(?<=0)px' . $after . '/', '\\1', $content);
517 517
 
518 518
         // strip 0-digits (.0 -> 0)
519
-        $content = preg_replace('/'.$before.'\.0+'.$units.'?'.$after.'/', '0\\1', $content);
519
+        $content = preg_replace('/' . $before . '\.0+' . $units . '?' . $after . '/', '0\\1', $content);
520 520
         // strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px
521
-        $content = preg_replace('/'.$before.'(-?[0-9]+\.[0-9]+)0+'.$units.'?'.$after.'/', '\\1\\2', $content);
521
+        $content = preg_replace('/' . $before . '(-?[0-9]+\.[0-9]+)0+' . $units . '?' . $after . '/', '\\1\\2', $content);
522 522
         // strip trailing 0: 50.00 -> 50, 50.00px -> 50px
523
-        $content = preg_replace('/'.$before.'(-?[0-9]+)\.0+'.$units.'?'.$after.'/', '\\1\\2', $content);
523
+        $content = preg_replace('/' . $before . '(-?[0-9]+)\.0+' . $units . '?' . $after . '/', '\\1\\2', $content);
524 524
         // strip leading 0: 0.1 -> .1, 01.1 -> 1.1
525
-        $content = preg_replace('/'.$before.'(-?)0+([0-9]*\.[0-9]+)'.$units.'?'.$after.'/', '\\1\\2\\3', $content);
525
+        $content = preg_replace('/' . $before . '(-?)0+([0-9]*\.[0-9]+)' . $units . '?' . $after . '/', '\\1\\2\\3', $content);
526 526
 
527 527
         // strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0)
528
-        $content = preg_replace('/'.$before.'-?0+'.$units.'?'.$after.'/', '0\\1', $content);
528
+        $content = preg_replace('/' . $before . '-?0+' . $units . '?' . $after . '/', '0\\1', $content);
529 529
 
530 530
         return $content;
531 531
     }
Please login to merge, or discard this patch.
Sources/minify/src/Converter.php 2 patches
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -18,178 +18,178 @@
 block discarded – undo
18 18
  */
19 19
 class Converter
20 20
 {
21
-    /**
22
-     * @var string
23
-     */
24
-    protected $from;
25
-
26
-    /**
27
-     * @var string
28
-     */
29
-    protected $to;
30
-
31
-    /**
32
-     * @param string $from The original base path (directory, not file!)
33
-     * @param string $to   The new base path (directory, not file!)
34
-     */
35
-    public function __construct($from, $to)
36
-    {
37
-        $shared = $this->shared($from, $to);
38
-        if ($shared === '') {
39
-            // when both paths have nothing in common, one of them is probably
40
-            // absolute while the other is relative
41
-            $cwd = getcwd();
42
-            $from = strpos($from, $cwd) === 0 ? $from : $cwd.'/'.$from;
43
-            $to = strpos($to, $cwd) === 0 ? $to : $cwd.'/'.$to;
44
-
45
-            // or traveling the tree via `..`
46
-            // attempt to resolve path, or assume it's fine if it doesn't exist
47
-            $from = realpath($from) ?: $from;
48
-            $to = realpath($to) ?: $to;
49
-        }
50
-
51
-        $from = $this->normalize($from);
52
-        $to = $this->normalize($to);
53
-
54
-        $from = $this->dirname($from);
55
-        $to = $this->dirname($to);
56
-
57
-        $this->from = $from;
58
-        $this->to = $to;
59
-    }
60
-
61
-    /**
62
-     * Normalize path.
63
-     *
64
-     * @param string $path
65
-     *
66
-     * @return string
67
-     */
68
-    protected function normalize($path)
69
-    {
70
-        // deal with different operating systems' directory structure
71
-        $path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', $path), '/');
72
-
73
-        /*
21
+	/**
22
+	 * @var string
23
+	 */
24
+	protected $from;
25
+
26
+	/**
27
+	 * @var string
28
+	 */
29
+	protected $to;
30
+
31
+	/**
32
+	 * @param string $from The original base path (directory, not file!)
33
+	 * @param string $to   The new base path (directory, not file!)
34
+	 */
35
+	public function __construct($from, $to)
36
+	{
37
+		$shared = $this->shared($from, $to);
38
+		if ($shared === '') {
39
+			// when both paths have nothing in common, one of them is probably
40
+			// absolute while the other is relative
41
+			$cwd = getcwd();
42
+			$from = strpos($from, $cwd) === 0 ? $from : $cwd.'/'.$from;
43
+			$to = strpos($to, $cwd) === 0 ? $to : $cwd.'/'.$to;
44
+
45
+			// or traveling the tree via `..`
46
+			// attempt to resolve path, or assume it's fine if it doesn't exist
47
+			$from = realpath($from) ?: $from;
48
+			$to = realpath($to) ?: $to;
49
+		}
50
+
51
+		$from = $this->normalize($from);
52
+		$to = $this->normalize($to);
53
+
54
+		$from = $this->dirname($from);
55
+		$to = $this->dirname($to);
56
+
57
+		$this->from = $from;
58
+		$this->to = $to;
59
+	}
60
+
61
+	/**
62
+	 * Normalize path.
63
+	 *
64
+	 * @param string $path
65
+	 *
66
+	 * @return string
67
+	 */
68
+	protected function normalize($path)
69
+	{
70
+		// deal with different operating systems' directory structure
71
+		$path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', $path), '/');
72
+
73
+		/*
74 74
          * Example:
75 75
          *     /home/forkcms/frontend/cache/compiled_templates/../../core/layout/css/../images/img.gif
76 76
          * to
77 77
          *     /home/forkcms/frontend/core/layout/images/img.gif
78 78
          */
79
-        do {
80
-            $path = preg_replace('/[^\/]+(?<!\.\.)\/\.\.\//', '', $path, -1, $count);
81
-        } while ($count);
82
-
83
-        return $path;
84
-    }
85
-
86
-    /**
87
-     * Figure out the shared path of 2 locations.
88
-     *
89
-     * Example:
90
-     *     /home/forkcms/frontend/core/layout/images/img.gif
91
-     * and
92
-     *     /home/forkcms/frontend/cache/minified_css
93
-     * share
94
-     *     /home/forkcms/frontend
95
-     *
96
-     * @param string $path1
97
-     * @param string $path2
98
-     *
99
-     * @return string
100
-     */
101
-    protected function shared($path1, $path2)
102
-    {
103
-        // $path could theoretically be empty (e.g. no path is given), in which
104
-        // case it shouldn't expand to array(''), which would compare to one's
105
-        // root /
106
-        $path1 = $path1 ? explode('/', $path1) : array();
107
-        $path2 = $path2 ? explode('/', $path2) : array();
108
-
109
-        $shared = array();
110
-
111
-        // compare paths & strip identical ancestors
112
-        foreach ($path1 as $i => $chunk) {
113
-            if (isset($path2[$i]) && $path1[$i] == $path2[$i]) {
114
-                $shared[] = $chunk;
115
-            } else {
116
-                break;
117
-            }
118
-        }
119
-
120
-        return implode('/', $shared);
121
-    }
122
-
123
-    /**
124
-     * Convert paths relative from 1 file to another.
125
-     *
126
-     * E.g.
127
-     *     ../images/img.gif relative to /home/forkcms/frontend/core/layout/css
128
-     * should become:
129
-     *     ../../core/layout/images/img.gif relative to
130
-     *     /home/forkcms/frontend/cache/minified_css
131
-     *
132
-     * @param string $path The relative path that needs to be converted.
133
-     *
134
-     * @return string The new relative path.
135
-     */
136
-    public function convert($path)
137
-    {
138
-        // quit early if conversion makes no sense
139
-        if ($this->from === $this->to) {
140
-            return $path;
141
-        }
142
-
143
-        $path = $this->normalize($path);
144
-        // if we're not dealing with a relative path, just return absolute
145
-        if (strpos($path, '/') === 0) {
146
-            return $path;
147
-        }
148
-
149
-        // normalize paths
150
-        $path = $this->normalize($this->from.'/'.$path);
151
-
152
-        // strip shared ancestor paths
153
-        $shared = $this->shared($path, $this->to);
154
-        $path = mb_substr($path, mb_strlen($shared));
155
-        $to = mb_substr($this->to, mb_strlen($shared));
156
-
157
-        // add .. for every directory that needs to be traversed to new path
158
-        $to = str_repeat('../', mb_substr_count($to, '/'));
159
-
160
-        return $to.ltrim($path, '/');
161
-    }
162
-
163
-    /**
164
-     * Attempt to get the directory name from a path.
165
-     *
166
-     * @param string $path
167
-     *
168
-     * @return string
169
-     */
170
-    public function dirname($path)
171
-    {
172
-        if (is_file($path)) {
173
-            return dirname($path);
174
-        }
175
-
176
-        if (is_dir($path)) {
177
-            return rtrim($path, '/');
178
-        }
179
-
180
-        // no known file/dir, start making assumptions
181
-
182
-        // ends in / = dir
183
-        if (mb_substr($path, -1) === '/') {
184
-            return rtrim($path, '/');
185
-        }
186
-
187
-        // has a dot in the name, likely a file
188
-        if (preg_match('/.*\..*$/', basename($path)) !== 0) {
189
-            return dirname($path);
190
-        }
191
-
192
-        // you're on your own here!
193
-        return $path;
194
-    }
79
+		do {
80
+			$path = preg_replace('/[^\/]+(?<!\.\.)\/\.\.\//', '', $path, -1, $count);
81
+		} while ($count);
82
+
83
+		return $path;
84
+	}
85
+
86
+	/**
87
+	 * Figure out the shared path of 2 locations.
88
+	 *
89
+	 * Example:
90
+	 *     /home/forkcms/frontend/core/layout/images/img.gif
91
+	 * and
92
+	 *     /home/forkcms/frontend/cache/minified_css
93
+	 * share
94
+	 *     /home/forkcms/frontend
95
+	 *
96
+	 * @param string $path1
97
+	 * @param string $path2
98
+	 *
99
+	 * @return string
100
+	 */
101
+	protected function shared($path1, $path2)
102
+	{
103
+		// $path could theoretically be empty (e.g. no path is given), in which
104
+		// case it shouldn't expand to array(''), which would compare to one's
105
+		// root /
106
+		$path1 = $path1 ? explode('/', $path1) : array();
107
+		$path2 = $path2 ? explode('/', $path2) : array();
108
+
109
+		$shared = array();
110
+
111
+		// compare paths & strip identical ancestors
112
+		foreach ($path1 as $i => $chunk) {
113
+			if (isset($path2[$i]) && $path1[$i] == $path2[$i]) {
114
+				$shared[] = $chunk;
115
+			} else {
116
+				break;
117
+			}
118
+		}
119
+
120
+		return implode('/', $shared);
121
+	}
122
+
123
+	/**
124
+	 * Convert paths relative from 1 file to another.
125
+	 *
126
+	 * E.g.
127
+	 *     ../images/img.gif relative to /home/forkcms/frontend/core/layout/css
128
+	 * should become:
129
+	 *     ../../core/layout/images/img.gif relative to
130
+	 *     /home/forkcms/frontend/cache/minified_css
131
+	 *
132
+	 * @param string $path The relative path that needs to be converted.
133
+	 *
134
+	 * @return string The new relative path.
135
+	 */
136
+	public function convert($path)
137
+	{
138
+		// quit early if conversion makes no sense
139
+		if ($this->from === $this->to) {
140
+			return $path;
141
+		}
142
+
143
+		$path = $this->normalize($path);
144
+		// if we're not dealing with a relative path, just return absolute
145
+		if (strpos($path, '/') === 0) {
146
+			return $path;
147
+		}
148
+
149
+		// normalize paths
150
+		$path = $this->normalize($this->from.'/'.$path);
151
+
152
+		// strip shared ancestor paths
153
+		$shared = $this->shared($path, $this->to);
154
+		$path = mb_substr($path, mb_strlen($shared));
155
+		$to = mb_substr($this->to, mb_strlen($shared));
156
+
157
+		// add .. for every directory that needs to be traversed to new path
158
+		$to = str_repeat('../', mb_substr_count($to, '/'));
159
+
160
+		return $to.ltrim($path, '/');
161
+	}
162
+
163
+	/**
164
+	 * Attempt to get the directory name from a path.
165
+	 *
166
+	 * @param string $path
167
+	 *
168
+	 * @return string
169
+	 */
170
+	public function dirname($path)
171
+	{
172
+		if (is_file($path)) {
173
+			return dirname($path);
174
+		}
175
+
176
+		if (is_dir($path)) {
177
+			return rtrim($path, '/');
178
+		}
179
+
180
+		// no known file/dir, start making assumptions
181
+
182
+		// ends in / = dir
183
+		if (mb_substr($path, -1) === '/') {
184
+			return rtrim($path, '/');
185
+		}
186
+
187
+		// has a dot in the name, likely a file
188
+		if (preg_match('/.*\..*$/', basename($path)) !== 0) {
189
+			return dirname($path);
190
+		}
191
+
192
+		// you're on your own here!
193
+		return $path;
194
+	}
195 195
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -39,8 +39,8 @@  discard block
 block discarded – undo
39 39
             // when both paths have nothing in common, one of them is probably
40 40
             // absolute while the other is relative
41 41
             $cwd = getcwd();
42
-            $from = strpos($from, $cwd) === 0 ? $from : $cwd.'/'.$from;
43
-            $to = strpos($to, $cwd) === 0 ? $to : $cwd.'/'.$to;
42
+            $from = strpos($from, $cwd) === 0 ? $from : $cwd . '/' . $from;
43
+            $to = strpos($to, $cwd) === 0 ? $to : $cwd . '/' . $to;
44 44
 
45 45
             // or traveling the tree via `..`
46 46
             // attempt to resolve path, or assume it's fine if it doesn't exist
@@ -147,7 +147,7 @@  discard block
 block discarded – undo
147 147
         }
148 148
 
149 149
         // normalize paths
150
-        $path = $this->normalize($this->from.'/'.$path);
150
+        $path = $this->normalize($this->from . '/' . $path);
151 151
 
152 152
         // strip shared ancestor paths
153 153
         $shared = $this->shared($path, $this->to);
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
         // add .. for every directory that needs to be traversed to new path
158 158
         $to = str_repeat('../', mb_substr_count($to, '/'));
159 159
 
160
-        return $to.ltrim($path, '/');
160
+        return $to . ltrim($path, '/');
161 161
     }
162 162
 
163 163
     /**
Please login to merge, or discard this patch.