Completed
Pull Request — release-2.1 (#4991)
by Jeremy
06:11
created
Sources/LogInOut.php 1 patch
Braces   +154 added lines, -121 removed lines patch added patch discarded remove patch
@@ -14,8 +14,9 @@  discard block
 block discarded – undo
14 14
  * @version 2.1 Beta 4
15 15
  */
16 16
 
17
-if (!defined('SMF'))
17
+if (!defined('SMF')) {
18 18
 	die('No direct access...');
19
+}
19 20
 
20 21
 /**
21 22
  * Ask them for their login information. (shows a page for the user to type
@@ -29,8 +30,9 @@  discard block
 block discarded – undo
29 30
 	global $txt, $context, $scripturl, $user_info;
30 31
 
31 32
 	// You are already logged in, go take a tour of the boards
32
-	if (!empty($user_info['id']))
33
-		redirectexit();
33
+	if (!empty($user_info['id'])) {
34
+			redirectexit();
35
+	}
34 36
 
35 37
 	// We need to load the Login template/language file.
36 38
 	loadLanguage('Login');
@@ -57,10 +59,11 @@  discard block
 block discarded – undo
57 59
 	);
58 60
 
59 61
 	// Set the login URL - will be used when the login process is done (but careful not to send us to an attachment).
60
-	if (isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'dlattach') === false && preg_match('~(board|topic)[=,]~', $_SESSION['old_url']) != 0)
61
-		$_SESSION['login_url'] = $_SESSION['old_url'];
62
-	elseif (isset($_SESSION['login_url']) && strpos($_SESSION['login_url'], 'dlattach') !== false)
63
-		unset($_SESSION['login_url']);
62
+	if (isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'dlattach') === false && preg_match('~(board|topic)[=,]~', $_SESSION['old_url']) != 0) {
63
+			$_SESSION['login_url'] = $_SESSION['old_url'];
64
+	} elseif (isset($_SESSION['login_url']) && strpos($_SESSION['login_url'], 'dlattach') !== false) {
65
+			unset($_SESSION['login_url']);
66
+	}
64 67
 
65 68
 	// Create a one time token.
66 69
 	createToken('login');
@@ -83,8 +86,9 @@  discard block
 block discarded – undo
83 86
 	global $cookiename, $modSettings, $context, $sourcedir, $maintenance;
84 87
 
85 88
 	// Check to ensure we're forcing SSL for authentication
86
-	if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn())
87
-		fatal_lang_error('login_ssl_required');
89
+	if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn()) {
90
+			fatal_lang_error('login_ssl_required');
91
+	}
88 92
 
89 93
 	// Load cookie authentication stuff.
90 94
 	require_once($sourcedir . '/Subs-Auth.php');
@@ -98,23 +102,26 @@  discard block
 block discarded – undo
98 102
 	if (isset($_GET['sa']) && $_GET['sa'] == 'salt' && !$user_info['is_guest'])
99 103
 	{
100 104
 		// First check for 2.1 json-format cookie in $_COOKIE
101
-		if (isset($_COOKIE[$cookiename]) && preg_match('~^{"0":\d+,"1":"[0-9a-f]*","2":\d+~', $_COOKIE[$cookiename]) === 1)
102
-			list (,, $timeout) = $smcFunc['json_decode']($_COOKIE[$cookiename], true);
105
+		if (isset($_COOKIE[$cookiename]) && preg_match('~^{"0":\d+,"1":"[0-9a-f]*","2":\d+~', $_COOKIE[$cookiename]) === 1) {
106
+					list (,, $timeout) = $smcFunc['json_decode']($_COOKIE[$cookiename], true);
107
+		}
103 108
 
104 109
 		// Try checking for 2.1 json-format cookie in $_SESSION
105
-		elseif (isset($_SESSION['login_' . $cookiename]) && preg_match('~^{"0":\d+,"1":"[0-9a-f]*","2":\d+~', $_SESSION['login_' . $cookiename]) === 1)
106
-			list (,, $timeout) = $smcFunc['json_decode']($_SESSION['login_' . $cookiename]);
110
+		elseif (isset($_SESSION['login_' . $cookiename]) && preg_match('~^{"0":\d+,"1":"[0-9a-f]*","2":\d+~', $_SESSION['login_' . $cookiename]) === 1) {
111
+					list (,, $timeout) = $smcFunc['json_decode']($_SESSION['login_' . $cookiename]);
112
+		}
107 113
 
108 114
 		// Next, try checking for 2.0 serialized string cookie in $_COOKIE
109
-		elseif (isset($_COOKIE[$cookiename]) && preg_match('~^a:[34]:\{i:0;i:\d+;i:1;s:(0|128):"([a-fA-F0-9]{128})?";i:2;[id]:\d+;~', $_COOKIE[$cookiename]) === 1)
110
-			list (,, $timeout) = safe_unserialize($_COOKIE[$cookiename]);
115
+		elseif (isset($_COOKIE[$cookiename]) && preg_match('~^a:[34]:\{i:0;i:\d+;i:1;s:(0|128):"([a-fA-F0-9]{128})?";i:2;[id]:\d+;~', $_COOKIE[$cookiename]) === 1) {
116
+					list (,, $timeout) = safe_unserialize($_COOKIE[$cookiename]);
117
+		}
111 118
 
112 119
 		// Last, see if you need to fall back on checking for 2.0 serialized string cookie in $_SESSION
113
-		elseif (isset($_SESSION['login_' . $cookiename]) && preg_match('~^a:[34]:\{i:0;i:\d+;i:1;s:(0|128):"([a-fA-F0-9]{128})?";i:2;[id]:\d+;~', $_SESSION['login_' . $cookiename]) === 1)
114
-			list (,, $timeout) = safe_unserialize($_SESSION['login_' . $cookiename]);
115
-
116
-		else
117
-			trigger_error('Login2(): Cannot be logged in without a session or cookie', E_USER_ERROR);
120
+		elseif (isset($_SESSION['login_' . $cookiename]) && preg_match('~^a:[34]:\{i:0;i:\d+;i:1;s:(0|128):"([a-fA-F0-9]{128})?";i:2;[id]:\d+;~', $_SESSION['login_' . $cookiename]) === 1) {
121
+					list (,, $timeout) = safe_unserialize($_SESSION['login_' . $cookiename]);
122
+		} else {
123
+					trigger_error('Login2(): Cannot be logged in without a session or cookie', E_USER_ERROR);
124
+		}
118 125
 
119 126
 		$user_settings['password_salt'] = substr(md5(mt_rand()), 0, 4);
120 127
 		updateMemberData($user_info['id'], array('password_salt' => $user_settings['password_salt']));
@@ -134,24 +141,23 @@  discard block
 block discarded – undo
134 141
 	elseif (isset($_GET['sa']) && $_GET['sa'] == 'check')
135 142
 	{
136 143
 		// Strike!  You're outta there!
137
-		if ($_GET['member'] != $user_info['id'])
138
-			fatal_lang_error('login_cookie_error', false);
144
+		if ($_GET['member'] != $user_info['id']) {
145
+					fatal_lang_error('login_cookie_error', false);
146
+		}
139 147
 
140 148
 		$user_info['can_mod'] = allowedTo('access_mod_center') || (!$user_info['is_guest'] && ($user_info['mod_cache']['gq'] != '0=1' || $user_info['mod_cache']['bq'] != '0=1' || ($modSettings['postmod_active'] && !empty($user_info['mod_cache']['ap']))));
141 149
 
142 150
 		// Some whitelisting for login_url...
143
-		if (empty($_SESSION['login_url']))
144
-			redirectexit(empty($user_settings['tfa_secret']) ? '' : 'action=logintfa');
145
-		elseif (!empty($_SESSION['login_url']) && (strpos($_SESSION['login_url'], 'http://') === false && strpos($_SESSION['login_url'], 'https://') === false))
151
+		if (empty($_SESSION['login_url'])) {
152
+					redirectexit(empty($user_settings['tfa_secret']) ? '' : 'action=logintfa');
153
+		} elseif (!empty($_SESSION['login_url']) && (strpos($_SESSION['login_url'], 'http://') === false && strpos($_SESSION['login_url'], 'https://') === false))
146 154
 		{
147 155
 			unset ($_SESSION['login_url']);
148 156
 			redirectexit(empty($user_settings['tfa_secret']) ? '' : 'action=logintfa');
149
-		}
150
-		elseif (!empty($user_settings['tfa_secret']))
157
+		} elseif (!empty($user_settings['tfa_secret']))
151 158
 		{
152 159
 			redirectexit('action=logintfa');
153
-		}
154
-		else
160
+		} else
155 161
 		{
156 162
 			// Best not to clutter the session data too much...
157 163
 			$temp = $_SESSION['login_url'];
@@ -162,8 +168,9 @@  discard block
 block discarded – undo
162 168
 	}
163 169
 
164 170
 	// Beyond this point you are assumed to be a guest trying to login.
165
-	if (!$user_info['is_guest'])
166
-		redirectexit();
171
+	if (!$user_info['is_guest']) {
172
+			redirectexit();
173
+	}
167 174
 
168 175
 	// Are you guessing with a script?
169 176
 	checkSession();
@@ -171,18 +178,21 @@  discard block
 block discarded – undo
171 178
 	spamProtection('login');
172 179
 
173 180
 	// Set the login_url if it's not already set (but careful not to send us to an attachment).
174
-	if ((empty($_SESSION['login_url']) && isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'dlattach') === false && preg_match('~(board|topic)[=,]~', $_SESSION['old_url']) != 0) || (isset($_GET['quicklogin']) && isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'login') === false))
175
-		$_SESSION['login_url'] = $_SESSION['old_url'];
181
+	if ((empty($_SESSION['login_url']) && isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'dlattach') === false && preg_match('~(board|topic)[=,]~', $_SESSION['old_url']) != 0) || (isset($_GET['quicklogin']) && isset($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'login') === false)) {
182
+			$_SESSION['login_url'] = $_SESSION['old_url'];
183
+	}
176 184
 
177 185
 	// Been guessing a lot, haven't we?
178
-	if (isset($_SESSION['failed_login']) && $_SESSION['failed_login'] >= $modSettings['failed_login_threshold'] * 3)
179
-		fatal_lang_error('login_threshold_fail', 'login');
186
+	if (isset($_SESSION['failed_login']) && $_SESSION['failed_login'] >= $modSettings['failed_login_threshold'] * 3) {
187
+			fatal_lang_error('login_threshold_fail', 'login');
188
+	}
180 189
 
181 190
 	// Set up the cookie length.  (if it's invalid, just fall through and use the default.)
182
-	if (isset($_POST['cookieneverexp']) || (!empty($_POST['cookielength']) && $_POST['cookielength'] == -1))
183
-		$modSettings['cookieTime'] = 3153600;
184
-	elseif (!empty($_POST['cookielength']) && ($_POST['cookielength'] >= 1 && $_POST['cookielength'] <= 3153600))
185
-		$modSettings['cookieTime'] = (int) $_POST['cookielength'];
191
+	if (isset($_POST['cookieneverexp']) || (!empty($_POST['cookielength']) && $_POST['cookielength'] == -1)) {
192
+			$modSettings['cookieTime'] = 3153600;
193
+	} elseif (!empty($_POST['cookielength']) && ($_POST['cookielength'] >= 1 && $_POST['cookielength'] <= 3153600)) {
194
+			$modSettings['cookieTime'] = (int) $_POST['cookielength'];
195
+	}
186 196
 
187 197
 	loadLanguage('Login');
188 198
 	// Load the template stuff.
@@ -302,8 +312,9 @@  discard block
 block discarded – undo
302 312
 			$other_passwords[] = crypt(md5($_POST['passwrd']), md5($_POST['passwrd']));
303 313
 
304 314
 			// Snitz style - SHA-256.  Technically, this is a downgrade, but most PHP configurations don't support sha256 anyway.
305
-			if (strlen($user_settings['passwd']) == 64 && function_exists('mhash') && defined('MHASH_SHA256'))
306
-				$other_passwords[] = bin2hex(mhash(MHASH_SHA256, $_POST['passwrd']));
315
+			if (strlen($user_settings['passwd']) == 64 && function_exists('mhash') && defined('MHASH_SHA256')) {
316
+							$other_passwords[] = bin2hex(mhash(MHASH_SHA256, $_POST['passwrd']));
317
+			}
307 318
 
308 319
 			// phpBB3 users new hashing.  We now support it as well ;).
309 320
 			$other_passwords[] = phpBB3_password_check($_POST['passwrd'], $user_settings['passwd']);
@@ -323,27 +334,29 @@  discard block
 block discarded – undo
323 334
 			// Some common md5 ones.
324 335
 			$other_passwords[] = md5($user_settings['password_salt'] . $_POST['passwrd']);
325 336
 			$other_passwords[] = md5($_POST['passwrd'] . $user_settings['password_salt']);
326
-		}
327
-		elseif (strlen($user_settings['passwd']) == 40)
337
+		} elseif (strlen($user_settings['passwd']) == 40)
328 338
 		{
329 339
 			// Maybe they are using a hash from before the password fix.
330 340
 			// This is also valid for SMF 1.1 to 2.0 style of hashing, changed to bcrypt in SMF 2.1
331 341
 			$other_passwords[] = sha1(strtolower($user_settings['member_name']) . un_htmlspecialchars($_POST['passwrd']));
332 342
 
333 343
 			// BurningBoard3 style of hashing.
334
-			if (!empty($modSettings['enable_password_conversion']))
335
-				$other_passwords[] = sha1($user_settings['password_salt'] . sha1($user_settings['password_salt'] . sha1($_POST['passwrd'])));
344
+			if (!empty($modSettings['enable_password_conversion'])) {
345
+							$other_passwords[] = sha1($user_settings['password_salt'] . sha1($user_settings['password_salt'] . sha1($_POST['passwrd'])));
346
+			}
336 347
 
337 348
 			// Perhaps we converted to UTF-8 and have a valid password being hashed differently.
338 349
 			if ($context['character_set'] == 'UTF-8' && !empty($modSettings['previousCharacterSet']) && $modSettings['previousCharacterSet'] != 'utf8')
339 350
 			{
340 351
 				// Try iconv first, for no particular reason.
341
-				if (function_exists('iconv'))
342
-					$other_passwords['iconv'] = sha1(strtolower(iconv('UTF-8', $modSettings['previousCharacterSet'], $user_settings['member_name'])) . un_htmlspecialchars(iconv('UTF-8', $modSettings['previousCharacterSet'], $_POST['passwrd'])));
352
+				if (function_exists('iconv')) {
353
+									$other_passwords['iconv'] = sha1(strtolower(iconv('UTF-8', $modSettings['previousCharacterSet'], $user_settings['member_name'])) . un_htmlspecialchars(iconv('UTF-8', $modSettings['previousCharacterSet'], $_POST['passwrd'])));
354
+				}
343 355
 
344 356
 				// Say it aint so, iconv failed!
345
-				if (empty($other_passwords['iconv']) && function_exists('mb_convert_encoding'))
346
-					$other_passwords[] = sha1(strtolower(mb_convert_encoding($user_settings['member_name'], 'UTF-8', $modSettings['previousCharacterSet'])) . un_htmlspecialchars(mb_convert_encoding($_POST['passwrd'], 'UTF-8', $modSettings['previousCharacterSet'])));
357
+				if (empty($other_passwords['iconv']) && function_exists('mb_convert_encoding')) {
358
+									$other_passwords[] = sha1(strtolower(mb_convert_encoding($user_settings['member_name'], 'UTF-8', $modSettings['previousCharacterSet'])) . un_htmlspecialchars(mb_convert_encoding($_POST['passwrd'], 'UTF-8', $modSettings['previousCharacterSet'])));
359
+				}
347 360
 			}
348 361
 		}
349 362
 
@@ -373,8 +386,9 @@  discard block
 block discarded – undo
373 386
 			$_SESSION['failed_login'] = isset($_SESSION['failed_login']) ? ($_SESSION['failed_login'] + 1) : 1;
374 387
 
375 388
 			// Hmm... don't remember it, do you?  Here, try the password reminder ;).
376
-			if ($_SESSION['failed_login'] >= $modSettings['failed_login_threshold'])
377
-				redirectexit('action=reminder');
389
+			if ($_SESSION['failed_login'] >= $modSettings['failed_login_threshold']) {
390
+							redirectexit('action=reminder');
391
+			}
378 392
 			// We'll give you another chance...
379 393
 			else
380 394
 			{
@@ -385,8 +399,7 @@  discard block
 block discarded – undo
385 399
 				return;
386 400
 			}
387 401
 		}
388
-	}
389
-	elseif (!empty($user_settings['passwd_flood']))
402
+	} elseif (!empty($user_settings['passwd_flood']))
390 403
 	{
391 404
 		// Let's be sure they weren't a little hacker.
392 405
 		validatePasswordFlood($user_settings['id_member'], $user_settings['member_name'], $user_settings['passwd_flood'], true);
@@ -403,8 +416,9 @@  discard block
 block discarded – undo
403 416
 	}
404 417
 
405 418
 	// Check their activation status.
406
-	if (!checkActivation())
407
-		return;
419
+	if (!checkActivation()) {
420
+			return;
421
+	}
408 422
 
409 423
 	DoLogin();
410 424
 }
@@ -416,8 +430,9 @@  discard block
 block discarded – undo
416 430
 {
417 431
 	global $sourcedir, $txt, $context, $user_info, $modSettings, $scripturl;
418 432
 
419
-	if (!$user_info['is_guest'] || empty($context['tfa_member']) || empty($modSettings['tfa_mode']))
420
-		fatal_lang_error('no_access', false);
433
+	if (!$user_info['is_guest'] || empty($context['tfa_member']) || empty($modSettings['tfa_mode'])) {
434
+			fatal_lang_error('no_access', false);
435
+	}
421 436
 
422 437
 	loadLanguage('Profile');
423 438
 	require_once($sourcedir . '/Class-TOTP.php');
@@ -425,8 +440,9 @@  discard block
 block discarded – undo
425 440
 	$member = $context['tfa_member'];
426 441
 
427 442
 	// Prevent replay attacks by limiting at least 2 minutes before they can log in again via 2FA
428
-	if (time() - $member['last_login'] < 120)
429
-		fatal_lang_error('tfa_wait', false);
443
+	if (time() - $member['last_login'] < 120) {
444
+			fatal_lang_error('tfa_wait', false);
445
+	}
430 446
 
431 447
 	$totp = new \TOTP\Auth($member['tfa_secret']);
432 448
 	$totp->setRange(1);
@@ -440,8 +456,9 @@  discard block
 block discarded – undo
440 456
 	if (!empty($_POST['tfa_code']) && empty($_POST['tfa_backup']))
441 457
 	{
442 458
 		// Check to ensure we're forcing SSL for authentication
443
-		if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn())
444
-			fatal_lang_error('login_ssl_required');
459
+		if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn()) {
460
+					fatal_lang_error('login_ssl_required');
461
+		}
445 462
 
446 463
 		$code = $_POST['tfa_code'];
447 464
 
@@ -451,20 +468,19 @@  discard block
 block discarded – undo
451 468
 
452 469
 			setTFACookie(3153600, $member['id_member'], hash_salt($member['tfa_backup'], $member['password_salt']));
453 470
 			redirectexit();
454
-		}
455
-		else
471
+		} else
456 472
 		{
457 473
 			validatePasswordFlood($member['id_member'], $member['member_name'], $member['passwd_flood'], false, true);
458 474
 
459 475
 			$context['tfa_error'] = true;
460 476
 			$context['tfa_value'] = $_POST['tfa_code'];
461 477
 		}
462
-	}
463
-	elseif (!empty($_POST['tfa_backup']))
478
+	} elseif (!empty($_POST['tfa_backup']))
464 479
 	{
465 480
 		// Check to ensure we're forcing SSL for authentication
466
-		if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn())
467
-			fatal_lang_error('login_ssl_required');
481
+		if (!empty($modSettings['force_ssl']) && empty($maintenance) && !httpsOn()) {
482
+					fatal_lang_error('login_ssl_required');
483
+		}
468 484
 
469 485
 		$backup = $_POST['tfa_backup'];
470 486
 
@@ -478,8 +494,7 @@  discard block
 block discarded – undo
478 494
 			));
479 495
 			setTFACookie(3153600, $member['id_member'], hash_salt($member['tfa_backup'], $member['password_salt']));
480 496
 			redirectexit('action=profile;area=tfasetup;backup');
481
-		}
482
-		else
497
+		} else
483 498
 		{
484 499
 			validatePasswordFlood($member['id_member'], $member['member_name'], $member['passwd_flood'], false, true);
485 500
 
@@ -502,8 +517,9 @@  discard block
 block discarded – undo
502 517
 {
503 518
 	global $context, $txt, $scripturl, $user_settings, $modSettings;
504 519
 
505
-	if (!isset($context['login_errors']))
506
-		$context['login_errors'] = array();
520
+	if (!isset($context['login_errors'])) {
521
+			$context['login_errors'] = array();
522
+	}
507 523
 
508 524
 	// What is the true activation status of this account?
509 525
 	$activation_status = $user_settings['is_activated'] > 10 ? $user_settings['is_activated'] - 10 : $user_settings['is_activated'];
@@ -515,8 +531,9 @@  discard block
 block discarded – undo
515 531
 		return false;
516 532
 	}
517 533
 	// Awaiting approval still?
518
-	elseif ($activation_status == 3)
519
-		fatal_lang_error('still_awaiting_approval', 'user');
534
+	elseif ($activation_status == 3) {
535
+			fatal_lang_error('still_awaiting_approval', 'user');
536
+	}
520 537
 	// Awaiting deletion, changed their mind?
521 538
 	elseif ($activation_status == 4)
522 539
 	{
@@ -524,8 +541,7 @@  discard block
 block discarded – undo
524 541
 		{
525 542
 			updateMemberData($user_settings['id_member'], array('is_activated' => 1));
526 543
 			updateSettings(array('unapprovedMembers' => ($modSettings['unapprovedMembers'] > 0 ? $modSettings['unapprovedMembers'] - 1 : 0)));
527
-		}
528
-		else
544
+		} else
529 545
 		{
530 546
 			$context['disable_login_hashing'] = true;
531 547
 			$context['login_errors'][] = $txt['awaiting_delete_account'];
@@ -565,8 +581,9 @@  discard block
 block discarded – undo
565 581
 	setLoginCookie(60 * $modSettings['cookieTime'], $user_settings['id_member'], hash_salt($user_settings['passwd'], $user_settings['password_salt']));
566 582
 
567 583
 	// Reset the login threshold.
568
-	if (isset($_SESSION['failed_login']))
569
-		unset($_SESSION['failed_login']);
584
+	if (isset($_SESSION['failed_login'])) {
585
+			unset($_SESSION['failed_login']);
586
+	}
570 587
 
571 588
 	$user_info['is_guest'] = false;
572 589
 	$user_settings['additional_groups'] = explode(',', $user_settings['additional_groups']);
@@ -588,16 +605,18 @@  discard block
 block discarded – undo
588 605
 			'id_member' => $user_info['id'],
589 606
 		)
590 607
 	);
591
-	if ($smcFunc['db_num_rows']($request) == 1)
592
-		$_SESSION['first_login'] = true;
593
-	else
594
-		unset($_SESSION['first_login']);
608
+	if ($smcFunc['db_num_rows']($request) == 1) {
609
+			$_SESSION['first_login'] = true;
610
+	} else {
611
+			unset($_SESSION['first_login']);
612
+	}
595 613
 	$smcFunc['db_free_result']($request);
596 614
 
597 615
 	// You've logged in, haven't you?
598 616
 	$update = array('member_ip' => $user_info['ip'], 'member_ip2' => $_SERVER['BAN_CHECK_IP']);
599
-	if (empty($user_settings['tfa_secret']))
600
-		$update['last_login'] = time();
617
+	if (empty($user_settings['tfa_secret'])) {
618
+			$update['last_login'] = time();
619
+	}
601 620
 	updateMemberData($user_info['id'], $update);
602 621
 
603 622
 	// Get rid of the online entry for that old guest....
@@ -611,8 +630,8 @@  discard block
 block discarded – undo
611 630
 	$_SESSION['log_time'] = 0;
612 631
 
613 632
 	// Log this entry, only if we have it enabled.
614
-	if (!empty($modSettings['loginHistoryDays']))
615
-		$smcFunc['db_insert']('insert',
633
+	if (!empty($modSettings['loginHistoryDays'])) {
634
+			$smcFunc['db_insert']('insert',
616 635
 			'{db_prefix}member_logins',
617 636
 			array(
618 637
 				'id_member' => 'int', 'time' => 'int', 'ip' => 'inet', 'ip2' => 'inet',
@@ -624,13 +643,15 @@  discard block
 block discarded – undo
624 643
 				'id_member', 'time'
625 644
 			)
626 645
 		);
646
+	}
627 647
 
628 648
 	// Just log you back out if it's in maintenance mode and you AREN'T an admin.
629
-	if (empty($maintenance) || allowedTo('admin_forum'))
630
-		redirectexit('action=login2;sa=check;member=' . $user_info['id'], $context['server']['needs_login_fix']);
631
-	else
632
-		redirectexit('action=logout;' . $context['session_var'] . '=' . $context['session_id'], $context['server']['needs_login_fix']);
633
-}
649
+	if (empty($maintenance) || allowedTo('admin_forum')) {
650
+			redirectexit('action=login2;sa=check;member=' . $user_info['id'], $context['server']['needs_login_fix']);
651
+	} else {
652
+			redirectexit('action=logout;' . $context['session_var'] . '=' . $context['session_id'], $context['server']['needs_login_fix']);
653
+	}
654
+	}
634 655
 
635 656
 /**
636 657
  * Logs the current user out of their account.
@@ -646,13 +667,15 @@  discard block
 block discarded – undo
646 667
 	global $sourcedir, $user_info, $user_settings, $context, $smcFunc, $cookiename, $modSettings;
647 668
 
648 669
 	// Make sure they aren't being auto-logged out.
649
-	if (!$internal)
650
-		checkSession('get');
670
+	if (!$internal) {
671
+			checkSession('get');
672
+	}
651 673
 
652 674
 	require_once($sourcedir . '/Subs-Auth.php');
653 675
 
654
-	if (isset($_SESSION['pack_ftp']))
655
-		$_SESSION['pack_ftp'] = null;
676
+	if (isset($_SESSION['pack_ftp'])) {
677
+			$_SESSION['pack_ftp'] = null;
678
+	}
656 679
 
657 680
 	// It won't be first login anymore.
658 681
 	unset($_SESSION['first_login']);
@@ -680,8 +703,9 @@  discard block
 block discarded – undo
680 703
 
681 704
 	// And some other housekeeping while we're at it.
682 705
 	$salt = substr(md5(mt_rand()), 0, 4);
683
-	if (!empty($user_info['id']))
684
-		updateMemberData($user_info['id'], array('password_salt' => $salt));
706
+	if (!empty($user_info['id'])) {
707
+			updateMemberData($user_info['id'], array('password_salt' => $salt));
708
+	}
685 709
 
686 710
 	if (!empty($modSettings['tfa_mode']) && !empty($user_info['id']) && !empty($_COOKIE[$cookiename . '_tfa']))
687 711
 	{
@@ -694,14 +718,13 @@  discard block
 block discarded – undo
694 718
 	// Off to the merry board index we go!
695 719
 	if ($redirect)
696 720
 	{
697
-		if (empty($_SESSION['logout_url']))
698
-			redirectexit('', $context['server']['needs_login_fix']);
699
-		elseif (!empty($_SESSION['logout_url']) && (strpos($_SESSION['logout_url'], 'http://') === false && strpos($_SESSION['logout_url'], 'https://') === false))
721
+		if (empty($_SESSION['logout_url'])) {
722
+					redirectexit('', $context['server']['needs_login_fix']);
723
+		} elseif (!empty($_SESSION['logout_url']) && (strpos($_SESSION['logout_url'], 'http://') === false && strpos($_SESSION['logout_url'], 'https://') === false))
700 724
 		{
701 725
 			unset ($_SESSION['logout_url']);
702 726
 			redirectexit();
703
-		}
704
-		else
727
+		} else
705 728
 		{
706 729
 			$temp = $_SESSION['logout_url'];
707 730
 			unset($_SESSION['logout_url']);
@@ -734,8 +757,9 @@  discard block
 block discarded – undo
734 757
 function phpBB3_password_check($passwd, $passwd_hash)
735 758
 {
736 759
 	// Too long or too short?
737
-	if (strlen($passwd_hash) != 34)
738
-		return;
760
+	if (strlen($passwd_hash) != 34) {
761
+			return;
762
+	}
739 763
 
740 764
 	// Range of characters allowed.
741 765
 	$range = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
@@ -746,8 +770,9 @@  discard block
 block discarded – undo
746 770
 	$salt = substr($passwd_hash, 4, 8);
747 771
 
748 772
 	$hash = md5($salt . $passwd, true);
749
-	for (; $count != 0; --$count)
750
-		$hash = md5($hash . $passwd, true);
773
+	for (; $count != 0; --$count) {
774
+			$hash = md5($hash . $passwd, true);
775
+	}
751 776
 
752 777
 	$output = substr($passwd_hash, 0, 12);
753 778
 	$i = 0;
@@ -756,21 +781,25 @@  discard block
 block discarded – undo
756 781
 		$value = ord($hash[$i++]);
757 782
 		$output .= $range[$value & 0x3f];
758 783
 
759
-		if ($i < 16)
760
-			$value |= ord($hash[$i]) << 8;
784
+		if ($i < 16) {
785
+					$value |= ord($hash[$i]) << 8;
786
+		}
761 787
 
762 788
 		$output .= $range[($value >> 6) & 0x3f];
763 789
 
764
-		if ($i++ >= 16)
765
-			break;
790
+		if ($i++ >= 16) {
791
+					break;
792
+		}
766 793
 
767
-		if ($i < 16)
768
-			$value |= ord($hash[$i]) << 16;
794
+		if ($i < 16) {
795
+					$value |= ord($hash[$i]) << 16;
796
+		}
769 797
 
770 798
 		$output .= $range[($value >> 12) & 0x3f];
771 799
 
772
-		if ($i++ >= 16)
773
-			break;
800
+		if ($i++ >= 16) {
801
+					break;
802
+		}
774 803
 
775 804
 		$output .= $range[($value >> 18) & 0x3f];
776 805
 	}
@@ -802,8 +831,9 @@  discard block
 block discarded – undo
802 831
 		require_once($sourcedir . '/Subs-Auth.php');
803 832
 		setLoginCookie(-3600, 0);
804 833
 
805
-		if (isset($_SESSION['login_' . $cookiename]))
806
-			unset($_SESSION['login_' . $cookiename]);
834
+		if (isset($_SESSION['login_' . $cookiename])) {
835
+					unset($_SESSION['login_' . $cookiename]);
836
+		}
807 837
 	}
808 838
 
809 839
 	// We need a member!
@@ -817,8 +847,9 @@  discard block
 block discarded – undo
817 847
 	}
818 848
 
819 849
 	// Right, have we got a flood value?
820
-	if ($password_flood_value !== false)
821
-		@list ($time_stamp, $number_tries) = explode('|', $password_flood_value);
850
+	if ($password_flood_value !== false) {
851
+			@list ($time_stamp, $number_tries) = explode('|', $password_flood_value);
852
+	}
822 853
 
823 854
 	// Timestamp or number of tries invalid?
824 855
 	if (empty($number_tries) || empty($time_stamp))
@@ -834,15 +865,17 @@  discard block
 block discarded – undo
834 865
 		$number_tries = $time_stamp < time() - 20 ? 2 : $number_tries;
835 866
 
836 867
 		// They are trying too fast, make them wait longer
837
-		if ($time_stamp < time() - 10)
838
-			$time_stamp = time();
868
+		if ($time_stamp < time() - 10) {
869
+					$time_stamp = time();
870
+		}
839 871
 	}
840 872
 
841 873
 	$number_tries++;
842 874
 
843 875
 	// Broken the law?
844
-	if ($number_tries > 5)
845
-		fatal_lang_error('login_threshold_brute_fail', 'login', [$member_name]);
876
+	if ($number_tries > 5) {
877
+			fatal_lang_error('login_threshold_brute_fail', 'login', [$member_name]);
878
+	}
846 879
 
847 880
 	// Otherwise set the members data. If they correct on their first attempt then we actually clear it, otherwise we set it!
848 881
 	updateMemberData($id_member, array('passwd_flood' => $was_correct && $number_tries == 1 ? '' : $time_stamp . '|' . $number_tries));
Please login to merge, or discard this patch.
Sources/Subs.php 1 patch
Braces   +1477 added lines, -1105 removed lines patch added patch discarded remove patch
@@ -13,8 +13,9 @@  discard block
 block discarded – undo
13 13
  * @version 2.1 Beta 4
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
  * Update some basic statistics.
@@ -122,10 +123,11 @@  discard block
 block discarded – undo
122 123
 						$smcFunc['db_free_result']($result);
123 124
 
124 125
 						// Add this to the number of unapproved members
125
-						if (!empty($changes['unapprovedMembers']))
126
-							$changes['unapprovedMembers'] += $coppa_approvals;
127
-						else
128
-							$changes['unapprovedMembers'] = $coppa_approvals;
126
+						if (!empty($changes['unapprovedMembers'])) {
127
+													$changes['unapprovedMembers'] += $coppa_approvals;
128
+						} else {
129
+													$changes['unapprovedMembers'] = $coppa_approvals;
130
+						}
129 131
 					}
130 132
 				}
131 133
 			}
@@ -133,9 +135,9 @@  discard block
 block discarded – undo
133 135
 			break;
134 136
 
135 137
 		case 'message':
136
-			if ($parameter1 === true && $parameter2 !== null)
137
-				updateSettings(array('totalMessages' => true, 'maxMsgID' => $parameter2), true);
138
-			else
138
+			if ($parameter1 === true && $parameter2 !== null) {
139
+							updateSettings(array('totalMessages' => true, 'maxMsgID' => $parameter2), true);
140
+			} else
139 141
 			{
140 142
 				// SUM and MAX on a smaller table is better for InnoDB tables.
141 143
 				$result = $smcFunc['db_query']('', '
@@ -175,24 +177,25 @@  discard block
 block discarded – undo
175 177
 				$parameter2 = text2words($parameter2);
176 178
 
177 179
 				$inserts = array();
178
-				foreach ($parameter2 as $word)
179
-					$inserts[] = array($word, $parameter1);
180
+				foreach ($parameter2 as $word) {
181
+									$inserts[] = array($word, $parameter1);
182
+				}
180 183
 
181
-				if (!empty($inserts))
182
-					$smcFunc['db_insert']('ignore',
184
+				if (!empty($inserts)) {
185
+									$smcFunc['db_insert']('ignore',
183 186
 						'{db_prefix}log_search_subjects',
184 187
 						array('word' => 'string', 'id_topic' => 'int'),
185 188
 						$inserts,
186 189
 						array('word', 'id_topic')
187 190
 					);
191
+				}
188 192
 			}
189 193
 			break;
190 194
 
191 195
 		case 'topic':
192
-			if ($parameter1 === true)
193
-				updateSettings(array('totalTopics' => true), true);
194
-
195
-			else
196
+			if ($parameter1 === true) {
197
+							updateSettings(array('totalTopics' => true), true);
198
+			} else
196 199
 			{
197 200
 				// Get the number of topics - a SUM is better for InnoDB tables.
198 201
 				// We also ignore the recycle bin here because there will probably be a bunch of one-post topics there.
@@ -213,8 +216,9 @@  discard block
 block discarded – undo
213 216
 
214 217
 		case 'postgroups':
215 218
 			// Parameter two is the updated columns: we should check to see if we base groups off any of these.
216
-			if ($parameter2 !== null && !in_array('posts', $parameter2))
217
-				return;
219
+			if ($parameter2 !== null && !in_array('posts', $parameter2)) {
220
+							return;
221
+			}
218 222
 
219 223
 			$postgroups = cache_get_data('updateStats:postgroups', 360);
220 224
 			if ($postgroups == null || $parameter1 == null)
@@ -229,8 +233,9 @@  discard block
 block discarded – undo
229 233
 					)
230 234
 				);
231 235
 				$postgroups = array();
232
-				while ($row = $smcFunc['db_fetch_assoc']($request))
233
-					$postgroups[$row['id_group']] = $row['min_posts'];
236
+				while ($row = $smcFunc['db_fetch_assoc']($request)) {
237
+									$postgroups[$row['id_group']] = $row['min_posts'];
238
+				}
234 239
 
235 240
 				$smcFunc['db_free_result']($request);
236 241
 
@@ -241,8 +246,9 @@  discard block
 block discarded – undo
241 246
 			}
242 247
 
243 248
 			// Oh great, they've screwed their post groups.
244
-			if (empty($postgroups))
245
-				return;
249
+			if (empty($postgroups)) {
250
+							return;
251
+			}
246 252
 
247 253
 			// Set all membergroups from most posts to least posts.
248 254
 			$conditions = '';
@@ -301,12 +307,9 @@  discard block
 block discarded – undo
301 307
 	{
302 308
 		$condition = 'id_member IN ({array_int:members})';
303 309
 		$parameters['members'] = $members;
304
-	}
305
-
306
-	elseif ($members === null)
307
-		$condition = '1=1';
308
-
309
-	else
310
+	} elseif ($members === null) {
311
+			$condition = '1=1';
312
+	} else
310 313
 	{
311 314
 		$condition = 'id_member = {int:member}';
312 315
 		$parameters['member'] = $members;
@@ -346,9 +349,9 @@  discard block
 block discarded – undo
346 349
 		if (count($vars_to_integrate) != 0)
347 350
 		{
348 351
 			// Fetch a list of member_names if necessary
349
-			if ((!is_array($members) && $members === $user_info['id']) || (is_array($members) && count($members) == 1 && in_array($user_info['id'], $members)))
350
-				$member_names = array($user_info['username']);
351
-			else
352
+			if ((!is_array($members) && $members === $user_info['id']) || (is_array($members) && count($members) == 1 && in_array($user_info['id'], $members))) {
353
+							$member_names = array($user_info['username']);
354
+			} else
352 355
 			{
353 356
 				$member_names = array();
354 357
 				$request = $smcFunc['db_query']('', '
@@ -357,14 +360,16 @@  discard block
 block discarded – undo
357 360
 					WHERE ' . $condition,
358 361
 					$parameters
359 362
 				);
360
-				while ($row = $smcFunc['db_fetch_assoc']($request))
361
-					$member_names[] = $row['member_name'];
363
+				while ($row = $smcFunc['db_fetch_assoc']($request)) {
364
+									$member_names[] = $row['member_name'];
365
+				}
362 366
 				$smcFunc['db_free_result']($request);
363 367
 			}
364 368
 
365
-			if (!empty($member_names))
366
-				foreach ($vars_to_integrate as $var)
369
+			if (!empty($member_names)) {
370
+							foreach ($vars_to_integrate as $var)
367 371
 					call_integration_hook('integrate_change_member_data', array($member_names, $var, &$data[$var], &$knownInts, &$knownFloats));
372
+			}
368 373
 		}
369 374
 	}
370 375
 
@@ -372,16 +377,17 @@  discard block
 block discarded – undo
372 377
 	foreach ($data as $var => $val)
373 378
 	{
374 379
 		$type = 'string';
375
-		if (in_array($var, $knownInts))
376
-			$type = 'int';
377
-		elseif (in_array($var, $knownFloats))
378
-			$type = 'float';
379
-		elseif ($var == 'birthdate')
380
-			$type = 'date';
381
-		elseif ($var == 'member_ip')
382
-			$type = 'inet';
383
-		elseif ($var == 'member_ip2')
384
-			$type = 'inet';
380
+		if (in_array($var, $knownInts)) {
381
+					$type = 'int';
382
+		} elseif (in_array($var, $knownFloats)) {
383
+					$type = 'float';
384
+		} elseif ($var == 'birthdate') {
385
+					$type = 'date';
386
+		} elseif ($var == 'member_ip') {
387
+					$type = 'inet';
388
+		} elseif ($var == 'member_ip2') {
389
+					$type = 'inet';
390
+		}
385 391
 
386 392
 		// Doing an increment?
387 393
 		if ($var == 'alerts' && ($val === '+' || $val === '-'))
@@ -390,18 +396,17 @@  discard block
 block discarded – undo
390 396
 			if (is_array($members))
391 397
 			{
392 398
 				$val = 'CASE ';
393
-				foreach ($members as $k => $v)
394
-					$val .= 'WHEN id_member = ' . $v . ' THEN '. count(fetch_alerts($v, false, 0, array(), false)) . ' ';
399
+				foreach ($members as $k => $v) {
400
+									$val .= 'WHEN id_member = ' . $v . ' THEN '. count(fetch_alerts($v, false, 0, array(), false)) . ' ';
401
+				}
395 402
 				$val = $val . ' END';
396 403
 				$type = 'raw';
397
-			}
398
-			else
404
+			} else
399 405
 			{
400 406
 				$blub = fetch_alerts($members, false, 0, array(), false);
401 407
 				$val = count($blub);
402 408
 			}
403
-		}
404
-		else if ($type == 'int' && ($val === '+' || $val === '-'))
409
+		} else if ($type == 'int' && ($val === '+' || $val === '-'))
405 410
 		{
406 411
 			$val = $var . ' ' . $val . ' 1';
407 412
 			$type = 'raw';
@@ -412,8 +417,9 @@  discard block
 block discarded – undo
412 417
 		{
413 418
 			if (preg_match('~^' . $var . ' (\+ |- |\+ -)([\d]+)~', $val, $match))
414 419
 			{
415
-				if ($match[1] != '+ ')
416
-					$val = 'CASE WHEN ' . $var . ' <= ' . abs($match[2]) . ' THEN 0 ELSE ' . $val . ' END';
420
+				if ($match[1] != '+ ') {
421
+									$val = 'CASE WHEN ' . $var . ' <= ' . abs($match[2]) . ' THEN 0 ELSE ' . $val . ' END';
422
+				}
417 423
 				$type = 'raw';
418 424
 			}
419 425
 		}
@@ -434,8 +440,9 @@  discard block
 block discarded – undo
434 440
 	// Clear any caching?
435 441
 	if (!empty($modSettings['cache_enable']) && $modSettings['cache_enable'] >= 2 && !empty($members))
436 442
 	{
437
-		if (!is_array($members))
438
-			$members = array($members);
443
+		if (!is_array($members)) {
444
+					$members = array($members);
445
+		}
439 446
 
440 447
 		foreach ($members as $member)
441 448
 		{
@@ -468,29 +475,32 @@  discard block
 block discarded – undo
468 475
 {
469 476
 	global $modSettings, $smcFunc;
470 477
 
471
-	if (empty($changeArray) || !is_array($changeArray))
472
-		return;
478
+	if (empty($changeArray) || !is_array($changeArray)) {
479
+			return;
480
+	}
473 481
 
474 482
 	$toRemove = array();
475 483
 
476 484
 	// Go check if there is any setting to be removed.
477
-	foreach ($changeArray as $k => $v)
478
-		if ($v === null)
485
+	foreach ($changeArray as $k => $v) {
486
+			if ($v === null)
479 487
 		{
480 488
 			// Found some, remove them from the original array and add them to ours.
481 489
 			unset($changeArray[$k]);
490
+	}
482 491
 			$toRemove[] = $k;
483 492
 		}
484 493
 
485 494
 	// Proceed with the deletion.
486
-	if (!empty($toRemove))
487
-		$smcFunc['db_query']('', '
495
+	if (!empty($toRemove)) {
496
+			$smcFunc['db_query']('', '
488 497
 			DELETE FROM {db_prefix}settings
489 498
 			WHERE variable IN ({array_string:remove})',
490 499
 			array(
491 500
 				'remove' => $toRemove,
492 501
 			)
493 502
 		);
503
+	}
494 504
 
495 505
 	// In some cases, this may be better and faster, but for large sets we don't want so many UPDATEs.
496 506
 	if ($update)
@@ -519,19 +529,22 @@  discard block
 block discarded – undo
519 529
 	foreach ($changeArray as $variable => $value)
520 530
 	{
521 531
 		// Don't bother if it's already like that ;).
522
-		if (isset($modSettings[$variable]) && $modSettings[$variable] == $value)
523
-			continue;
532
+		if (isset($modSettings[$variable]) && $modSettings[$variable] == $value) {
533
+					continue;
534
+		}
524 535
 		// If the variable isn't set, but would only be set to nothing'ness, then don't bother setting it.
525
-		elseif (!isset($modSettings[$variable]) && empty($value))
526
-			continue;
536
+		elseif (!isset($modSettings[$variable]) && empty($value)) {
537
+					continue;
538
+		}
527 539
 
528 540
 		$replaceArray[] = array($variable, $value);
529 541
 
530 542
 		$modSettings[$variable] = $value;
531 543
 	}
532 544
 
533
-	if (empty($replaceArray))
534
-		return;
545
+	if (empty($replaceArray)) {
546
+			return;
547
+	}
535 548
 
536 549
 	$smcFunc['db_insert']('replace',
537 550
 		'{db_prefix}settings',
@@ -577,14 +590,17 @@  discard block
 block discarded – undo
577 590
 	$start_invalid = $start < 0;
578 591
 
579 592
 	// Make sure $start is a proper variable - not less than 0.
580
-	if ($start_invalid)
581
-		$start = 0;
593
+	if ($start_invalid) {
594
+			$start = 0;
595
+	}
582 596
 	// Not greater than the upper bound.
583
-	elseif ($start >= $max_value)
584
-		$start = max(0, (int) $max_value - (((int) $max_value % (int) $num_per_page) == 0 ? $num_per_page : ((int) $max_value % (int) $num_per_page)));
597
+	elseif ($start >= $max_value) {
598
+			$start = max(0, (int) $max_value - (((int) $max_value % (int) $num_per_page) == 0 ? $num_per_page : ((int) $max_value % (int) $num_per_page)));
599
+	}
585 600
 	// And it has to be a multiple of $num_per_page!
586
-	else
587
-		$start = max(0, (int) $start - ((int) $start % (int) $num_per_page));
601
+	else {
602
+			$start = max(0, (int) $start - ((int) $start % (int) $num_per_page));
603
+	}
588 604
 
589 605
 	$context['current_page'] = $start / $num_per_page;
590 606
 
@@ -614,77 +630,87 @@  discard block
 block discarded – undo
614 630
 
615 631
 		// Show all the pages.
616 632
 		$display_page = 1;
617
-		for ($counter = 0; $counter < $max_value; $counter += $num_per_page)
618
-			$pageindex .= $start == $counter && !$start_invalid ? sprintf($settings['page_index']['current_page'], $display_page++) : sprintf($base_link, $counter, $display_page++);
633
+		for ($counter = 0; $counter < $max_value; $counter += $num_per_page) {
634
+					$pageindex .= $start == $counter && !$start_invalid ? sprintf($settings['page_index']['current_page'], $display_page++) : sprintf($base_link, $counter, $display_page++);
635
+		}
619 636
 
620 637
 		// Show the right arrow.
621 638
 		$display_page = ($start + $num_per_page) > $max_value ? $max_value : ($start + $num_per_page);
622
-		if ($start != $counter - $max_value && !$start_invalid)
623
-			$pageindex .= $display_page > $counter - $num_per_page ? ' ' : sprintf($base_link, $display_page, $settings['page_index']['next_page']);
624
-	}
625
-	else
639
+		if ($start != $counter - $max_value && !$start_invalid) {
640
+					$pageindex .= $display_page > $counter - $num_per_page ? ' ' : sprintf($base_link, $display_page, $settings['page_index']['next_page']);
641
+		}
642
+	} else
626 643
 	{
627 644
 		// If they didn't enter an odd value, pretend they did.
628 645
 		$PageContiguous = (int) ($modSettings['compactTopicPagesContiguous'] - ($modSettings['compactTopicPagesContiguous'] % 2)) / 2;
629 646
 
630 647
 		// Show the "prev page" link. (>prev page< 1 ... 6 7 [8] 9 10 ... 15 next page)
631
-		if (!empty($start) && $show_prevnext)
632
-			$pageindex .= sprintf($base_link, $start - $num_per_page, $settings['page_index']['previous_page']);
633
-		else
634
-			$pageindex .= '';
648
+		if (!empty($start) && $show_prevnext) {
649
+					$pageindex .= sprintf($base_link, $start - $num_per_page, $settings['page_index']['previous_page']);
650
+		} else {
651
+					$pageindex .= '';
652
+		}
635 653
 
636 654
 		// Show the first page. (prev page >1< ... 6 7 [8] 9 10 ... 15)
637
-		if ($start > $num_per_page * $PageContiguous)
638
-			$pageindex .= sprintf($base_link, 0, '1');
655
+		if ($start > $num_per_page * $PageContiguous) {
656
+					$pageindex .= sprintf($base_link, 0, '1');
657
+		}
639 658
 
640 659
 		// Show the ... after the first page.  (prev page 1 >...< 6 7 [8] 9 10 ... 15 next page)
641
-		if ($start > $num_per_page * ($PageContiguous + 1))
642
-			$pageindex .= strtr($settings['page_index']['expand_pages'], array(
660
+		if ($start > $num_per_page * ($PageContiguous + 1)) {
661
+					$pageindex .= strtr($settings['page_index']['expand_pages'], array(
643 662
 				'{LINK}' => JavaScriptEscape($smcFunc['htmlspecialchars']($base_link)),
644 663
 				'{FIRST_PAGE}' => $num_per_page,
645 664
 				'{LAST_PAGE}' => $start - $num_per_page * $PageContiguous,
646 665
 				'{PER_PAGE}' => $num_per_page,
647 666
 			));
667
+		}
648 668
 
649 669
 		// Show the pages before the current one. (prev page 1 ... >6 7< [8] 9 10 ... 15 next page)
650
-		for ($nCont = $PageContiguous; $nCont >= 1; $nCont--)
651
-			if ($start >= $num_per_page * $nCont)
670
+		for ($nCont = $PageContiguous; $nCont >= 1; $nCont--) {
671
+					if ($start >= $num_per_page * $nCont)
652 672
 			{
653 673
 				$tmpStart = $start - $num_per_page * $nCont;
674
+		}
654 675
 				$pageindex .= sprintf($base_link, $tmpStart, $tmpStart / $num_per_page + 1);
655 676
 			}
656 677
 
657 678
 		// Show the current page. (prev page 1 ... 6 7 >[8]< 9 10 ... 15 next page)
658
-		if (!$start_invalid)
659
-			$pageindex .= sprintf($settings['page_index']['current_page'], $start / $num_per_page + 1);
660
-		else
661
-			$pageindex .= sprintf($base_link, $start, $start / $num_per_page + 1);
679
+		if (!$start_invalid) {
680
+					$pageindex .= sprintf($settings['page_index']['current_page'], $start / $num_per_page + 1);
681
+		} else {
682
+					$pageindex .= sprintf($base_link, $start, $start / $num_per_page + 1);
683
+		}
662 684
 
663 685
 		// Show the pages after the current one... (prev page 1 ... 6 7 [8] >9 10< ... 15 next page)
664 686
 		$tmpMaxPages = (int) (($max_value - 1) / $num_per_page) * $num_per_page;
665
-		for ($nCont = 1; $nCont <= $PageContiguous; $nCont++)
666
-			if ($start + $num_per_page * $nCont <= $tmpMaxPages)
687
+		for ($nCont = 1; $nCont <= $PageContiguous; $nCont++) {
688
+					if ($start + $num_per_page * $nCont <= $tmpMaxPages)
667 689
 			{
668 690
 				$tmpStart = $start + $num_per_page * $nCont;
691
+		}
669 692
 				$pageindex .= sprintf($base_link, $tmpStart, $tmpStart / $num_per_page + 1);
670 693
 			}
671 694
 
672 695
 		// Show the '...' part near the end. (prev page 1 ... 6 7 [8] 9 10 >...< 15 next page)
673
-		if ($start + $num_per_page * ($PageContiguous + 1) < $tmpMaxPages)
674
-			$pageindex .= strtr($settings['page_index']['expand_pages'], array(
696
+		if ($start + $num_per_page * ($PageContiguous + 1) < $tmpMaxPages) {
697
+					$pageindex .= strtr($settings['page_index']['expand_pages'], array(
675 698
 				'{LINK}' => JavaScriptEscape($smcFunc['htmlspecialchars']($base_link)),
676 699
 				'{FIRST_PAGE}' => $start + $num_per_page * ($PageContiguous + 1),
677 700
 				'{LAST_PAGE}' => $tmpMaxPages,
678 701
 				'{PER_PAGE}' => $num_per_page,
679 702
 			));
703
+		}
680 704
 
681 705
 		// Show the last number in the list. (prev page 1 ... 6 7 [8] 9 10 ... >15<  next page)
682
-		if ($start + $num_per_page * $PageContiguous < $tmpMaxPages)
683
-			$pageindex .= sprintf($base_link, $tmpMaxPages, $tmpMaxPages / $num_per_page + 1);
706
+		if ($start + $num_per_page * $PageContiguous < $tmpMaxPages) {
707
+					$pageindex .= sprintf($base_link, $tmpMaxPages, $tmpMaxPages / $num_per_page + 1);
708
+		}
684 709
 
685 710
 		// Show the "next page" link. (prev page 1 ... 6 7 [8] 9 10 ... 15 >next page<)
686
-		if ($start != $tmpMaxPages && $show_prevnext)
687
-			$pageindex .= sprintf($base_link, $start + $num_per_page, $settings['page_index']['next_page']);
711
+		if ($start != $tmpMaxPages && $show_prevnext) {
712
+					$pageindex .= sprintf($base_link, $start + $num_per_page, $settings['page_index']['next_page']);
713
+		}
688 714
 	}
689 715
 	$pageindex .= $settings['page_index']['extra_after'];
690 716
 
@@ -710,8 +736,9 @@  discard block
 block discarded – undo
710 736
 	if ($decimal_separator === null)
711 737
 	{
712 738
 		// Not set for whatever reason?
713
-		if (empty($txt['number_format']) || preg_match('~^1([^\d]*)?234([^\d]*)(0*?)$~', $txt['number_format'], $matches) != 1)
714
-			return $number;
739
+		if (empty($txt['number_format']) || preg_match('~^1([^\d]*)?234([^\d]*)(0*?)$~', $txt['number_format'], $matches) != 1) {
740
+					return $number;
741
+		}
715 742
 
716 743
 		// Cache these each load...
717 744
 		$thousands_separator = $matches[1];
@@ -752,17 +779,20 @@  discard block
 block discarded – undo
752 779
 	$user_info['time_format'] = !empty($user_info['time_format']) ? $user_info['time_format'] : (!empty($modSettings['time_format']) ? $modSettings['time_format'] : '%F %H:%M');
753 780
 
754 781
 	// Offset the time.
755
-	if (!$offset_type)
756
-		$time = $log_time + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600;
782
+	if (!$offset_type) {
783
+			$time = $log_time + ($user_info['time_offset'] + $modSettings['time_offset']) * 3600;
784
+	}
757 785
 	// Just the forum offset?
758
-	elseif ($offset_type == 'forum')
759
-		$time = $log_time + $modSettings['time_offset'] * 3600;
760
-	else
761
-		$time = $log_time;
786
+	elseif ($offset_type == 'forum') {
787
+			$time = $log_time + $modSettings['time_offset'] * 3600;
788
+	} else {
789
+			$time = $log_time;
790
+	}
762 791
 
763 792
 	// We can't have a negative date (on Windows, at least.)
764
-	if ($log_time < 0)
765
-		$log_time = 0;
793
+	if ($log_time < 0) {
794
+			$log_time = 0;
795
+	}
766 796
 
767 797
 	// Today and Yesterday?
768 798
 	if ($modSettings['todayMod'] >= 1 && $show_today === true)
@@ -779,24 +809,27 @@  discard block
 block discarded – undo
779 809
 		{
780 810
 			$h = strpos($user_info['time_format'], '%l') === false ? '%I' : '%l';
781 811
 			$today_fmt = $h . ':%M' . $s . ' %p';
812
+		} else {
813
+					$today_fmt = '%H:%M' . $s;
782 814
 		}
783
-		else
784
-			$today_fmt = '%H:%M' . $s;
785 815
 
786 816
 		// Same day of the year, same year.... Today!
787
-		if ($then['yday'] == $now['yday'] && $then['year'] == $now['year'])
788
-			return $txt['today'] . timeformat($log_time, $today_fmt, $offset_type);
817
+		if ($then['yday'] == $now['yday'] && $then['year'] == $now['year']) {
818
+					return $txt['today'] . timeformat($log_time, $today_fmt, $offset_type);
819
+		}
789 820
 
790 821
 		// Day-of-year is one less and same year, or it's the first of the year and that's the last of the year...
791
-		if ($modSettings['todayMod'] == '2' && (($then['yday'] == $now['yday'] - 1 && $then['year'] == $now['year']) || ($now['yday'] == 0 && $then['year'] == $now['year'] - 1) && $then['mon'] == 12 && $then['mday'] == 31))
792
-			return $txt['yesterday'] . timeformat($log_time, $today_fmt, $offset_type);
822
+		if ($modSettings['todayMod'] == '2' && (($then['yday'] == $now['yday'] - 1 && $then['year'] == $now['year']) || ($now['yday'] == 0 && $then['year'] == $now['year'] - 1) && $then['mon'] == 12 && $then['mday'] == 31)) {
823
+					return $txt['yesterday'] . timeformat($log_time, $today_fmt, $offset_type);
824
+		}
793 825
 	}
794 826
 
795 827
 	$str = !is_bool($show_today) ? $show_today : $user_info['time_format'];
796 828
 
797 829
 	// Use the cached formats if available
798
-	if (is_null($finalizedFormats))
799
-		$finalizedFormats = (array) cache_get_data('timeformatstrings', 86400);
830
+	if (is_null($finalizedFormats)) {
831
+			$finalizedFormats = (array) cache_get_data('timeformatstrings', 86400);
832
+	}
800 833
 
801 834
 	// Make a supported version for this format if we don't already have one
802 835
 	if (empty($finalizedFormats[$str]))
@@ -825,8 +858,9 @@  discard block
 block discarded – undo
825 858
 		);
826 859
 
827 860
 		// No need to do this part again if we already did it once
828
-		if (is_null($unsupportedFormats))
829
-			$unsupportedFormats = (array) cache_get_data('unsupportedtimeformats', 86400);
861
+		if (is_null($unsupportedFormats)) {
862
+					$unsupportedFormats = (array) cache_get_data('unsupportedtimeformats', 86400);
863
+		}
830 864
 		if (empty($unsupportedFormats))
831 865
 		{
832 866
 			foreach($strftimeFormatSubstitutions as $format => $substitution)
@@ -842,20 +876,23 @@  discard block
 block discarded – undo
842 876
 
843 877
 				// Windows will return false for unsupported formats
844 878
 				// Other operating systems return the format string as a literal
845
-				if ($value === false || $value === $format)
846
-					$unsupportedFormats[] = $format;
879
+				if ($value === false || $value === $format) {
880
+									$unsupportedFormats[] = $format;
881
+				}
847 882
 			}
848 883
 			cache_put_data('unsupportedtimeformats', $unsupportedFormats, 86400);
849 884
 		}
850 885
 
851 886
 		// Windows needs extra help if $timeformat contains something completely invalid, e.g. '%Q'
852
-		if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
853
-			$timeformat = preg_replace('~%(?!' . implode('|', array_keys($strftimeFormatSubstitutions)) . ')~', '&#37;', $timeformat);
887
+		if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
888
+					$timeformat = preg_replace('~%(?!' . implode('|', array_keys($strftimeFormatSubstitutions)) . ')~', '&#37;', $timeformat);
889
+		}
854 890
 
855 891
 		// Substitute unsupported formats with supported ones
856
-		if (!empty($unsupportedFormats))
857
-			while (preg_match('~%(' . implode('|', $unsupportedFormats) . ')~', $timeformat, $matches))
892
+		if (!empty($unsupportedFormats)) {
893
+					while (preg_match('~%(' . implode('|', $unsupportedFormats) . ')~', $timeformat, $matches))
858 894
 				$timeformat = str_replace($matches[0], $strftimeFormatSubstitutions[$matches[1]], $timeformat);
895
+		}
859 896
 
860 897
 		// Remember this so we don't need to do it again
861 898
 		$finalizedFormats[$str] = $timeformat;
@@ -864,33 +901,39 @@  discard block
 block discarded – undo
864 901
 
865 902
 	$str = $finalizedFormats[$str];
866 903
 
867
-	if (!isset($locale_cache))
868
-		$locale_cache = setlocale(LC_TIME, $txt['lang_locale'] . !empty($modSettings['global_character_set']) ? '.' . $modSettings['global_character_set'] : '');
904
+	if (!isset($locale_cache)) {
905
+			$locale_cache = setlocale(LC_TIME, $txt['lang_locale'] . !empty($modSettings['global_character_set']) ? '.' . $modSettings['global_character_set'] : '');
906
+	}
869 907
 
870 908
 	if ($locale_cache !== false)
871 909
 	{
872 910
 		// Check if another process changed the locale
873
-		if ($process_safe === true && setlocale(LC_TIME, '0') != $locale_cache)
874
-			setlocale(LC_TIME, $txt['lang_locale'] . !empty($modSettings['global_character_set']) ? '.' . $modSettings['global_character_set'] : '');
911
+		if ($process_safe === true && setlocale(LC_TIME, '0') != $locale_cache) {
912
+					setlocale(LC_TIME, $txt['lang_locale'] . !empty($modSettings['global_character_set']) ? '.' . $modSettings['global_character_set'] : '');
913
+		}
875 914
 
876
-		if (!isset($non_twelve_hour))
877
-			$non_twelve_hour = trim(strftime('%p')) === '';
878
-		if ($non_twelve_hour && strpos($str, '%p') !== false)
879
-			$str = str_replace('%p', (strftime('%H', $time) < 12 ? $txt['time_am'] : $txt['time_pm']), $str);
915
+		if (!isset($non_twelve_hour)) {
916
+					$non_twelve_hour = trim(strftime('%p')) === '';
917
+		}
918
+		if ($non_twelve_hour && strpos($str, '%p') !== false) {
919
+					$str = str_replace('%p', (strftime('%H', $time) < 12 ? $txt['time_am'] : $txt['time_pm']), $str);
920
+		}
880 921
 
881
-		foreach (array('%a', '%A', '%b', '%B') as $token)
882
-			if (strpos($str, $token) !== false)
922
+		foreach (array('%a', '%A', '%b', '%B') as $token) {
923
+					if (strpos($str, $token) !== false)
883 924
 				$str = str_replace($token, strftime($token, $time), $str);
884
-	}
885
-	else
925
+		}
926
+	} else
886 927
 	{
887 928
 		// Do-it-yourself time localization.  Fun.
888
-		foreach (array('%a' => 'days_short', '%A' => 'days', '%b' => 'months_short', '%B' => 'months') as $token => $text_label)
889
-			if (strpos($str, $token) !== false)
929
+		foreach (array('%a' => 'days_short', '%A' => 'days', '%b' => 'months_short', '%B' => 'months') as $token => $text_label) {
930
+					if (strpos($str, $token) !== false)
890 931
 				$str = str_replace($token, $txt[$text_label][(int) strftime($token === '%a' || $token === '%A' ? '%w' : '%m', $time)], $str);
932
+		}
891 933
 
892
-		if (strpos($str, '%p') !== false)
893
-			$str = str_replace('%p', (strftime('%H', $time) < 12 ? $txt['time_am'] : $txt['time_pm']), $str);
934
+		if (strpos($str, '%p') !== false) {
935
+					$str = str_replace('%p', (strftime('%H', $time) < 12 ? $txt['time_am'] : $txt['time_pm']), $str);
936
+		}
894 937
 	}
895 938
 
896 939
 	// Format the time and then restore any literal percent characters
@@ -913,16 +956,19 @@  discard block
 block discarded – undo
913 956
 	static $translation = array();
914 957
 
915 958
 	// Determine the character set... Default to UTF-8
916
-	if (empty($context['character_set']))
917
-		$charset = 'UTF-8';
959
+	if (empty($context['character_set'])) {
960
+			$charset = 'UTF-8';
961
+	}
918 962
 	// Use ISO-8859-1 in place of non-supported ISO-8859 charsets...
919
-	elseif (strpos($context['character_set'], 'ISO-8859-') !== false && !in_array($context['character_set'], array('ISO-8859-5', 'ISO-8859-15')))
920
-		$charset = 'ISO-8859-1';
921
-	else
922
-		$charset = $context['character_set'];
963
+	elseif (strpos($context['character_set'], 'ISO-8859-') !== false && !in_array($context['character_set'], array('ISO-8859-5', 'ISO-8859-15'))) {
964
+			$charset = 'ISO-8859-1';
965
+	} else {
966
+			$charset = $context['character_set'];
967
+	}
923 968
 
924
-	if (empty($translation))
925
-		$translation = array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES, $charset)) + array('&#039;' => '\'', '&#39;' => '\'', '&nbsp;' => ' ');
969
+	if (empty($translation)) {
970
+			$translation = array_flip(get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES, $charset)) + array('&#039;' => '\'', '&#39;' => '\'', '&nbsp;' => ' ');
971
+	}
926 972
 
927 973
 	return strtr($string, $translation);
928 974
 }
@@ -944,8 +990,9 @@  discard block
 block discarded – undo
944 990
 	global $smcFunc;
945 991
 
946 992
 	// It was already short enough!
947
-	if ($smcFunc['strlen']($subject) <= $len)
948
-		return $subject;
993
+	if ($smcFunc['strlen']($subject) <= $len) {
994
+			return $subject;
995
+	}
949 996
 
950 997
 	// Shorten it by the length it was too long, and strip off junk from the end.
951 998
 	return $smcFunc['substr']($subject, 0, $len) . '...';
@@ -964,10 +1011,11 @@  discard block
 block discarded – undo
964 1011
 {
965 1012
 	global $user_info, $modSettings;
966 1013
 
967
-	if ($timestamp === null)
968
-		$timestamp = time();
969
-	elseif ($timestamp == 0)
970
-		return 0;
1014
+	if ($timestamp === null) {
1015
+			$timestamp = time();
1016
+	} elseif ($timestamp == 0) {
1017
+			return 0;
1018
+	}
971 1019
 
972 1020
 	return $timestamp + ($modSettings['time_offset'] + ($use_user_offset ? $user_info['time_offset'] : 0)) * 3600;
973 1021
 }
@@ -996,8 +1044,9 @@  discard block
 block discarded – undo
996 1044
 		$array[$i] = $array[$j];
997 1045
 		$array[$j] = $temp;
998 1046
 
999
-		for ($i = 1; $p[$i] == 0; $i++)
1000
-			$p[$i] = 1;
1047
+		for ($i = 1; $p[$i] == 0; $i++) {
1048
+					$p[$i] = 1;
1049
+		}
1001 1050
 
1002 1051
 		$orders[] = $array;
1003 1052
 	}
@@ -1029,12 +1078,14 @@  discard block
 block discarded – undo
1029 1078
 	static $disabled;
1030 1079
 
1031 1080
 	// Don't waste cycles
1032
-	if ($message === '')
1033
-		return '';
1081
+	if ($message === '') {
1082
+			return '';
1083
+	}
1034 1084
 
1035 1085
 	// Just in case it wasn't determined yet whether UTF-8 is enabled.
1036
-	if (!isset($context['utf8']))
1037
-		$context['utf8'] = (empty($modSettings['global_character_set']) ? $txt['lang_character_set'] : $modSettings['global_character_set']) === 'UTF-8';
1086
+	if (!isset($context['utf8'])) {
1087
+			$context['utf8'] = (empty($modSettings['global_character_set']) ? $txt['lang_character_set'] : $modSettings['global_character_set']) === 'UTF-8';
1088
+	}
1038 1089
 
1039 1090
 	// Clean up any cut/paste issues we may have
1040 1091
 	$message = sanitizeMSCutPaste($message);
@@ -1046,13 +1097,15 @@  discard block
 block discarded – undo
1046 1097
 		return $message;
1047 1098
 	}
1048 1099
 
1049
-	if ($smileys !== null && ($smileys == '1' || $smileys == '0'))
1050
-		$smileys = (bool) $smileys;
1100
+	if ($smileys !== null && ($smileys == '1' || $smileys == '0')) {
1101
+			$smileys = (bool) $smileys;
1102
+	}
1051 1103
 
1052 1104
 	if (empty($modSettings['enableBBC']) && $message !== false)
1053 1105
 	{
1054
-		if ($smileys === true)
1055
-			parsesmileys($message);
1106
+		if ($smileys === true) {
1107
+					parsesmileys($message);
1108
+		}
1056 1109
 
1057 1110
 		return $message;
1058 1111
 	}
@@ -1065,8 +1118,9 @@  discard block
 block discarded – undo
1065 1118
 	}
1066 1119
 
1067 1120
 	// Ensure $modSettings['tld_regex'] contains a valid regex for the autolinker
1068
-	if (!empty($modSettings['autoLinkUrls']))
1069
-		set_tld_regex();
1121
+	if (!empty($modSettings['autoLinkUrls'])) {
1122
+			set_tld_regex();
1123
+	}
1070 1124
 
1071 1125
 	// Allow mods access before entering the main parse_bbc loop
1072 1126
 	call_integration_hook('integrate_pre_parsebbc', array(&$message, &$smileys, &$cache_id, &$parse_tags));
@@ -1080,8 +1134,9 @@  discard block
 block discarded – undo
1080 1134
 
1081 1135
 			$temp = explode(',', strtolower($modSettings['disabledBBC']));
1082 1136
 
1083
-			foreach ($temp as $tag)
1084
-				$disabled[trim($tag)] = true;
1137
+			foreach ($temp as $tag) {
1138
+							$disabled[trim($tag)] = true;
1139
+			}
1085 1140
 		}
1086 1141
 
1087 1142
 		/* The following bbc are formatted as an array, with keys as follows:
@@ -1211,8 +1266,9 @@  discard block
 block discarded – undo
1211 1266
 					$returnContext = '';
1212 1267
 
1213 1268
 					// BBC or the entire attachments feature is disabled
1214
-					if (empty($modSettings['attachmentEnable']) || !empty($disabled['attach']))
1215
-						return $data;
1269
+					if (empty($modSettings['attachmentEnable']) || !empty($disabled['attach'])) {
1270
+											return $data;
1271
+					}
1216 1272
 
1217 1273
 					// Save the attach ID.
1218 1274
 					$attachID = $data;
@@ -1223,8 +1279,9 @@  discard block
 block discarded – undo
1223 1279
 					$currentAttachment = parseAttachBBC($attachID);
1224 1280
 
1225 1281
 					// parseAttachBBC will return a string ($txt key) rather than dying with a fatal_error. Up to you to decide what to do.
1226
-					if (is_string($currentAttachment))
1227
-						return $data = !empty($txt[$currentAttachment]) ? $txt[$currentAttachment] : $currentAttachment;
1282
+					if (is_string($currentAttachment)) {
1283
+											return $data = !empty($txt[$currentAttachment]) ? $txt[$currentAttachment] : $currentAttachment;
1284
+					}
1228 1285
 
1229 1286
 					if (!empty($currentAttachment['is_image']))
1230 1287
 					{
@@ -1240,15 +1297,17 @@  discard block
 block discarded – undo
1240 1297
 							$height = ' height="' . $currentAttachment['height'] . '"';
1241 1298
 						}
1242 1299
 
1243
-						if ($currentAttachment['thumbnail']['has_thumb'] && empty($params['{width}']) && empty($params['{height}']))
1244
-							$returnContext .= '<a href="'. $currentAttachment['href']. ';image" id="link_'. $currentAttachment['id']. '" onclick="'. $currentAttachment['thumbnail']['javascript']. '"><img src="'. $currentAttachment['thumbnail']['href']. '"' . $alt . $title . ' id="thumb_'. $currentAttachment['id']. '" class="atc_img"></a>';
1245
-						else
1246
-							$returnContext .= '<img src="' . $currentAttachment['href'] . ';image"' . $alt . $title . $width . $height . ' class="bbc_img"/>';
1300
+						if ($currentAttachment['thumbnail']['has_thumb'] && empty($params['{width}']) && empty($params['{height}'])) {
1301
+													$returnContext .= '<a href="'. $currentAttachment['href']. ';image" id="link_'. $currentAttachment['id']. '" onclick="'. $currentAttachment['thumbnail']['javascript']. '"><img src="'. $currentAttachment['thumbnail']['href']. '"' . $alt . $title . ' id="thumb_'. $currentAttachment['id']. '" class="atc_img"></a>';
1302
+						} else {
1303
+													$returnContext .= '<img src="' . $currentAttachment['href'] . ';image"' . $alt . $title . $width . $height . ' class="bbc_img"/>';
1304
+						}
1247 1305
 					}
1248 1306
 
1249 1307
 					// No image. Show a link.
1250
-					else
1251
-						$returnContext .= $currentAttachment['link'];
1308
+					else {
1309
+											$returnContext .= $currentAttachment['link'];
1310
+					}
1252 1311
 
1253 1312
 					// Gotta append what we just did.
1254 1313
 					$data = $returnContext;
@@ -1302,8 +1361,9 @@  discard block
 block discarded – undo
1302 1361
 						for ($php_i = 0, $php_n = count($php_parts); $php_i < $php_n; $php_i++)
1303 1362
 						{
1304 1363
 							// Do PHP code coloring?
1305
-							if ($php_parts[$php_i] != '&lt;?php')
1306
-								continue;
1364
+							if ($php_parts[$php_i] != '&lt;?php') {
1365
+															continue;
1366
+							}
1307 1367
 
1308 1368
 							$php_string = '';
1309 1369
 							while ($php_i + 1 < count($php_parts) && $php_parts[$php_i] != '?&gt;')
@@ -1319,8 +1379,9 @@  discard block
 block discarded – undo
1319 1379
 						$data = str_replace("\t", "<span style=\"white-space: pre;\">\t</span>", $data);
1320 1380
 
1321 1381
 						// Recent Opera bug requiring temporary fix. &nsbp; is needed before </code> to avoid broken selection.
1322
-						if ($context['browser']['is_opera'])
1323
-							$data .= '&nbsp;';
1382
+						if ($context['browser']['is_opera']) {
1383
+													$data .= '&nbsp;';
1384
+						}
1324 1385
 					}
1325 1386
 				},
1326 1387
 				'block_level' => true,
@@ -1339,8 +1400,9 @@  discard block
 block discarded – undo
1339 1400
 						for ($php_i = 0, $php_n = count($php_parts); $php_i < $php_n; $php_i++)
1340 1401
 						{
1341 1402
 							// Do PHP code coloring?
1342
-							if ($php_parts[$php_i] != '&lt;?php')
1343
-								continue;
1403
+							if ($php_parts[$php_i] != '&lt;?php') {
1404
+															continue;
1405
+							}
1344 1406
 
1345 1407
 							$php_string = '';
1346 1408
 							while ($php_i + 1 < count($php_parts) && $php_parts[$php_i] != '?&gt;')
@@ -1356,8 +1418,9 @@  discard block
 block discarded – undo
1356 1418
 						$data[0] = str_replace("\t", "<span style=\"white-space: pre;\">\t</span>", $data[0]);
1357 1419
 
1358 1420
 						// Recent Opera bug requiring temporary fix. &nsbp; is needed before </code> to avoid broken selection.
1359
-						if ($context['browser']['is_opera'])
1360
-							$data[0] .= '&nbsp;';
1421
+						if ($context['browser']['is_opera']) {
1422
+													$data[0] .= '&nbsp;';
1423
+						}
1361 1424
 					}
1362 1425
 				},
1363 1426
 				'block_level' => true,
@@ -1398,10 +1461,11 @@  discard block
 block discarded – undo
1398 1461
 				{
1399 1462
 					$class = 'class="bbc_float float' . (strpos($data, 'left') === 0 ? 'left' : 'right') . '"';
1400 1463
 
1401
-					if (preg_match('~\bmax=(\d+(?:%|px|em|rem|ex|pt|pc|ch|vw|vh|vmin|vmax|cm|mm|in)?)~', $data, $matches))
1402
-						$css = ' style="max-width:' . $matches[1] . (is_numeric($matches[1]) ? 'px' : '') . '"';
1403
-					else
1404
-						$css = '';
1464
+					if (preg_match('~\bmax=(\d+(?:%|px|em|rem|ex|pt|pc|ch|vw|vh|vmin|vmax|cm|mm|in)?)~', $data, $matches)) {
1465
+											$css = ' style="max-width:' . $matches[1] . (is_numeric($matches[1]) ? 'px' : '') . '"';
1466
+					} else {
1467
+											$css = '';
1468
+					}
1405 1469
 
1406 1470
 					$data = $class . $css;
1407 1471
 				},
@@ -1416,8 +1480,9 @@  discard block
 block discarded – undo
1416 1480
 				{
1417 1481
 					$data = strtr($data, array('<br />' => ''));
1418 1482
 
1419
-					if (strpos($data, 'ftp://') !== 0 && strpos($data, 'ftps://') !== 0)
1420
-						$data = 'ftp://' . $data;
1483
+					if (strpos($data, 'ftp://') !== 0 && strpos($data, 'ftps://') !== 0) {
1484
+											$data = 'ftp://' . $data;
1485
+					}
1421 1486
 				},
1422 1487
 			),
1423 1488
 			array(
@@ -1427,8 +1492,9 @@  discard block
 block discarded – undo
1427 1492
 				'after' => '</a>',
1428 1493
 				'validate' => function(&$tag, &$data, $disabled)
1429 1494
 				{
1430
-					if (strpos($data, 'ftp://') !== 0 && strpos($data, 'ftps://') !== 0)
1431
-						$data = 'ftp://' . $data;
1495
+					if (strpos($data, 'ftp://') !== 0 && strpos($data, 'ftps://') !== 0) {
1496
+											$data = 'ftp://' . $data;
1497
+					}
1432 1498
 				},
1433 1499
 				'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
1434 1500
 				'disabled_after' => ' ($1)',
@@ -1488,17 +1554,20 @@  discard block
 block discarded – undo
1488 1554
 					$scheme = parse_url($data, PHP_URL_SCHEME);
1489 1555
 					if ($image_proxy_enabled)
1490 1556
 					{
1491
-						if (!empty($user_info['possibly_robot']))
1492
-							return;
1557
+						if (!empty($user_info['possibly_robot'])) {
1558
+													return;
1559
+						}
1493 1560
 
1494
-						if (empty($scheme))
1495
-							$data = 'http://' . ltrim($data, ':/');
1561
+						if (empty($scheme)) {
1562
+													$data = 'http://' . ltrim($data, ':/');
1563
+						}
1496 1564
 
1497
-						if ($scheme != 'https')
1498
-							$data = get_proxied_url($data);
1565
+						if ($scheme != 'https') {
1566
+													$data = get_proxied_url($data);
1567
+						}
1568
+					} elseif (empty($scheme)) {
1569
+											$data = '//' . ltrim($data, ':/');
1499 1570
 					}
1500
-					elseif (empty($scheme))
1501
-						$data = '//' . ltrim($data, ':/');
1502 1571
 				},
1503 1572
 				'disabled_content' => '($1)',
1504 1573
 			),
@@ -1514,17 +1583,20 @@  discard block
 block discarded – undo
1514 1583
 					$scheme = parse_url($data, PHP_URL_SCHEME);
1515 1584
 					if ($image_proxy_enabled)
1516 1585
 					{
1517
-						if (!empty($user_info['possibly_robot']))
1518
-							return;
1586
+						if (!empty($user_info['possibly_robot'])) {
1587
+													return;
1588
+						}
1519 1589
 
1520
-						if (empty($scheme))
1521
-							$data = 'http://' . ltrim($data, ':/');
1590
+						if (empty($scheme)) {
1591
+													$data = 'http://' . ltrim($data, ':/');
1592
+						}
1522 1593
 
1523
-						if ($scheme != 'https')
1524
-							$data = get_proxied_url($data);
1594
+						if ($scheme != 'https') {
1595
+													$data = get_proxied_url($data);
1596
+						}
1597
+					} elseif (empty($scheme)) {
1598
+											$data = '//' . ltrim($data, ':/');
1525 1599
 					}
1526
-					elseif (empty($scheme))
1527
-						$data = '//' . ltrim($data, ':/');
1528 1600
 				},
1529 1601
 				'disabled_content' => '($1)',
1530 1602
 			),
@@ -1536,8 +1608,9 @@  discard block
 block discarded – undo
1536 1608
 				{
1537 1609
 					$data = strtr($data, array('<br>' => ''));
1538 1610
 					$scheme = parse_url($data, PHP_URL_SCHEME);
1539
-					if (empty($scheme))
1540
-						$data = '//' . ltrim($data, ':/');
1611
+					if (empty($scheme)) {
1612
+											$data = '//' . ltrim($data, ':/');
1613
+					}
1541 1614
 				},
1542 1615
 			),
1543 1616
 			array(
@@ -1548,13 +1621,14 @@  discard block
 block discarded – undo
1548 1621
 				'after' => '</a>',
1549 1622
 				'validate' => function (&$tag, &$data, $disabled)
1550 1623
 				{
1551
-					if (substr($data, 0, 1) == '#')
1552
-						$data = '#post_' . substr($data, 1);
1553
-					else
1624
+					if (substr($data, 0, 1) == '#') {
1625
+											$data = '#post_' . substr($data, 1);
1626
+					} else
1554 1627
 					{
1555 1628
 						$scheme = parse_url($data, PHP_URL_SCHEME);
1556
-						if (empty($scheme))
1557
-							$data = '//' . ltrim($data, ':/');
1629
+						if (empty($scheme)) {
1630
+													$data = '//' . ltrim($data, ':/');
1631
+						}
1558 1632
 					}
1559 1633
 				},
1560 1634
 				'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
@@ -1645,8 +1719,9 @@  discard block
 block discarded – undo
1645 1719
 					{
1646 1720
 						$add_begin = substr(trim($data), 0, 5) != '&lt;?';
1647 1721
 						$data = highlight_php_code($add_begin ? '&lt;?php ' . $data . '?&gt;' : $data);
1648
-						if ($add_begin)
1649
-							$data = preg_replace(array('~^(.+?)&lt;\?.{0,40}?php(?:&nbsp;|\s)~', '~\?&gt;((?:</(font|span)>)*)$~'), '$1', $data, 2);
1722
+						if ($add_begin) {
1723
+													$data = preg_replace(array('~^(.+?)&lt;\?.{0,40}?php(?:&nbsp;|\s)~', '~\?&gt;((?:</(font|span)>)*)$~'), '$1', $data, 2);
1724
+						}
1650 1725
 					}
1651 1726
 				},
1652 1727
 				'block_level' => false,
@@ -1759,20 +1834,17 @@  discard block
 block discarded – undo
1759 1834
 					: function(&$tag, &$data, $disabled)
1760 1835
 					{
1761 1836
 
1762
-						if ($data[1] == 'top' || (is_numeric($data[1]) && $data[1] < 50))
1763
-							$data[1] = '0 -2px 1px';
1764
-
1765
-						elseif ($data[1] == 'right' || (is_numeric($data[1]) && $data[1] < 100))
1766
-							$data[1] = '2px 0 1px';
1767
-
1768
-						elseif ($data[1] == 'bottom' || (is_numeric($data[1]) && $data[1] < 190))
1769
-							$data[1] = '0 2px 1px';
1770
-
1771
-						elseif ($data[1] == 'left' || (is_numeric($data[1]) && $data[1] < 280))
1772
-							$data[1] = '-2px 0 1px';
1773
-
1774
-						else
1775
-							$data[1] = '1px 1px 1px';
1837
+						if ($data[1] == 'top' || (is_numeric($data[1]) && $data[1] < 50)) {
1838
+													$data[1] = '0 -2px 1px';
1839
+						} elseif ($data[1] == 'right' || (is_numeric($data[1]) && $data[1] < 100)) {
1840
+													$data[1] = '2px 0 1px';
1841
+						} elseif ($data[1] == 'bottom' || (is_numeric($data[1]) && $data[1] < 190)) {
1842
+													$data[1] = '0 2px 1px';
1843
+						} elseif ($data[1] == 'left' || (is_numeric($data[1]) && $data[1] < 280)) {
1844
+													$data[1] = '-2px 0 1px';
1845
+						} else {
1846
+													$data[1] = '1px 1px 1px';
1847
+						}
1776 1848
 					},
1777 1849
 			),
1778 1850
 			array(
@@ -1828,10 +1900,11 @@  discard block
 block discarded – undo
1828 1900
 				'content' => '$1',
1829 1901
 				'validate' => function (&$tag, &$data, $disabled)
1830 1902
 				{
1831
-					if (is_numeric($data))
1832
-						$data = timeformat($data);
1833
-					else
1834
-						$tag['content'] = '[time]$1[/time]';
1903
+					if (is_numeric($data)) {
1904
+											$data = timeformat($data);
1905
+					} else {
1906
+											$tag['content'] = '[time]$1[/time]';
1907
+					}
1835 1908
 				},
1836 1909
 			),
1837 1910
 			array(
@@ -1863,8 +1936,9 @@  discard block
 block discarded – undo
1863 1936
 				{
1864 1937
 					$data = strtr($data, array('<br>' => ''));
1865 1938
 					$scheme = parse_url($data, PHP_URL_SCHEME);
1866
-					if (empty($scheme))
1867
-						$data = '//' . ltrim($data, ':/');
1939
+					if (empty($scheme)) {
1940
+											$data = '//' . ltrim($data, ':/');
1941
+					}
1868 1942
 				},
1869 1943
 			),
1870 1944
 			array(
@@ -1876,8 +1950,9 @@  discard block
 block discarded – undo
1876 1950
 				'validate' => function (&$tag, &$data, $disabled)
1877 1951
 				{
1878 1952
 					$scheme = parse_url($data, PHP_URL_SCHEME);
1879
-					if (empty($scheme))
1880
-						$data = '//' . ltrim($data, ':/');
1953
+					if (empty($scheme)) {
1954
+											$data = '//' . ltrim($data, ':/');
1955
+					}
1881 1956
 				},
1882 1957
 				'disallow_children' => array('email', 'ftp', 'url', 'iurl'),
1883 1958
 				'disabled_after' => ' ($1)',
@@ -1904,12 +1979,13 @@  discard block
 block discarded – undo
1904 1979
 		);
1905 1980
 
1906 1981
 		// Handle legacy bbc codes.
1907
-		foreach ($context['legacy_bbc'] as $bbc)
1908
-			$codes[] = array(
1982
+		foreach ($context['legacy_bbc'] as $bbc) {
1983
+					$codes[] = array(
1909 1984
 				'tag' => $bbc,
1910 1985
 				'before' => '',
1911 1986
 				'after' => '',
1912 1987
 			);
1988
+		}
1913 1989
 
1914 1990
 		// Let mods add new BBC without hassle.
1915 1991
 		call_integration_hook('integrate_bbc_codes', array(&$codes, &$no_autolink_tags));
@@ -1917,8 +1993,9 @@  discard block
 block discarded – undo
1917 1993
 		// This is mainly for the bbc manager, so it's easy to add tags above.  Custom BBC should be added above this line.
1918 1994
 		if ($message === false)
1919 1995
 		{
1920
-			if (isset($temp_bbc))
1921
-				$bbc_codes = $temp_bbc;
1996
+			if (isset($temp_bbc)) {
1997
+							$bbc_codes = $temp_bbc;
1998
+			}
1922 1999
 			usort($codes, function ($a, $b) {
1923 2000
 				return strcmp($a['tag'], $b['tag']);
1924 2001
 			});
@@ -1938,8 +2015,9 @@  discard block
 block discarded – undo
1938 2015
 		);
1939 2016
 		if (!isset($disabled['li']) && !isset($disabled['list']))
1940 2017
 		{
1941
-			foreach ($itemcodes as $c => $dummy)
1942
-				$bbc_codes[$c] = array();
2018
+			foreach ($itemcodes as $c => $dummy) {
2019
+							$bbc_codes[$c] = array();
2020
+			}
1943 2021
 		}
1944 2022
 
1945 2023
 		// Shhhh!
@@ -1960,12 +2038,14 @@  discard block
 block discarded – undo
1960 2038
 		foreach ($codes as $code)
1961 2039
 		{
1962 2040
 			// Make it easier to process parameters later
1963
-			if (!empty($code['parameters']))
1964
-				ksort($code['parameters'], SORT_STRING);
2041
+			if (!empty($code['parameters'])) {
2042
+							ksort($code['parameters'], SORT_STRING);
2043
+			}
1965 2044
 
1966 2045
 			// If we are not doing every tag only do ones we are interested in.
1967
-			if (empty($parse_tags) || in_array($code['tag'], $parse_tags))
1968
-				$bbc_codes[substr($code['tag'], 0, 1)][] = $code;
2046
+			if (empty($parse_tags) || in_array($code['tag'], $parse_tags)) {
2047
+							$bbc_codes[substr($code['tag'], 0, 1)][] = $code;
2048
+			}
1969 2049
 		}
1970 2050
 		$codes = null;
1971 2051
 	}
@@ -1976,8 +2056,9 @@  discard block
 block discarded – undo
1976 2056
 		// It's likely this will change if the message is modified.
1977 2057
 		$cache_key = 'parse:' . $cache_id . '-' . md5(md5($message) . '-' . $smileys . (empty($disabled) ? '' : implode(',', array_keys($disabled))) . $smcFunc['json_encode']($context['browser']) . $txt['lang_locale'] . $user_info['time_offset'] . $user_info['time_format']);
1978 2058
 
1979
-		if (($temp = cache_get_data($cache_key, 240)) != null)
1980
-			return $temp;
2059
+		if (($temp = cache_get_data($cache_key, 240)) != null) {
2060
+					return $temp;
2061
+		}
1981 2062
 
1982 2063
 		$cache_t = microtime();
1983 2064
 	}
@@ -2009,8 +2090,9 @@  discard block
 block discarded – undo
2009 2090
 		$disabled['flash'] = true;
2010 2091
 
2011 2092
 		// @todo Change maybe?
2012
-		if (!isset($_GET['images']))
2013
-			$disabled['img'] = true;
2093
+		if (!isset($_GET['images'])) {
2094
+					$disabled['img'] = true;
2095
+		}
2014 2096
 
2015 2097
 		// @todo Interface/setting to add more?
2016 2098
 	}
@@ -2021,8 +2103,9 @@  discard block
 block discarded – undo
2021 2103
 	$alltags = array();
2022 2104
 	foreach ($bbc_codes as $section)
2023 2105
 	{
2024
-		foreach ($section as $code)
2025
-			$alltags[] = $code['tag'];
2106
+		foreach ($section as $code) {
2107
+					$alltags[] = $code['tag'];
2108
+		}
2026 2109
 	}
2027 2110
 	$alltags_regex = '\b' . implode("\b|\b", array_unique($alltags)) . '\b';
2028 2111
 
@@ -2034,8 +2117,9 @@  discard block
 block discarded – undo
2034 2117
 		$pos = isset($matches[0][1]) ? $matches[0][1] : false;
2035 2118
 
2036 2119
 		// Failsafe.
2037
-		if ($pos === false || $last_pos > $pos)
2038
-			$pos = strlen($message) + 1;
2120
+		if ($pos === false || $last_pos > $pos) {
2121
+					$pos = strlen($message) + 1;
2122
+		}
2039 2123
 
2040 2124
 		// Can't have a one letter smiley, URL, or email! (sorry.)
2041 2125
 		if ($last_pos < $pos - 1)
@@ -2053,8 +2137,9 @@  discard block
 block discarded – undo
2053 2137
 
2054 2138
 				// <br> should be empty.
2055 2139
 				$empty_tags = array('br', 'hr');
2056
-				foreach ($empty_tags as $tag)
2057
-					$data = str_replace(array('&lt;' . $tag . '&gt;', '&lt;' . $tag . '/&gt;', '&lt;' . $tag . ' /&gt;'), '<' . $tag . '>', $data);
2140
+				foreach ($empty_tags as $tag) {
2141
+									$data = str_replace(array('&lt;' . $tag . '&gt;', '&lt;' . $tag . '/&gt;', '&lt;' . $tag . ' /&gt;'), '<' . $tag . '>', $data);
2142
+				}
2058 2143
 
2059 2144
 				// b, u, i, s, pre... basic tags.
2060 2145
 				$closable_tags = array('b', 'u', 'i', 's', 'em', 'ins', 'del', 'pre', 'blockquote', 'strong');
@@ -2063,8 +2148,9 @@  discard block
 block discarded – undo
2063 2148
 					$diff = substr_count($data, '&lt;' . $tag . '&gt;') - substr_count($data, '&lt;/' . $tag . '&gt;');
2064 2149
 					$data = strtr($data, array('&lt;' . $tag . '&gt;' => '<' . $tag . '>', '&lt;/' . $tag . '&gt;' => '</' . $tag . '>'));
2065 2150
 
2066
-					if ($diff > 0)
2067
-						$data = substr($data, 0, -1) . str_repeat('</' . $tag . '>', $diff) . substr($data, -1);
2151
+					if ($diff > 0) {
2152
+											$data = substr($data, 0, -1) . str_repeat('</' . $tag . '>', $diff) . substr($data, -1);
2153
+					}
2068 2154
 				}
2069 2155
 
2070 2156
 				// Do <img ...> - with security... action= -> action-.
@@ -2077,8 +2163,9 @@  discard block
 block discarded – undo
2077 2163
 						$alt = empty($matches[3][$match]) ? '' : ' alt=' . preg_replace('~^&quot;|&quot;$~', '', $matches[3][$match]);
2078 2164
 
2079 2165
 						// Remove action= from the URL - no funny business, now.
2080
-						if (preg_match('~action(=|%3d)(?!dlattach)~i', $imgtag) != 0)
2081
-							$imgtag = preg_replace('~action(?:=|%3d)(?!dlattach)~i', 'action-', $imgtag);
2166
+						if (preg_match('~action(=|%3d)(?!dlattach)~i', $imgtag) != 0) {
2167
+													$imgtag = preg_replace('~action(?:=|%3d)(?!dlattach)~i', 'action-', $imgtag);
2168
+						}
2082 2169
 
2083 2170
 						$replaces[$matches[0][$match]] = '[img' . $alt . ']' . $imgtag . '[/img]';
2084 2171
 					}
@@ -2093,16 +2180,18 @@  discard block
 block discarded – undo
2093 2180
 				$no_autolink_area = false;
2094 2181
 				if (!empty($open_tags))
2095 2182
 				{
2096
-					foreach ($open_tags as $open_tag)
2097
-						if (in_array($open_tag['tag'], $no_autolink_tags))
2183
+					foreach ($open_tags as $open_tag) {
2184
+											if (in_array($open_tag['tag'], $no_autolink_tags))
2098 2185
 							$no_autolink_area = true;
2186
+					}
2099 2187
 				}
2100 2188
 
2101 2189
 				// Don't go backwards.
2102 2190
 				// @todo Don't think is the real solution....
2103 2191
 				$lastAutoPos = isset($lastAutoPos) ? $lastAutoPos : 0;
2104
-				if ($pos < $lastAutoPos)
2105
-					$no_autolink_area = true;
2192
+				if ($pos < $lastAutoPos) {
2193
+									$no_autolink_area = true;
2194
+				}
2106 2195
 				$lastAutoPos = $pos;
2107 2196
 
2108 2197
 				if (!$no_autolink_area)
@@ -2207,29 +2296,33 @@  discard block
 block discarded – undo
2207 2296
 							$url = array_shift($matches);
2208 2297
 
2209 2298
 							// If this isn't a clean URL, bail out
2210
-							if ($url != sanitize_iri($url))
2211
-								return $url;
2299
+							if ($url != sanitize_iri($url)) {
2300
+															return $url;
2301
+							}
2212 2302
 
2213 2303
 							$scheme = parse_url($url, PHP_URL_SCHEME);
2214 2304
 
2215 2305
 							if ($scheme == 'mailto')
2216 2306
 							{
2217 2307
 								$email_address = str_replace('mailto:', '', $url);
2218
-								if (!isset($disabled['email']) && filter_var($email_address, FILTER_VALIDATE_EMAIL) !== false)
2219
-									return '[email=' . $email_address . ']' . $url . '[/email]';
2220
-								else
2221
-									return $url;
2308
+								if (!isset($disabled['email']) && filter_var($email_address, FILTER_VALIDATE_EMAIL) !== false) {
2309
+																	return '[email=' . $email_address . ']' . $url . '[/email]';
2310
+								} else {
2311
+																	return $url;
2312
+								}
2222 2313
 							}
2223 2314
 
2224 2315
 							// Are we linking a schemeless URL or naked domain name (e.g. "example.com")?
2225
-							if (empty($scheme))
2226
-								$fullUrl = '//' . ltrim($url, ':/');
2227
-							else
2228
-								$fullUrl = $url;
2316
+							if (empty($scheme)) {
2317
+															$fullUrl = '//' . ltrim($url, ':/');
2318
+							} else {
2319
+															$fullUrl = $url;
2320
+							}
2229 2321
 
2230 2322
 							// Make sure that $fullUrl really is valid
2231
-							if (validate_iri((strpos($fullUrl, '//') === 0 ? 'http:' : '' ) . $fullUrl) === false)
2232
-								return $url;
2323
+							if (validate_iri((strpos($fullUrl, '//') === 0 ? 'http:' : '' ) . $fullUrl) === false) {
2324
+															return $url;
2325
+							}
2233 2326
 
2234 2327
 							return '[url=&quot;' . str_replace(array('[', ']'), array('&#91;', '&#93;'), $fullUrl) . '&quot;]' . $url . '[/url]';
2235 2328
 						}, $data);
@@ -2278,22 +2371,25 @@  discard block
 block discarded – undo
2278 2371
 		}
2279 2372
 
2280 2373
 		// Are we there yet?  Are we there yet?
2281
-		if ($pos >= strlen($message) - 1)
2282
-			break;
2374
+		if ($pos >= strlen($message) - 1) {
2375
+					break;
2376
+		}
2283 2377
 
2284 2378
 		$tags = strtolower($message[$pos + 1]);
2285 2379
 
2286 2380
 		if ($tags == '/' && !empty($open_tags))
2287 2381
 		{
2288 2382
 			$pos2 = strpos($message, ']', $pos + 1);
2289
-			if ($pos2 == $pos + 2)
2290
-				continue;
2383
+			if ($pos2 == $pos + 2) {
2384
+							continue;
2385
+			}
2291 2386
 
2292 2387
 			$look_for = strtolower(substr($message, $pos + 2, $pos2 - $pos - 2));
2293 2388
 
2294 2389
 			// A closing tag that doesn't match any open tags? Skip it.
2295
-			if (!in_array($look_for, array_map(function($code){return $code['tag'];}, $open_tags)))
2296
-				continue;
2390
+			if (!in_array($look_for, array_map(function($code){return $code['tag'];}, $open_tags))) {
2391
+							continue;
2392
+			}
2297 2393
 
2298 2394
 			$to_close = array();
2299 2395
 			$block_level = null;
@@ -2301,8 +2397,9 @@  discard block
 block discarded – undo
2301 2397
 			do
2302 2398
 			{
2303 2399
 				$tag = array_pop($open_tags);
2304
-				if (!$tag)
2305
-					break;
2400
+				if (!$tag) {
2401
+									break;
2402
+				}
2306 2403
 
2307 2404
 				if (!empty($tag['block_level']))
2308 2405
 				{
@@ -2316,10 +2413,11 @@  discard block
 block discarded – undo
2316 2413
 					// The idea is, if we are LOOKING for a block level tag, we can close them on the way.
2317 2414
 					if (strlen($look_for) > 0 && isset($bbc_codes[$look_for[0]]))
2318 2415
 					{
2319
-						foreach ($bbc_codes[$look_for[0]] as $temp)
2320
-							if ($temp['tag'] == $look_for)
2416
+						foreach ($bbc_codes[$look_for[0]] as $temp) {
2417
+													if ($temp['tag'] == $look_for)
2321 2418
 							{
2322 2419
 								$block_level = !empty($temp['block_level']);
2420
+						}
2323 2421
 								break;
2324 2422
 							}
2325 2423
 					}
@@ -2341,15 +2439,15 @@  discard block
 block discarded – undo
2341 2439
 			{
2342 2440
 				$open_tags = $to_close;
2343 2441
 				continue;
2344
-			}
2345
-			elseif (!empty($to_close) && $tag['tag'] != $look_for)
2442
+			} elseif (!empty($to_close) && $tag['tag'] != $look_for)
2346 2443
 			{
2347 2444
 				if ($block_level === null && isset($look_for[0], $bbc_codes[$look_for[0]]))
2348 2445
 				{
2349
-					foreach ($bbc_codes[$look_for[0]] as $temp)
2350
-						if ($temp['tag'] == $look_for)
2446
+					foreach ($bbc_codes[$look_for[0]] as $temp) {
2447
+											if ($temp['tag'] == $look_for)
2351 2448
 						{
2352 2449
 							$block_level = !empty($temp['block_level']);
2450
+					}
2353 2451
 							break;
2354 2452
 						}
2355 2453
 				}
@@ -2357,8 +2455,9 @@  discard block
 block discarded – undo
2357 2455
 				// We're not looking for a block level tag (or maybe even a tag that exists...)
2358 2456
 				if (!$block_level)
2359 2457
 				{
2360
-					foreach ($to_close as $tag)
2361
-						array_push($open_tags, $tag);
2458
+					foreach ($to_close as $tag) {
2459
+											array_push($open_tags, $tag);
2460
+					}
2362 2461
 					continue;
2363 2462
 				}
2364 2463
 			}
@@ -2371,14 +2470,17 @@  discard block
 block discarded – undo
2371 2470
 
2372 2471
 				// See the comment at the end of the big loop - just eating whitespace ;).
2373 2472
 				$whitespace_regex = '';
2374
-				if (!empty($tag['block_level']))
2375
-					$whitespace_regex .= '(&nbsp;|\s)*(<br>)?';
2473
+				if (!empty($tag['block_level'])) {
2474
+									$whitespace_regex .= '(&nbsp;|\s)*(<br>)?';
2475
+				}
2376 2476
 				// Trim one line of whitespace after unnested tags, but all of it after nested ones
2377
-				if (!empty($tag['trim']) && $tag['trim'] != 'inside')
2378
-					$whitespace_regex .= empty($tag['require_parents']) ? '(&nbsp;|\s)*' : '(<br>|&nbsp;|\s)*';
2477
+				if (!empty($tag['trim']) && $tag['trim'] != 'inside') {
2478
+									$whitespace_regex .= empty($tag['require_parents']) ? '(&nbsp;|\s)*' : '(<br>|&nbsp;|\s)*';
2479
+				}
2379 2480
 
2380
-				if (!empty($whitespace_regex) && preg_match('~' . $whitespace_regex . '~', substr($message, $pos), $matches) != 0)
2381
-					$message = substr($message, 0, $pos) . substr($message, $pos + strlen($matches[0]));
2481
+				if (!empty($whitespace_regex) && preg_match('~' . $whitespace_regex . '~', substr($message, $pos), $matches) != 0) {
2482
+									$message = substr($message, 0, $pos) . substr($message, $pos + strlen($matches[0]));
2483
+				}
2382 2484
 			}
2383 2485
 
2384 2486
 			if (!empty($to_close))
@@ -2391,8 +2493,9 @@  discard block
 block discarded – undo
2391 2493
 		}
2392 2494
 
2393 2495
 		// No tags for this character, so just keep going (fastest possible course.)
2394
-		if (!isset($bbc_codes[$tags]))
2395
-			continue;
2496
+		if (!isset($bbc_codes[$tags])) {
2497
+					continue;
2498
+		}
2396 2499
 
2397 2500
 		$inside = empty($open_tags) ? null : $open_tags[count($open_tags) - 1];
2398 2501
 		$tag = null;
@@ -2401,48 +2504,57 @@  discard block
 block discarded – undo
2401 2504
 			$pt_strlen = strlen($possible['tag']);
2402 2505
 
2403 2506
 			// Not a match?
2404
-			if (strtolower(substr($message, $pos + 1, $pt_strlen)) != $possible['tag'])
2405
-				continue;
2507
+			if (strtolower(substr($message, $pos + 1, $pt_strlen)) != $possible['tag']) {
2508
+							continue;
2509
+			}
2406 2510
 
2407 2511
 			$next_c = isset($message[$pos + 1 + $pt_strlen]) ? $message[$pos + 1 + $pt_strlen] : '';
2408 2512
 
2409 2513
 			// A tag is the last char maybe
2410
-			if ($next_c == '')
2411
-				break;
2514
+			if ($next_c == '') {
2515
+							break;
2516
+			}
2412 2517
 
2413 2518
 			// A test validation?
2414
-			if (isset($possible['test']) && preg_match('~^' . $possible['test'] . '~', substr($message, $pos + 1 + $pt_strlen + 1)) === 0)
2415
-				continue;
2519
+			if (isset($possible['test']) && preg_match('~^' . $possible['test'] . '~', substr($message, $pos + 1 + $pt_strlen + 1)) === 0) {
2520
+							continue;
2521
+			}
2416 2522
 			// Do we want parameters?
2417 2523
 			elseif (!empty($possible['parameters']))
2418 2524
 			{
2419
-				if ($next_c != ' ')
2420
-					continue;
2421
-			}
2422
-			elseif (isset($possible['type']))
2525
+				if ($next_c != ' ') {
2526
+									continue;
2527
+				}
2528
+			} elseif (isset($possible['type']))
2423 2529
 			{
2424 2530
 				// Do we need an equal sign?
2425
-				if (in_array($possible['type'], array('unparsed_equals', 'unparsed_commas', 'unparsed_commas_content', 'unparsed_equals_content', 'parsed_equals')) && $next_c != '=')
2426
-					continue;
2531
+				if (in_array($possible['type'], array('unparsed_equals', 'unparsed_commas', 'unparsed_commas_content', 'unparsed_equals_content', 'parsed_equals')) && $next_c != '=') {
2532
+									continue;
2533
+				}
2427 2534
 				// Maybe we just want a /...
2428
-				if ($possible['type'] == 'closed' && $next_c != ']' && substr($message, $pos + 1 + $pt_strlen, 2) != '/]' && substr($message, $pos + 1 + $pt_strlen, 3) != ' /]')
2429
-					continue;
2535
+				if ($possible['type'] == 'closed' && $next_c != ']' && substr($message, $pos + 1 + $pt_strlen, 2) != '/]' && substr($message, $pos + 1 + $pt_strlen, 3) != ' /]') {
2536
+									continue;
2537
+				}
2430 2538
 				// An immediate ]?
2431
-				if ($possible['type'] == 'unparsed_content' && $next_c != ']')
2432
-					continue;
2539
+				if ($possible['type'] == 'unparsed_content' && $next_c != ']') {
2540
+									continue;
2541
+				}
2433 2542
 			}
2434 2543
 			// No type means 'parsed_content', which demands an immediate ] without parameters!
2435
-			elseif ($next_c != ']')
2436
-				continue;
2544
+			elseif ($next_c != ']') {
2545
+							continue;
2546
+			}
2437 2547
 
2438 2548
 			// Check allowed tree?
2439
-			if (isset($possible['require_parents']) && ($inside === null || !in_array($inside['tag'], $possible['require_parents'])))
2440
-				continue;
2441
-			elseif (isset($inside['require_children']) && !in_array($possible['tag'], $inside['require_children']))
2442
-				continue;
2549
+			if (isset($possible['require_parents']) && ($inside === null || !in_array($inside['tag'], $possible['require_parents']))) {
2550
+							continue;
2551
+			} elseif (isset($inside['require_children']) && !in_array($possible['tag'], $inside['require_children'])) {
2552
+							continue;
2553
+			}
2443 2554
 			// If this is in the list of disallowed child tags, don't parse it.
2444
-			elseif (isset($inside['disallow_children']) && in_array($possible['tag'], $inside['disallow_children']))
2445
-				continue;
2555
+			elseif (isset($inside['disallow_children']) && in_array($possible['tag'], $inside['disallow_children'])) {
2556
+							continue;
2557
+			}
2446 2558
 
2447 2559
 			$pos1 = $pos + 1 + $pt_strlen + 1;
2448 2560
 
@@ -2454,8 +2566,9 @@  discard block
 block discarded – undo
2454 2566
 				foreach ($open_tags as $open_quote)
2455 2567
 				{
2456 2568
 					// Every parent quote this quote has flips the styling
2457
-					if ($open_quote['tag'] == 'quote')
2458
-						$quote_alt = !$quote_alt;
2569
+					if ($open_quote['tag'] == 'quote') {
2570
+											$quote_alt = !$quote_alt;
2571
+					}
2459 2572
 				}
2460 2573
 				// Add a class to the quote to style alternating blockquotes
2461 2574
 				$possible['before'] = strtr($possible['before'], array('<blockquote>' => '<blockquote class="bbc_' . ($quote_alt ? 'alternate' : 'standard') . '_quote">'));
@@ -2466,8 +2579,9 @@  discard block
 block discarded – undo
2466 2579
 			{
2467 2580
 				// Build a regular expression for each parameter for the current tag.
2468 2581
 				$preg = array();
2469
-				foreach ($possible['parameters'] as $p => $info)
2470
-					$preg[] = '(\s+' . $p . '=' . (empty($info['quoted']) ? '' : '&quot;') . (isset($info['match']) ? $info['match'] : '(.+?)') . (empty($info['quoted']) ? '' : '&quot;') . '\s*)' . (empty($info['optional']) ? '' : '?');
2582
+				foreach ($possible['parameters'] as $p => $info) {
2583
+									$preg[] = '(\s+' . $p . '=' . (empty($info['quoted']) ? '' : '&quot;') . (isset($info['match']) ? $info['match'] : '(.+?)') . (empty($info['quoted']) ? '' : '&quot;') . '\s*)' . (empty($info['optional']) ? '' : '?');
2584
+				}
2471 2585
 
2472 2586
 				// Extract the string that potentially holds our parameters.
2473 2587
 				$blob = preg_split('~\[/?(?:' . $alltags_regex . ')~i', substr($message, $pos));
@@ -2486,24 +2600,27 @@  discard block
 block discarded – undo
2486 2600
 
2487 2601
 					$match = preg_match('~^' . implode('', $preg) . '$~i', implode(' ', $given_params), $matches) !== 0;
2488 2602
 
2489
-					if ($match)
2490
-						$blob_counter = count($blobs) + 1;
2603
+					if ($match) {
2604
+											$blob_counter = count($blobs) + 1;
2605
+					}
2491 2606
 				}
2492 2607
 
2493 2608
 				// Didn't match our parameter list, try the next possible.
2494
-				if (!$match)
2495
-					continue;
2609
+				if (!$match) {
2610
+									continue;
2611
+				}
2496 2612
 
2497 2613
 				$params = array();
2498 2614
 				for ($i = 1, $n = count($matches); $i < $n; $i += 2)
2499 2615
 				{
2500 2616
 					$key = strtok(ltrim($matches[$i]), '=');
2501
-					if (isset($possible['parameters'][$key]['value']))
2502
-						$params['{' . $key . '}'] = strtr($possible['parameters'][$key]['value'], array('$1' => $matches[$i + 1]));
2503
-					elseif (isset($possible['parameters'][$key]['validate']))
2504
-						$params['{' . $key . '}'] = $possible['parameters'][$key]['validate']($matches[$i + 1]);
2505
-					else
2506
-						$params['{' . $key . '}'] = $matches[$i + 1];
2617
+					if (isset($possible['parameters'][$key]['value'])) {
2618
+											$params['{' . $key . '}'] = strtr($possible['parameters'][$key]['value'], array('$1' => $matches[$i + 1]));
2619
+					} elseif (isset($possible['parameters'][$key]['validate'])) {
2620
+											$params['{' . $key . '}'] = $possible['parameters'][$key]['validate']($matches[$i + 1]);
2621
+					} else {
2622
+											$params['{' . $key . '}'] = $matches[$i + 1];
2623
+					}
2507 2624
 
2508 2625
 					// Just to make sure: replace any $ or { so they can't interpolate wrongly.
2509 2626
 					$params['{' . $key . '}'] = strtr($params['{' . $key . '}'], array('$' => '&#036;', '{' => '&#123;'));
@@ -2511,23 +2628,26 @@  discard block
 block discarded – undo
2511 2628
 
2512 2629
 				foreach ($possible['parameters'] as $p => $info)
2513 2630
 				{
2514
-					if (!isset($params['{' . $p . '}']))
2515
-						$params['{' . $p . '}'] = '';
2631
+					if (!isset($params['{' . $p . '}'])) {
2632
+											$params['{' . $p . '}'] = '';
2633
+					}
2516 2634
 				}
2517 2635
 
2518 2636
 				$tag = $possible;
2519 2637
 
2520 2638
 				// Put the parameters into the string.
2521
-				if (isset($tag['before']))
2522
-					$tag['before'] = strtr($tag['before'], $params);
2523
-				if (isset($tag['after']))
2524
-					$tag['after'] = strtr($tag['after'], $params);
2525
-				if (isset($tag['content']))
2526
-					$tag['content'] = strtr($tag['content'], $params);
2639
+				if (isset($tag['before'])) {
2640
+									$tag['before'] = strtr($tag['before'], $params);
2641
+				}
2642
+				if (isset($tag['after'])) {
2643
+									$tag['after'] = strtr($tag['after'], $params);
2644
+				}
2645
+				if (isset($tag['content'])) {
2646
+									$tag['content'] = strtr($tag['content'], $params);
2647
+				}
2527 2648
 
2528 2649
 				$pos1 += strlen($given_param_string);
2529
-			}
2530
-			else
2650
+			} else
2531 2651
 			{
2532 2652
 				$tag = $possible;
2533 2653
 				$params = array();
@@ -2538,8 +2658,9 @@  discard block
 block discarded – undo
2538 2658
 		// Item codes are complicated buggers... they are implicit [li]s and can make [list]s!
2539 2659
 		if ($smileys !== false && $tag === null && isset($itemcodes[$message[$pos + 1]]) && $message[$pos + 2] == ']' && !isset($disabled['list']) && !isset($disabled['li']))
2540 2660
 		{
2541
-			if ($message[$pos + 1] == '0' && !in_array($message[$pos - 1], array(';', ' ', "\t", "\n", '>')))
2542
-				continue;
2661
+			if ($message[$pos + 1] == '0' && !in_array($message[$pos - 1], array(';', ' ', "\t", "\n", '>'))) {
2662
+							continue;
2663
+			}
2543 2664
 
2544 2665
 			$tag = $itemcodes[$message[$pos + 1]];
2545 2666
 
@@ -2560,9 +2681,9 @@  discard block
 block discarded – undo
2560 2681
 			{
2561 2682
 				array_pop($open_tags);
2562 2683
 				$code = '</li>';
2684
+			} else {
2685
+							$code = '';
2563 2686
 			}
2564
-			else
2565
-				$code = '';
2566 2687
 
2567 2688
 			// Now we open a new tag.
2568 2689
 			$open_tags[] = array(
@@ -2609,12 +2730,14 @@  discard block
 block discarded – undo
2609 2730
 		}
2610 2731
 
2611 2732
 		// No tag?  Keep looking, then.  Silly people using brackets without actual tags.
2612
-		if ($tag === null)
2613
-			continue;
2733
+		if ($tag === null) {
2734
+					continue;
2735
+		}
2614 2736
 
2615 2737
 		// Propagate the list to the child (so wrapping the disallowed tag won't work either.)
2616
-		if (isset($inside['disallow_children']))
2617
-			$tag['disallow_children'] = isset($tag['disallow_children']) ? array_unique(array_merge($tag['disallow_children'], $inside['disallow_children'])) : $inside['disallow_children'];
2738
+		if (isset($inside['disallow_children'])) {
2739
+					$tag['disallow_children'] = isset($tag['disallow_children']) ? array_unique(array_merge($tag['disallow_children'], $inside['disallow_children'])) : $inside['disallow_children'];
2740
+		}
2618 2741
 
2619 2742
 		// Is this tag disabled?
2620 2743
 		if (isset($disabled[$tag['tag']]))
@@ -2624,14 +2747,13 @@  discard block
 block discarded – undo
2624 2747
 				$tag['before'] = !empty($tag['block_level']) ? '<div>' : '';
2625 2748
 				$tag['after'] = !empty($tag['block_level']) ? '</div>' : '';
2626 2749
 				$tag['content'] = isset($tag['type']) && $tag['type'] == 'closed' ? '' : (!empty($tag['block_level']) ? '<div>$1</div>' : '$1');
2627
-			}
2628
-			elseif (isset($tag['disabled_before']) || isset($tag['disabled_after']))
2750
+			} elseif (isset($tag['disabled_before']) || isset($tag['disabled_after']))
2629 2751
 			{
2630 2752
 				$tag['before'] = isset($tag['disabled_before']) ? $tag['disabled_before'] : (!empty($tag['block_level']) ? '<div>' : '');
2631 2753
 				$tag['after'] = isset($tag['disabled_after']) ? $tag['disabled_after'] : (!empty($tag['block_level']) ? '</div>' : '');
2754
+			} else {
2755
+							$tag['content'] = $tag['disabled_content'];
2632 2756
 			}
2633
-			else
2634
-				$tag['content'] = $tag['disabled_content'];
2635 2757
 		}
2636 2758
 
2637 2759
 		// we use this a lot
@@ -2641,8 +2763,9 @@  discard block
 block discarded – undo
2641 2763
 		if (!empty($tag['block_level']) && $tag['tag'] != 'html' && empty($inside['block_level']))
2642 2764
 		{
2643 2765
 			$n = count($open_tags) - 1;
2644
-			while (empty($open_tags[$n]['block_level']) && $n >= 0)
2645
-				$n--;
2766
+			while (empty($open_tags[$n]['block_level']) && $n >= 0) {
2767
+							$n--;
2768
+			}
2646 2769
 
2647 2770
 			// Close all the non block level tags so this tag isn't surrounded by them.
2648 2771
 			for ($i = count($open_tags) - 1; $i > $n; $i--)
@@ -2654,12 +2777,15 @@  discard block
 block discarded – undo
2654 2777
 
2655 2778
 				// Trim or eat trailing stuff... see comment at the end of the big loop.
2656 2779
 				$whitespace_regex = '';
2657
-				if (!empty($tag['block_level']))
2658
-					$whitespace_regex .= '(&nbsp;|\s)*(<br>)?';
2659
-				if (!empty($tag['trim']) && $tag['trim'] != 'inside')
2660
-					$whitespace_regex .= empty($tag['require_parents']) ? '(&nbsp;|\s)*' : '(<br>|&nbsp;|\s)*';
2661
-				if (!empty($whitespace_regex) && preg_match('~' . $whitespace_regex . '~', substr($message, $pos), $matches) != 0)
2662
-					$message = substr($message, 0, $pos) . substr($message, $pos + strlen($matches[0]));
2780
+				if (!empty($tag['block_level'])) {
2781
+									$whitespace_regex .= '(&nbsp;|\s)*(<br>)?';
2782
+				}
2783
+				if (!empty($tag['trim']) && $tag['trim'] != 'inside') {
2784
+									$whitespace_regex .= empty($tag['require_parents']) ? '(&nbsp;|\s)*' : '(<br>|&nbsp;|\s)*';
2785
+				}
2786
+				if (!empty($whitespace_regex) && preg_match('~' . $whitespace_regex . '~', substr($message, $pos), $matches) != 0) {
2787
+									$message = substr($message, 0, $pos) . substr($message, $pos + strlen($matches[0]));
2788
+				}
2663 2789
 
2664 2790
 				array_pop($open_tags);
2665 2791
 			}
@@ -2680,16 +2806,19 @@  discard block
 block discarded – undo
2680 2806
 		elseif ($tag['type'] == 'unparsed_content')
2681 2807
 		{
2682 2808
 			$pos2 = stripos($message, '[/' . substr($message, $pos + 1, $tag_strlen) . ']', $pos1);
2683
-			if ($pos2 === false)
2684
-				continue;
2809
+			if ($pos2 === false) {
2810
+							continue;
2811
+			}
2685 2812
 
2686 2813
 			$data = substr($message, $pos1, $pos2 - $pos1);
2687 2814
 
2688
-			if (!empty($tag['block_level']) && substr($data, 0, 4) == '<br>')
2689
-				$data = substr($data, 4);
2815
+			if (!empty($tag['block_level']) && substr($data, 0, 4) == '<br>') {
2816
+							$data = substr($data, 4);
2817
+			}
2690 2818
 
2691
-			if (isset($tag['validate']))
2692
-				$tag['validate']($tag, $data, $disabled, $params);
2819
+			if (isset($tag['validate'])) {
2820
+							$tag['validate']($tag, $data, $disabled, $params);
2821
+			}
2693 2822
 
2694 2823
 			$code = strtr($tag['content'], array('$1' => $data));
2695 2824
 			$message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos2 + 3 + $tag_strlen);
@@ -2704,34 +2833,40 @@  discard block
 block discarded – undo
2704 2833
 			if (isset($tag['quoted']))
2705 2834
 			{
2706 2835
 				$quoted = substr($message, $pos1, 6) == '&quot;';
2707
-				if ($tag['quoted'] != 'optional' && !$quoted)
2708
-					continue;
2836
+				if ($tag['quoted'] != 'optional' && !$quoted) {
2837
+									continue;
2838
+				}
2709 2839
 
2710
-				if ($quoted)
2711
-					$pos1 += 6;
2840
+				if ($quoted) {
2841
+									$pos1 += 6;
2842
+				}
2843
+			} else {
2844
+							$quoted = false;
2712 2845
 			}
2713
-			else
2714
-				$quoted = false;
2715 2846
 
2716 2847
 			$pos2 = strpos($message, $quoted == false ? ']' : '&quot;]', $pos1);
2717
-			if ($pos2 === false)
2718
-				continue;
2848
+			if ($pos2 === false) {
2849
+							continue;
2850
+			}
2719 2851
 
2720 2852
 			$pos3 = stripos($message, '[/' . substr($message, $pos + 1, $tag_strlen) . ']', $pos2);
2721
-			if ($pos3 === false)
2722
-				continue;
2853
+			if ($pos3 === false) {
2854
+							continue;
2855
+			}
2723 2856
 
2724 2857
 			$data = array(
2725 2858
 				substr($message, $pos2 + ($quoted == false ? 1 : 7), $pos3 - ($pos2 + ($quoted == false ? 1 : 7))),
2726 2859
 				substr($message, $pos1, $pos2 - $pos1)
2727 2860
 			);
2728 2861
 
2729
-			if (!empty($tag['block_level']) && substr($data[0], 0, 4) == '<br>')
2730
-				$data[0] = substr($data[0], 4);
2862
+			if (!empty($tag['block_level']) && substr($data[0], 0, 4) == '<br>') {
2863
+							$data[0] = substr($data[0], 4);
2864
+			}
2731 2865
 
2732 2866
 			// Validation for my parking, please!
2733
-			if (isset($tag['validate']))
2734
-				$tag['validate']($tag, $data, $disabled, $params);
2867
+			if (isset($tag['validate'])) {
2868
+							$tag['validate']($tag, $data, $disabled, $params);
2869
+			}
2735 2870
 
2736 2871
 			$code = strtr($tag['content'], array('$1' => $data[0], '$2' => $data[1]));
2737 2872
 			$message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos3 + 3 + $tag_strlen);
@@ -2748,23 +2883,27 @@  discard block
 block discarded – undo
2748 2883
 		elseif ($tag['type'] == 'unparsed_commas_content')
2749 2884
 		{
2750 2885
 			$pos2 = strpos($message, ']', $pos1);
2751
-			if ($pos2 === false)
2752
-				continue;
2886
+			if ($pos2 === false) {
2887
+							continue;
2888
+			}
2753 2889
 
2754 2890
 			$pos3 = stripos($message, '[/' . substr($message, $pos + 1, $tag_strlen) . ']', $pos2);
2755
-			if ($pos3 === false)
2756
-				continue;
2891
+			if ($pos3 === false) {
2892
+							continue;
2893
+			}
2757 2894
 
2758 2895
 			// We want $1 to be the content, and the rest to be csv.
2759 2896
 			$data = explode(',', ',' . substr($message, $pos1, $pos2 - $pos1));
2760 2897
 			$data[0] = substr($message, $pos2 + 1, $pos3 - $pos2 - 1);
2761 2898
 
2762
-			if (isset($tag['validate']))
2763
-				$tag['validate']($tag, $data, $disabled, $params);
2899
+			if (isset($tag['validate'])) {
2900
+							$tag['validate']($tag, $data, $disabled, $params);
2901
+			}
2764 2902
 
2765 2903
 			$code = $tag['content'];
2766
-			foreach ($data as $k => $d)
2767
-				$code = strtr($code, array('$' . ($k + 1) => trim($d)));
2904
+			foreach ($data as $k => $d) {
2905
+							$code = strtr($code, array('$' . ($k + 1) => trim($d)));
2906
+			}
2768 2907
 			$message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos3 + 3 + $tag_strlen);
2769 2908
 			$pos += strlen($code) - 1 + 2;
2770 2909
 		}
@@ -2772,24 +2911,28 @@  discard block
 block discarded – undo
2772 2911
 		elseif ($tag['type'] == 'unparsed_commas')
2773 2912
 		{
2774 2913
 			$pos2 = strpos($message, ']', $pos1);
2775
-			if ($pos2 === false)
2776
-				continue;
2914
+			if ($pos2 === false) {
2915
+							continue;
2916
+			}
2777 2917
 
2778 2918
 			$data = explode(',', substr($message, $pos1, $pos2 - $pos1));
2779 2919
 
2780
-			if (isset($tag['validate']))
2781
-				$tag['validate']($tag, $data, $disabled, $params);
2920
+			if (isset($tag['validate'])) {
2921
+							$tag['validate']($tag, $data, $disabled, $params);
2922
+			}
2782 2923
 
2783 2924
 			// Fix after, for disabled code mainly.
2784
-			foreach ($data as $k => $d)
2785
-				$tag['after'] = strtr($tag['after'], array('$' . ($k + 1) => trim($d)));
2925
+			foreach ($data as $k => $d) {
2926
+							$tag['after'] = strtr($tag['after'], array('$' . ($k + 1) => trim($d)));
2927
+			}
2786 2928
 
2787 2929
 			$open_tags[] = $tag;
2788 2930
 
2789 2931
 			// Replace them out, $1, $2, $3, $4, etc.
2790 2932
 			$code = $tag['before'];
2791
-			foreach ($data as $k => $d)
2792
-				$code = strtr($code, array('$' . ($k + 1) => trim($d)));
2933
+			foreach ($data as $k => $d) {
2934
+							$code = strtr($code, array('$' . ($k + 1) => trim($d)));
2935
+			}
2793 2936
 			$message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos2 + 1);
2794 2937
 			$pos += strlen($code) - 1 + 2;
2795 2938
 		}
@@ -2800,28 +2943,33 @@  discard block
 block discarded – undo
2800 2943
 			if (isset($tag['quoted']))
2801 2944
 			{
2802 2945
 				$quoted = substr($message, $pos1, 6) == '&quot;';
2803
-				if ($tag['quoted'] != 'optional' && !$quoted)
2804
-					continue;
2946
+				if ($tag['quoted'] != 'optional' && !$quoted) {
2947
+									continue;
2948
+				}
2805 2949
 
2806
-				if ($quoted)
2807
-					$pos1 += 6;
2950
+				if ($quoted) {
2951
+									$pos1 += 6;
2952
+				}
2953
+			} else {
2954
+							$quoted = false;
2808 2955
 			}
2809
-			else
2810
-				$quoted = false;
2811 2956
 
2812 2957
 			$pos2 = strpos($message, $quoted == false ? ']' : '&quot;]', $pos1);
2813
-			if ($pos2 === false)
2814
-				continue;
2958
+			if ($pos2 === false) {
2959
+							continue;
2960
+			}
2815 2961
 
2816 2962
 			$data = substr($message, $pos1, $pos2 - $pos1);
2817 2963
 
2818 2964
 			// Validation for my parking, please!
2819
-			if (isset($tag['validate']))
2820
-				$tag['validate']($tag, $data, $disabled, $params);
2965
+			if (isset($tag['validate'])) {
2966
+							$tag['validate']($tag, $data, $disabled, $params);
2967
+			}
2821 2968
 
2822 2969
 			// For parsed content, we must recurse to avoid security problems.
2823
-			if ($tag['type'] != 'unparsed_equals')
2824
-				$data = parse_bbc($data, !empty($tag['parsed_tags_allowed']) ? false : true, '', !empty($tag['parsed_tags_allowed']) ? $tag['parsed_tags_allowed'] : array());
2970
+			if ($tag['type'] != 'unparsed_equals') {
2971
+							$data = parse_bbc($data, !empty($tag['parsed_tags_allowed']) ? false : true, '', !empty($tag['parsed_tags_allowed']) ? $tag['parsed_tags_allowed'] : array());
2972
+			}
2825 2973
 
2826 2974
 			$tag['after'] = strtr($tag['after'], array('$1' => $data));
2827 2975
 
@@ -2833,34 +2981,40 @@  discard block
 block discarded – undo
2833 2981
 		}
2834 2982
 
2835 2983
 		// If this is block level, eat any breaks after it.
2836
-		if (!empty($tag['block_level']) && substr($message, $pos + 1, 4) == '<br>')
2837
-			$message = substr($message, 0, $pos + 1) . substr($message, $pos + 5);
2984
+		if (!empty($tag['block_level']) && substr($message, $pos + 1, 4) == '<br>') {
2985
+					$message = substr($message, 0, $pos + 1) . substr($message, $pos + 5);
2986
+		}
2838 2987
 
2839 2988
 		// Are we trimming outside this tag?
2840
-		if (!empty($tag['trim']) && $tag['trim'] != 'outside' && preg_match('~(<br>|&nbsp;|\s)*~', substr($message, $pos + 1), $matches) != 0)
2841
-			$message = substr($message, 0, $pos + 1) . substr($message, $pos + 1 + strlen($matches[0]));
2989
+		if (!empty($tag['trim']) && $tag['trim'] != 'outside' && preg_match('~(<br>|&nbsp;|\s)*~', substr($message, $pos + 1), $matches) != 0) {
2990
+					$message = substr($message, 0, $pos + 1) . substr($message, $pos + 1 + strlen($matches[0]));
2991
+		}
2842 2992
 	}
2843 2993
 
2844 2994
 	// Close any remaining tags.
2845
-	while ($tag = array_pop($open_tags))
2846
-		$message .= "\n" . $tag['after'] . "\n";
2995
+	while ($tag = array_pop($open_tags)) {
2996
+			$message .= "\n" . $tag['after'] . "\n";
2997
+	}
2847 2998
 
2848 2999
 	// Parse the smileys within the parts where it can be done safely.
2849 3000
 	if ($smileys === true)
2850 3001
 	{
2851 3002
 		$message_parts = explode("\n", $message);
2852
-		for ($i = 0, $n = count($message_parts); $i < $n; $i += 2)
2853
-			parsesmileys($message_parts[$i]);
3003
+		for ($i = 0, $n = count($message_parts); $i < $n; $i += 2) {
3004
+					parsesmileys($message_parts[$i]);
3005
+		}
2854 3006
 
2855 3007
 		$message = implode('', $message_parts);
2856 3008
 	}
2857 3009
 
2858 3010
 	// No smileys, just get rid of the markers.
2859
-	else
2860
-		$message = strtr($message, array("\n" => ''));
3011
+	else {
3012
+			$message = strtr($message, array("\n" => ''));
3013
+	}
2861 3014
 
2862
-	if ($message !== '' && $message[0] === ' ')
2863
-		$message = '&nbsp;' . substr($message, 1);
3015
+	if ($message !== '' && $message[0] === ' ') {
3016
+			$message = '&nbsp;' . substr($message, 1);
3017
+	}
2864 3018
 
2865 3019
 	// Cleanup whitespace.
2866 3020
 	$message = strtr($message, array('  ' => ' &nbsp;', "\r" => '', "\n" => '<br>', '<br> ' => '<br>&nbsp;', '&#13;' => "\n"));
@@ -2869,15 +3023,16 @@  discard block
 block discarded – undo
2869 3023
 	call_integration_hook('integrate_post_parsebbc', array(&$message, &$smileys, &$cache_id, &$parse_tags));
2870 3024
 
2871 3025
 	// Cache the output if it took some time...
2872
-	if (isset($cache_key, $cache_t) && array_sum(explode(' ', microtime())) - array_sum(explode(' ', $cache_t)) > 0.05)
2873
-		cache_put_data($cache_key, $message, 240);
3026
+	if (isset($cache_key, $cache_t) && array_sum(explode(' ', microtime())) - array_sum(explode(' ', $cache_t)) > 0.05) {
3027
+			cache_put_data($cache_key, $message, 240);
3028
+	}
2874 3029
 
2875 3030
 	// If this was a force parse revert if needed.
2876 3031
 	if (!empty($parse_tags))
2877 3032
 	{
2878
-		if (empty($temp_bbc))
2879
-			$bbc_codes = array();
2880
-		else
3033
+		if (empty($temp_bbc)) {
3034
+					$bbc_codes = array();
3035
+		} else
2881 3036
 		{
2882 3037
 			$bbc_codes = $temp_bbc;
2883 3038
 			unset($temp_bbc);
@@ -2904,8 +3059,9 @@  discard block
 block discarded – undo
2904 3059
 	static $smileyPregSearch = null, $smileyPregReplacements = array();
2905 3060
 
2906 3061
 	// No smiley set at all?!
2907
-	if ($user_info['smiley_set'] == 'none' || trim($message) == '')
2908
-		return;
3062
+	if ($user_info['smiley_set'] == 'none' || trim($message) == '') {
3063
+			return;
3064
+	}
2909 3065
 
2910 3066
 	// Maybe a mod wants to implement an alternative method (e.g. emojis instead of images)
2911 3067
 	call_integration_hook('integrate_smileys', array(&$smileyPregSearch, &$smileyPregReplacements));
@@ -2919,8 +3075,7 @@  discard block
 block discarded – undo
2919 3075
 			$smileysfrom = array('>:D', ':D', '::)', '>:(', ':))', ':)', ';)', ';D', ':(', ':o', '8)', ':P', '???', ':-[', ':-X', ':-*', ':\'(', ':-\\', '^-^', 'O0', 'C:-)', 'O:-)');
2920 3076
 			$smileysto = array('evil.png', 'cheesy.png', 'rolleyes.png', 'angry.png', 'laugh.png', 'smiley.png', 'wink.png', 'grin.png', 'sad.png', 'shocked.png', 'cool.png', 'tongue.png', 'huh.png', 'embarrassed.png', 'lipsrsealed.png', 'kiss.png', 'cry.png', 'undecided.png', 'azn.png', 'afro.png', 'police.png', 'angel.png');
2921 3077
 			$smileysdescs = array('', $txt['icon_cheesy'], $txt['icon_rolleyes'], $txt['icon_angry'], '', $txt['icon_smiley'], $txt['icon_wink'], $txt['icon_grin'], $txt['icon_sad'], $txt['icon_shocked'], $txt['icon_cool'], $txt['icon_tongue'], $txt['icon_huh'], $txt['icon_embarrassed'], $txt['icon_lips'], $txt['icon_kiss'], $txt['icon_cry'], $txt['icon_undecided'], '', '', '', '');
2922
-		}
2923
-		else
3078
+		} else
2924 3079
 		{
2925 3080
 			// Load the smileys in reverse order by length so they don't get parsed wrong.
2926 3081
 			if (($temp = cache_get_data('parsing_smileys', 480)) == null)
@@ -2944,9 +3099,9 @@  discard block
 block discarded – undo
2944 3099
 				$smcFunc['db_free_result']($result);
2945 3100
 
2946 3101
 				cache_put_data('parsing_smileys', array($smileysfrom, $smileysto, $smileysdescs), 480);
3102
+			} else {
3103
+							list ($smileysfrom, $smileysto, $smileysdescs) = $temp;
2947 3104
 			}
2948
-			else
2949
-				list ($smileysfrom, $smileysto, $smileysdescs) = $temp;
2950 3105
 		}
2951 3106
 
2952 3107
 		// The non-breaking-space is a complex thing...
@@ -2968,16 +3123,18 @@  discard block
 block discarded – undo
2968 3123
 				$alt_images = glob($smileys_dir . $fname .  '.{' . (implode(',', $exts)) . '}', GLOB_BRACE);
2969 3124
 				if (!empty($alt_images))
2970 3125
 				{
2971
-					foreach ($exts as $ext)
2972
-						if (in_array($smileys_dir . $fname . '.' . $ext, $alt_images))
3126
+					foreach ($exts as $ext) {
3127
+											if (in_array($smileys_dir . $fname . '.' . $ext, $alt_images))
2973 3128
 						{
2974 3129
 							$smileysto[$i] = $fname . '.' . $ext;
3130
+					}
2975 3131
 							break;
2976 3132
 						}
2977 3133
 				}
2978 3134
 				// If we have no image, just leave the text version in place
2979
-				else
2980
-					continue;
3135
+				else {
3136
+									continue;
3137
+				}
2981 3138
 			}
2982 3139
 
2983 3140
 			$specialChars = $smcFunc['htmlspecialchars']($smileysfrom[$i], ENT_QUOTES);
@@ -3053,12 +3210,14 @@  discard block
 block discarded – undo
3053 3210
 	global $boardurl, $image_proxy_enabled, $image_proxy_secret;
3054 3211
 
3055 3212
 	// Only use the proxy if enabled and necessary
3056
-	if (empty($image_proxy_enabled) || parse_url($url, PHP_URL_SCHEME) === 'https')
3057
-		return $url;
3213
+	if (empty($image_proxy_enabled) || parse_url($url, PHP_URL_SCHEME) === 'https') {
3214
+			return $url;
3215
+	}
3058 3216
 
3059 3217
 	// We don't need to proxy our own resources
3060
-	if (strpos(strtr($url, array('http://' => 'https://')), strtr($boardurl, array('http://' => 'https://'))) === 0)
3061
-		return strtr($url, array('http://' => 'https://'));
3218
+	if (strpos(strtr($url, array('http://' => 'https://')), strtr($boardurl, array('http://' => 'https://'))) === 0) {
3219
+			return strtr($url, array('http://' => 'https://'));
3220
+	}
3062 3221
 
3063 3222
 	// By default, use SMF's own image proxy script
3064 3223
 	$proxied_url = strtr($boardurl, array('http://' => 'https://')) . '/proxy.php?request=' . urlencode($url) . '&hash=' . md5($url . $image_proxy_secret);
@@ -3083,35 +3242,41 @@  discard block
 block discarded – undo
3083 3242
 	global $scripturl, $context, $modSettings, $db_show_debug, $db_cache;
3084 3243
 
3085 3244
 	// In case we have mail to send, better do that - as obExit doesn't always quite make it...
3086
-	if (!empty($context['flush_mail']))
3087
-		// @todo this relies on 'flush_mail' being only set in AddMailQueue itself... :\
3245
+	if (!empty($context['flush_mail'])) {
3246
+			// @todo this relies on 'flush_mail' being only set in AddMailQueue itself... :\
3088 3247
 		AddMailQueue(true);
3248
+	}
3089 3249
 
3090 3250
 	$add = preg_match('~^(ftp|http)[s]?://~', $setLocation) == 0 && substr($setLocation, 0, 6) != 'about:';
3091 3251
 
3092
-	if ($add)
3093
-		$setLocation = $scripturl . ($setLocation != '' ? '?' . $setLocation : '');
3252
+	if ($add) {
3253
+			$setLocation = $scripturl . ($setLocation != '' ? '?' . $setLocation : '');
3254
+	}
3094 3255
 
3095 3256
 	// Put the session ID in.
3096
-	if (defined('SID') && SID != '')
3097
-		$setLocation = preg_replace('/^' . preg_quote($scripturl, '/') . '(?!\?' . preg_quote(SID, '/') . ')\\??/', $scripturl . '?' . SID . ';', $setLocation);
3257
+	if (defined('SID') && SID != '') {
3258
+			$setLocation = preg_replace('/^' . preg_quote($scripturl, '/') . '(?!\?' . preg_quote(SID, '/') . ')\\??/', $scripturl . '?' . SID . ';', $setLocation);
3259
+	}
3098 3260
 	// Keep that debug in their for template debugging!
3099
-	elseif (isset($_GET['debug']))
3100
-		$setLocation = preg_replace('/^' . preg_quote($scripturl, '/') . '\\??/', $scripturl . '?debug;', $setLocation);
3261
+	elseif (isset($_GET['debug'])) {
3262
+			$setLocation = preg_replace('/^' . preg_quote($scripturl, '/') . '\\??/', $scripturl . '?debug;', $setLocation);
3263
+	}
3101 3264
 
3102 3265
 	if (!empty($modSettings['queryless_urls']) && (empty($context['server']['is_cgi']) || ini_get('cgi.fix_pathinfo') == 1 || @get_cfg_var('cgi.fix_pathinfo') == 1) && (!empty($context['server']['is_apache']) || !empty($context['server']['is_lighttpd']) || !empty($context['server']['is_litespeed'])))
3103 3266
 	{
3104
-		if (defined('SID') && SID != '')
3105
-			$setLocation = preg_replace_callback('~^' . preg_quote($scripturl, '~') . '\?(?:' . SID . '(?:;|&|&amp;))((?:board|topic)=[^#]+?)(#[^"]*?)?$~',
3267
+		if (defined('SID') && SID != '') {
3268
+					$setLocation = preg_replace_callback('~^' . preg_quote($scripturl, '~') . '\?(?:' . SID . '(?:;|&|&amp;))((?:board|topic)=[^#]+?)(#[^"]*?)?$~',
3106 3269
 				function ($m) use ($scripturl)
3107 3270
 				{
3108 3271
 					return $scripturl . '/' . strtr("$m[1]", '&;=', '//,') . '.html?' . SID. (isset($m[2]) ? "$m[2]" : "");
3272
+		}
3109 3273
 				}, $setLocation);
3110
-		else
3111
-			$setLocation = preg_replace_callback('~^' . preg_quote($scripturl, '~') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?$~',
3274
+		else {
3275
+					$setLocation = preg_replace_callback('~^' . preg_quote($scripturl, '~') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?$~',
3112 3276
 				function ($m) use ($scripturl)
3113 3277
 				{
3114 3278
 					return $scripturl . '/' . strtr("$m[1]", '&;=', '//,') . '.html' . (isset($m[2]) ? "$m[2]" : "");
3279
+		}
3115 3280
 				}, $setLocation);
3116 3281
 	}
3117 3282
 
@@ -3122,8 +3287,9 @@  discard block
 block discarded – undo
3122 3287
 	header('location: ' . str_replace(' ', '%20', $setLocation), true, $permanent ? 301 : 302);
3123 3288
 
3124 3289
 	// Debugging.
3125
-	if (isset($db_show_debug) && $db_show_debug === true)
3126
-		$_SESSION['debug_redirect'] = $db_cache;
3290
+	if (isset($db_show_debug) && $db_show_debug === true) {
3291
+			$_SESSION['debug_redirect'] = $db_cache;
3292
+	}
3127 3293
 
3128 3294
 	obExit(false);
3129 3295
 }
@@ -3142,51 +3308,60 @@  discard block
 block discarded – undo
3142 3308
 
3143 3309
 	// Attempt to prevent a recursive loop.
3144 3310
 	++$level;
3145
-	if ($level > 1 && !$from_fatal_error && !$has_fatal_error)
3146
-		exit;
3147
-	if ($from_fatal_error)
3148
-		$has_fatal_error = true;
3311
+	if ($level > 1 && !$from_fatal_error && !$has_fatal_error) {
3312
+			exit;
3313
+	}
3314
+	if ($from_fatal_error) {
3315
+			$has_fatal_error = true;
3316
+	}
3149 3317
 
3150 3318
 	// Clear out the stat cache.
3151 3319
 	trackStats();
3152 3320
 
3153 3321
 	// If we have mail to send, send it.
3154
-	if (!empty($context['flush_mail']))
3155
-		// @todo this relies on 'flush_mail' being only set in AddMailQueue itself... :\
3322
+	if (!empty($context['flush_mail'])) {
3323
+			// @todo this relies on 'flush_mail' being only set in AddMailQueue itself... :\
3156 3324
 		AddMailQueue(true);
3325
+	}
3157 3326
 
3158 3327
 	$do_header = $header === null ? !$header_done : $header;
3159
-	if ($do_footer === null)
3160
-		$do_footer = $do_header;
3328
+	if ($do_footer === null) {
3329
+			$do_footer = $do_header;
3330
+	}
3161 3331
 
3162 3332
 	// Has the template/header been done yet?
3163 3333
 	if ($do_header)
3164 3334
 	{
3165 3335
 		// Was the page title set last minute? Also update the HTML safe one.
3166
-		if (!empty($context['page_title']) && empty($context['page_title_html_safe']))
3167
-			$context['page_title_html_safe'] = $smcFunc['htmlspecialchars'](un_htmlspecialchars($context['page_title'])) . (!empty($context['current_page']) ? ' - ' . $txt['page'] . ' ' . ($context['current_page'] + 1) : '');
3336
+		if (!empty($context['page_title']) && empty($context['page_title_html_safe'])) {
3337
+					$context['page_title_html_safe'] = $smcFunc['htmlspecialchars'](un_htmlspecialchars($context['page_title'])) . (!empty($context['current_page']) ? ' - ' . $txt['page'] . ' ' . ($context['current_page'] + 1) : '');
3338
+		}
3168 3339
 
3169 3340
 		// Start up the session URL fixer.
3170 3341
 		ob_start('ob_sessrewrite');
3171 3342
 
3172
-		if (!empty($settings['output_buffers']) && is_string($settings['output_buffers']))
3173
-			$buffers = explode(',', $settings['output_buffers']);
3174
-		elseif (!empty($settings['output_buffers']))
3175
-			$buffers = $settings['output_buffers'];
3176
-		else
3177
-			$buffers = array();
3343
+		if (!empty($settings['output_buffers']) && is_string($settings['output_buffers'])) {
3344
+					$buffers = explode(',', $settings['output_buffers']);
3345
+		} elseif (!empty($settings['output_buffers'])) {
3346
+					$buffers = $settings['output_buffers'];
3347
+		} else {
3348
+					$buffers = array();
3349
+		}
3178 3350
 
3179
-		if (isset($modSettings['integrate_buffer']))
3180
-			$buffers = array_merge(explode(',', $modSettings['integrate_buffer']), $buffers);
3351
+		if (isset($modSettings['integrate_buffer'])) {
3352
+					$buffers = array_merge(explode(',', $modSettings['integrate_buffer']), $buffers);
3353
+		}
3181 3354
 
3182
-		if (!empty($buffers))
3183
-			foreach ($buffers as $function)
3355
+		if (!empty($buffers)) {
3356
+					foreach ($buffers as $function)
3184 3357
 			{
3185 3358
 				$call = call_helper($function, true);
3359
+		}
3186 3360
 
3187 3361
 				// Is it valid?
3188
-				if (!empty($call))
3189
-					ob_start($call);
3362
+				if (!empty($call)) {
3363
+									ob_start($call);
3364
+				}
3190 3365
 			}
3191 3366
 
3192 3367
 		// Display the screen in the logical order.
@@ -3198,8 +3373,9 @@  discard block
 block discarded – undo
3198 3373
 		loadSubTemplate(isset($context['sub_template']) ? $context['sub_template'] : 'main');
3199 3374
 
3200 3375
 		// Anything special to put out?
3201
-		if (!empty($context['insert_after_template']) && !isset($_REQUEST['xml']))
3202
-			echo $context['insert_after_template'];
3376
+		if (!empty($context['insert_after_template']) && !isset($_REQUEST['xml'])) {
3377
+					echo $context['insert_after_template'];
3378
+		}
3203 3379
 
3204 3380
 		// Just so we don't get caught in an endless loop of errors from the footer...
3205 3381
 		if (!$footer_done)
@@ -3208,14 +3384,16 @@  discard block
 block discarded – undo
3208 3384
 			template_footer();
3209 3385
 
3210 3386
 			// (since this is just debugging... it's okay that it's after </html>.)
3211
-			if (!isset($_REQUEST['xml']))
3212
-				displayDebug();
3387
+			if (!isset($_REQUEST['xml'])) {
3388
+							displayDebug();
3389
+			}
3213 3390
 		}
3214 3391
 	}
3215 3392
 
3216 3393
 	// Remember this URL in case someone doesn't like sending HTTP_REFERER.
3217
-	if (strpos($_SERVER['REQUEST_URL'], 'action=dlattach') === false && strpos($_SERVER['REQUEST_URL'], 'action=viewsmfile') === false)
3218
-		$_SESSION['old_url'] = $_SERVER['REQUEST_URL'];
3394
+	if (strpos($_SERVER['REQUEST_URL'], 'action=dlattach') === false && strpos($_SERVER['REQUEST_URL'], 'action=viewsmfile') === false) {
3395
+			$_SESSION['old_url'] = $_SERVER['REQUEST_URL'];
3396
+	}
3219 3397
 
3220 3398
 	// For session check verification.... don't switch browsers...
3221 3399
 	$_SESSION['USER_AGENT'] = empty($_SERVER['HTTP_USER_AGENT']) ? '' : $_SERVER['HTTP_USER_AGENT'];
@@ -3224,9 +3402,10 @@  discard block
 block discarded – undo
3224 3402
 	call_integration_hook('integrate_exit', array($do_footer));
3225 3403
 
3226 3404
 	// Don't exit if we're coming from index.php; that will pass through normally.
3227
-	if (!$from_index)
3228
-		exit;
3229
-}
3405
+	if (!$from_index) {
3406
+			exit;
3407
+	}
3408
+	}
3230 3409
 
3231 3410
 /**
3232 3411
  * Get the size of a specified image with better error handling.
@@ -3245,8 +3424,9 @@  discard block
 block discarded – undo
3245 3424
 	$url = str_replace(' ', '%20', $url);
3246 3425
 
3247 3426
 	// Can we pull this from the cache... please please?
3248
-	if (($temp = cache_get_data('url_image_size-' . md5($url), 240)) !== null)
3249
-		return $temp;
3427
+	if (($temp = cache_get_data('url_image_size-' . md5($url), 240)) !== null) {
3428
+			return $temp;
3429
+	}
3250 3430
 	$t = microtime();
3251 3431
 
3252 3432
 	// Get the host to pester...
@@ -3256,12 +3436,10 @@  discard block
 block discarded – undo
3256 3436
 	if ($url == '' || $url == 'http://' || $url == 'https://')
3257 3437
 	{
3258 3438
 		return false;
3259
-	}
3260
-	elseif (!isset($match[1]))
3439
+	} elseif (!isset($match[1]))
3261 3440
 	{
3262 3441
 		$size = @getimagesize($url);
3263
-	}
3264
-	else
3442
+	} else
3265 3443
 	{
3266 3444
 		// Try to connect to the server... give it half a second.
3267 3445
 		$temp = 0;
@@ -3298,12 +3476,14 @@  discard block
 block discarded – undo
3298 3476
 	}
3299 3477
 
3300 3478
 	// If we didn't get it, we failed.
3301
-	if (!isset($size))
3302
-		$size = false;
3479
+	if (!isset($size)) {
3480
+			$size = false;
3481
+	}
3303 3482
 
3304 3483
 	// If this took a long time, we may never have to do it again, but then again we might...
3305
-	if (array_sum(explode(' ', microtime())) - array_sum(explode(' ', $t)) > 0.8)
3306
-		cache_put_data('url_image_size-' . md5($url), $size, 240);
3484
+	if (array_sum(explode(' ', microtime())) - array_sum(explode(' ', $t)) > 0.8) {
3485
+			cache_put_data('url_image_size-' . md5($url), $size, 240);
3486
+	}
3307 3487
 
3308 3488
 	// Didn't work.
3309 3489
 	return $size;
@@ -3321,8 +3501,9 @@  discard block
 block discarded – undo
3321 3501
 
3322 3502
 	// Under SSI this function can be called more then once.  That can cause some problems.
3323 3503
 	//   So only run the function once unless we are forced to run it again.
3324
-	if ($loaded && !$forceload)
3325
-		return;
3504
+	if ($loaded && !$forceload) {
3505
+			return;
3506
+	}
3326 3507
 
3327 3508
 	$loaded = true;
3328 3509
 
@@ -3334,14 +3515,16 @@  discard block
 block discarded – undo
3334 3515
 	$context['news_lines'] = array_filter(explode("\n", str_replace("\r", '', trim(addslashes($modSettings['news'])))));
3335 3516
 	for ($i = 0, $n = count($context['news_lines']); $i < $n; $i++)
3336 3517
 	{
3337
-		if (trim($context['news_lines'][$i]) == '')
3338
-			continue;
3518
+		if (trim($context['news_lines'][$i]) == '') {
3519
+					continue;
3520
+		}
3339 3521
 
3340 3522
 		// Clean it up for presentation ;).
3341 3523
 		$context['news_lines'][$i] = parse_bbc(stripslashes(trim($context['news_lines'][$i])), true, 'news' . $i);
3342 3524
 	}
3343
-	if (!empty($context['news_lines']))
3344
-		$context['random_news_line'] = $context['news_lines'][mt_rand(0, count($context['news_lines']) - 1)];
3525
+	if (!empty($context['news_lines'])) {
3526
+			$context['random_news_line'] = $context['news_lines'][mt_rand(0, count($context['news_lines']) - 1)];
3527
+	}
3345 3528
 
3346 3529
 	if (!$user_info['is_guest'])
3347 3530
 	{
@@ -3350,40 +3533,48 @@  discard block
 block discarded – undo
3350 3533
 		$context['user']['alerts'] = &$user_info['alerts'];
3351 3534
 
3352 3535
 		// Personal message popup...
3353
-		if ($user_info['unread_messages'] > (isset($_SESSION['unread_messages']) ? $_SESSION['unread_messages'] : 0))
3354
-			$context['user']['popup_messages'] = true;
3355
-		else
3356
-			$context['user']['popup_messages'] = false;
3536
+		if ($user_info['unread_messages'] > (isset($_SESSION['unread_messages']) ? $_SESSION['unread_messages'] : 0)) {
3537
+					$context['user']['popup_messages'] = true;
3538
+		} else {
3539
+					$context['user']['popup_messages'] = false;
3540
+		}
3357 3541
 		$_SESSION['unread_messages'] = $user_info['unread_messages'];
3358 3542
 
3359
-		if (allowedTo('moderate_forum'))
3360
-			$context['unapproved_members'] = (!empty($modSettings['registration_method']) && ($modSettings['registration_method'] == 2 || (!empty($modSettings['coppaType']) && $modSettings['coppaType'] == 2))) || !empty($modSettings['approveAccountDeletion']) ? $modSettings['unapprovedMembers'] : 0;
3543
+		if (allowedTo('moderate_forum')) {
3544
+					$context['unapproved_members'] = (!empty($modSettings['registration_method']) && ($modSettings['registration_method'] == 2 || (!empty($modSettings['coppaType']) && $modSettings['coppaType'] == 2))) || !empty($modSettings['approveAccountDeletion']) ? $modSettings['unapprovedMembers'] : 0;
3545
+		}
3361 3546
 
3362 3547
 		$context['user']['avatar'] = array();
3363 3548
 
3364 3549
 		// Check for gravatar first since we might be forcing them...
3365 3550
 		if (($modSettings['gravatarEnabled'] && substr($user_info['avatar']['url'], 0, 11) == 'gravatar://') || !empty($modSettings['gravatarOverride']))
3366 3551
 		{
3367
-			if (!empty($modSettings['gravatarAllowExtraEmail']) && stristr($user_info['avatar']['url'], 'gravatar://') && strlen($user_info['avatar']['url']) > 11)
3368
-				$context['user']['avatar']['href'] = get_gravatar_url($smcFunc['substr']($user_info['avatar']['url'], 11));
3369
-			else
3370
-				$context['user']['avatar']['href'] = get_gravatar_url($user_info['email']);
3552
+			if (!empty($modSettings['gravatarAllowExtraEmail']) && stristr($user_info['avatar']['url'], 'gravatar://') && strlen($user_info['avatar']['url']) > 11) {
3553
+							$context['user']['avatar']['href'] = get_gravatar_url($smcFunc['substr']($user_info['avatar']['url'], 11));
3554
+			} else {
3555
+							$context['user']['avatar']['href'] = get_gravatar_url($user_info['email']);
3556
+			}
3371 3557
 		}
3372 3558
 		// Uploaded?
3373
-		elseif ($user_info['avatar']['url'] == '' && !empty($user_info['avatar']['id_attach']))
3374
-			$context['user']['avatar']['href'] = $user_info['avatar']['custom_dir'] ? $modSettings['custom_avatar_url'] . '/' . $user_info['avatar']['filename'] : $scripturl . '?action=dlattach;attach=' . $user_info['avatar']['id_attach'] . ';type=avatar';
3559
+		elseif ($user_info['avatar']['url'] == '' && !empty($user_info['avatar']['id_attach'])) {
3560
+					$context['user']['avatar']['href'] = $user_info['avatar']['custom_dir'] ? $modSettings['custom_avatar_url'] . '/' . $user_info['avatar']['filename'] : $scripturl . '?action=dlattach;attach=' . $user_info['avatar']['id_attach'] . ';type=avatar';
3561
+		}
3375 3562
 		// Full URL?
3376
-		elseif (strpos($user_info['avatar']['url'], 'http://') === 0 || strpos($user_info['avatar']['url'], 'https://') === 0)
3377
-			$context['user']['avatar']['href'] = $user_info['avatar']['url'];
3563
+		elseif (strpos($user_info['avatar']['url'], 'http://') === 0 || strpos($user_info['avatar']['url'], 'https://') === 0) {
3564
+					$context['user']['avatar']['href'] = $user_info['avatar']['url'];
3565
+		}
3378 3566
 		// Otherwise we assume it's server stored.
3379
-		elseif ($user_info['avatar']['url'] != '')
3380
-			$context['user']['avatar']['href'] = $modSettings['avatar_url'] . '/' . $smcFunc['htmlspecialchars']($user_info['avatar']['url']);
3567
+		elseif ($user_info['avatar']['url'] != '') {
3568
+					$context['user']['avatar']['href'] = $modSettings['avatar_url'] . '/' . $smcFunc['htmlspecialchars']($user_info['avatar']['url']);
3569
+		}
3381 3570
 		// No avatar at all? Fine, we have a big fat default avatar ;)
3382
-		else
3383
-			$context['user']['avatar']['href'] = $modSettings['avatar_url'] . '/default.png';
3571
+		else {
3572
+					$context['user']['avatar']['href'] = $modSettings['avatar_url'] . '/default.png';
3573
+		}
3384 3574
 
3385
-		if (!empty($context['user']['avatar']))
3386
-			$context['user']['avatar']['image'] = '<img src="' . $context['user']['avatar']['href'] . '" alt="" class="avatar">';
3575
+		if (!empty($context['user']['avatar'])) {
3576
+					$context['user']['avatar']['image'] = '<img src="' . $context['user']['avatar']['href'] . '" alt="" class="avatar">';
3577
+		}
3387 3578
 
3388 3579
 		// Figure out how long they've been logged in.
3389 3580
 		$context['user']['total_time_logged_in'] = array(
@@ -3391,8 +3582,7 @@  discard block
 block discarded – undo
3391 3582
 			'hours' => floor(($user_info['total_time_logged_in'] % 86400) / 3600),
3392 3583
 			'minutes' => floor(($user_info['total_time_logged_in'] % 3600) / 60)
3393 3584
 		);
3394
-	}
3395
-	else
3585
+	} else
3396 3586
 	{
3397 3587
 		$context['user']['messages'] = 0;
3398 3588
 		$context['user']['unread_messages'] = 0;
@@ -3400,12 +3590,14 @@  discard block
 block discarded – undo
3400 3590
 		$context['user']['total_time_logged_in'] = array('days' => 0, 'hours' => 0, 'minutes' => 0);
3401 3591
 		$context['user']['popup_messages'] = false;
3402 3592
 
3403
-		if (!empty($modSettings['registration_method']) && $modSettings['registration_method'] == 1)
3404
-			$txt['welcome_guest'] .= $txt['welcome_guest_activate'];
3593
+		if (!empty($modSettings['registration_method']) && $modSettings['registration_method'] == 1) {
3594
+					$txt['welcome_guest'] .= $txt['welcome_guest_activate'];
3595
+		}
3405 3596
 
3406 3597
 		// If we've upgraded recently, go easy on the passwords.
3407
-		if (!empty($modSettings['disableHashTime']) && ($modSettings['disableHashTime'] == 1 || time() < $modSettings['disableHashTime']))
3408
-			$context['disable_login_hashing'] = true;
3598
+		if (!empty($modSettings['disableHashTime']) && ($modSettings['disableHashTime'] == 1 || time() < $modSettings['disableHashTime'])) {
3599
+					$context['disable_login_hashing'] = true;
3600
+		}
3409 3601
 	}
3410 3602
 
3411 3603
 	// Setup the main menu items.
@@ -3418,8 +3610,8 @@  discard block
 block discarded – undo
3418 3610
 	$context['show_pm_popup'] = $context['user']['popup_messages'] && !empty($options['popup_messages']) && (!isset($_REQUEST['action']) || $_REQUEST['action'] != 'pm');
3419 3611
 
3420 3612
 	// 2.1+: Add the PM popup here instead. Theme authors can still override it simply by editing/removing the 'fPmPopup' in the array.
3421
-	if ($context['show_pm_popup'])
3422
-		addInlineJavaScript('
3613
+	if ($context['show_pm_popup']) {
3614
+			addInlineJavaScript('
3423 3615
 		jQuery(document).ready(function($) {
3424 3616
 			new smc_Popup({
3425 3617
 				heading: ' . JavaScriptEscape($txt['show_personal_messages_heading']) . ',
@@ -3427,24 +3619,28 @@  discard block
 block discarded – undo
3427 3619
 				icon_class: \'generic_icons mail_new\'
3428 3620
 			});
3429 3621
 		});');
3622
+	}
3430 3623
 
3431 3624
 	// Add a generic "Are you sure?" confirmation message.
3432 3625
 	addInlineJavaScript('
3433 3626
 	var smf_you_sure =' . JavaScriptEscape($txt['quickmod_confirm']) .';');
3434 3627
 
3435 3628
 	// Now add the capping code for avatars.
3436
-	if (!empty($modSettings['avatar_max_width_external']) && !empty($modSettings['avatar_max_height_external']) && !empty($modSettings['avatar_action_too_large']) && $modSettings['avatar_action_too_large'] == 'option_css_resize')
3437
-		addInlineCss('
3629
+	if (!empty($modSettings['avatar_max_width_external']) && !empty($modSettings['avatar_max_height_external']) && !empty($modSettings['avatar_action_too_large']) && $modSettings['avatar_action_too_large'] == 'option_css_resize') {
3630
+			addInlineCss('
3438 3631
 	img.avatar { max-width: ' . $modSettings['avatar_max_width_external'] . 'px; max-height: ' . $modSettings['avatar_max_height_external'] . 'px; }');
3632
+	}
3439 3633
 
3440 3634
 	// Add max image limits
3441
-	if (!empty($modSettings['max_image_width']))
3442
-		addInlineCss('
3635
+	if (!empty($modSettings['max_image_width'])) {
3636
+			addInlineCss('
3443 3637
 	.postarea .bbc_img { max-width: ' . $modSettings['max_image_width'] . 'px; }');
3638
+	}
3444 3639
 
3445
-	if (!empty($modSettings['max_image_height']))
3446
-		addInlineCss('
3640
+	if (!empty($modSettings['max_image_height'])) {
3641
+			addInlineCss('
3447 3642
 	.postarea .bbc_img { max-height: ' . $modSettings['max_image_height'] . 'px; }');
3643
+	}
3448 3644
 
3449 3645
 	// This looks weird, but it's because BoardIndex.php references the variable.
3450 3646
 	$context['common_stats']['latest_member'] = array(
@@ -3461,11 +3657,13 @@  discard block
 block discarded – undo
3461 3657
 	);
3462 3658
 	$context['common_stats']['boardindex_total_posts'] = sprintf($txt['boardindex_total_posts'], $context['common_stats']['total_posts'], $context['common_stats']['total_topics'], $context['common_stats']['total_members']);
3463 3659
 
3464
-	if (empty($settings['theme_version']))
3465
-		addJavaScriptVar('smf_scripturl', $scripturl);
3660
+	if (empty($settings['theme_version'])) {
3661
+			addJavaScriptVar('smf_scripturl', $scripturl);
3662
+	}
3466 3663
 
3467
-	if (!isset($context['page_title']))
3468
-		$context['page_title'] = '';
3664
+	if (!isset($context['page_title'])) {
3665
+			$context['page_title'] = '';
3666
+	}
3469 3667
 
3470 3668
 	// Set some specific vars.
3471 3669
 	$context['page_title_html_safe'] = $smcFunc['htmlspecialchars'](un_htmlspecialchars($context['page_title'])) . (!empty($context['current_page']) ? ' - ' . $txt['page'] . ' ' . ($context['current_page'] + 1) : '');
@@ -3475,21 +3673,23 @@  discard block
 block discarded – undo
3475 3673
 	$context['meta_tags'][] = array('property' => 'og:site_name', 'content' => $context['forum_name']);
3476 3674
 	$context['meta_tags'][] = array('property' => 'og:title', 'content' => $context['page_title_html_safe']);
3477 3675
 
3478
-	if (!empty($context['meta_keywords']))
3479
-		$context['meta_tags'][] = array('name' => 'keywords', 'content' => $context['meta_keywords']);
3676
+	if (!empty($context['meta_keywords'])) {
3677
+			$context['meta_tags'][] = array('name' => 'keywords', 'content' => $context['meta_keywords']);
3678
+	}
3480 3679
 
3481
-	if (!empty($context['canonical_url']))
3482
-		$context['meta_tags'][] = array('property' => 'og:url', 'content' => $context['canonical_url']);
3680
+	if (!empty($context['canonical_url'])) {
3681
+			$context['meta_tags'][] = array('property' => 'og:url', 'content' => $context['canonical_url']);
3682
+	}
3483 3683
 
3484
-	if (!empty($settings['og_image']))
3485
-		$context['meta_tags'][] = array('property' => 'og:image', 'content' => $settings['og_image']);
3684
+	if (!empty($settings['og_image'])) {
3685
+			$context['meta_tags'][] = array('property' => 'og:image', 'content' => $settings['og_image']);
3686
+	}
3486 3687
 
3487 3688
 	if (!empty($context['meta_description']))
3488 3689
 	{
3489 3690
 		$context['meta_tags'][] = array('property' => 'og:description', 'content' => $context['meta_description']);
3490 3691
 		$context['meta_tags'][] = array('name' => 'description', 'content' => $context['meta_description']);
3491
-	}
3492
-	else
3692
+	} else
3493 3693
 	{
3494 3694
 		$context['meta_tags'][] = array('property' => 'og:description', 'content' => $context['page_title_html_safe']);
3495 3695
 		$context['meta_tags'][] = array('name' => 'description', 'content' => $context['page_title_html_safe']);
@@ -3514,8 +3714,9 @@  discard block
 block discarded – undo
3514 3714
 	$memory_needed = memoryReturnBytes($needed);
3515 3715
 
3516 3716
 	// should we account for how much is currently being used?
3517
-	if ($in_use)
3518
-		$memory_needed += function_exists('memory_get_usage') ? memory_get_usage() : (2 * 1048576);
3717
+	if ($in_use) {
3718
+			$memory_needed += function_exists('memory_get_usage') ? memory_get_usage() : (2 * 1048576);
3719
+	}
3519 3720
 
3520 3721
 	// if more is needed, request it
3521 3722
 	if ($memory_current < $memory_needed)
@@ -3538,8 +3739,9 @@  discard block
 block discarded – undo
3538 3739
  */
3539 3740
 function memoryReturnBytes($val)
3540 3741
 {
3541
-	if (is_integer($val))
3542
-		return $val;
3742
+	if (is_integer($val)) {
3743
+			return $val;
3744
+	}
3543 3745
 
3544 3746
 	// Separate the number from the designator
3545 3747
 	$val = trim($val);
@@ -3575,10 +3777,11 @@  discard block
 block discarded – undo
3575 3777
 		header('last-modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
3576 3778
 
3577 3779
 		// Are we debugging the template/html content?
3578
-		if (!isset($_REQUEST['xml']) && isset($_GET['debug']) && !isBrowser('ie'))
3579
-			header('content-type: application/xhtml+xml');
3580
-		elseif (!isset($_REQUEST['xml']))
3581
-			header('content-type: text/html; charset=' . (empty($context['character_set']) ? 'ISO-8859-1' : $context['character_set']));
3780
+		if (!isset($_REQUEST['xml']) && isset($_GET['debug']) && !isBrowser('ie')) {
3781
+					header('content-type: application/xhtml+xml');
3782
+		} elseif (!isset($_REQUEST['xml'])) {
3783
+					header('content-type: text/html; charset=' . (empty($context['character_set']) ? 'ISO-8859-1' : $context['character_set']));
3784
+		}
3582 3785
 	}
3583 3786
 
3584 3787
 	header('content-type: text/' . (isset($_REQUEST['xml']) ? 'xml' : 'html') . '; charset=' . (empty($context['character_set']) ? 'ISO-8859-1' : $context['character_set']));
@@ -3587,8 +3790,9 @@  discard block
 block discarded – undo
3587 3790
 	if ($context['in_maintenance'] && $context['user']['is_admin'])
3588 3791
 	{
3589 3792
 		$position = array_search('body', $context['template_layers']);
3590
-		if ($position === false)
3591
-			$position = array_search('main', $context['template_layers']);
3793
+		if ($position === false) {
3794
+					$position = array_search('main', $context['template_layers']);
3795
+		}
3592 3796
 
3593 3797
 		if ($position !== false)
3594 3798
 		{
@@ -3616,23 +3820,25 @@  discard block
 block discarded – undo
3616 3820
 
3617 3821
 			foreach ($securityFiles as $i => $securityFile)
3618 3822
 			{
3619
-				if (!file_exists($boarddir . '/' . $securityFile))
3620
-					unset($securityFiles[$i]);
3823
+				if (!file_exists($boarddir . '/' . $securityFile)) {
3824
+									unset($securityFiles[$i]);
3825
+				}
3621 3826
 			}
3622 3827
 
3623 3828
 			// We are already checking so many files...just few more doesn't make any difference! :P
3624
-			if (!empty($modSettings['currentAttachmentUploadDir']))
3625
-				$path = $modSettings['attachmentUploadDir'][$modSettings['currentAttachmentUploadDir']];
3626
-
3627
-			else
3628
-				$path = $modSettings['attachmentUploadDir'];
3829
+			if (!empty($modSettings['currentAttachmentUploadDir'])) {
3830
+							$path = $modSettings['attachmentUploadDir'][$modSettings['currentAttachmentUploadDir']];
3831
+			} else {
3832
+							$path = $modSettings['attachmentUploadDir'];
3833
+			}
3629 3834
 
3630 3835
 			secureDirectory($path, true);
3631 3836
 			secureDirectory($cachedir);
3632 3837
 
3633 3838
 			// If agreement is enabled, at least the english version shall exists
3634
-			if ($modSettings['requireAgreement'])
3635
-				$agreement = !file_exists($boarddir . '/agreement.txt');
3839
+			if ($modSettings['requireAgreement']) {
3840
+							$agreement = !file_exists($boarddir . '/agreement.txt');
3841
+			}
3636 3842
 
3637 3843
 			if (!empty($securityFiles) || (!empty($modSettings['cache_enable']) && !is_writable($cachedir)) || !empty($agreement))
3638 3844
 			{
@@ -3647,18 +3853,21 @@  discard block
 block discarded – undo
3647 3853
 					echo '
3648 3854
 				', $txt['not_removed'], '<strong>', $securityFile, '</strong>!<br>';
3649 3855
 
3650
-					if ($securityFile == 'Settings.php~' || $securityFile == 'Settings_bak.php~')
3651
-						echo '
3856
+					if ($securityFile == 'Settings.php~' || $securityFile == 'Settings_bak.php~') {
3857
+											echo '
3652 3858
 				', sprintf($txt['not_removed_extra'], $securityFile, substr($securityFile, 0, -1)), '<br>';
3859
+					}
3653 3860
 				}
3654 3861
 
3655
-				if (!empty($modSettings['cache_enable']) && !is_writable($cachedir))
3656
-					echo '
3862
+				if (!empty($modSettings['cache_enable']) && !is_writable($cachedir)) {
3863
+									echo '
3657 3864
 				<strong>', $txt['cache_writable'], '</strong><br>';
3865
+				}
3658 3866
 
3659
-				if (!empty($agreement))
3660
-					echo '
3867
+				if (!empty($agreement)) {
3868
+									echo '
3661 3869
 				<strong>', $txt['agreement_missing'], '</strong><br>';
3870
+				}
3662 3871
 
3663 3872
 				echo '
3664 3873
 			</p>
@@ -3673,16 +3882,18 @@  discard block
 block discarded – undo
3673 3882
 				<div class="windowbg alert" style="margin: 2ex; padding: 2ex; border: 2px dashed red;">
3674 3883
 					', sprintf($txt['you_are_post_banned'], $user_info['is_guest'] ? $txt['guest_title'] : $user_info['name']);
3675 3884
 
3676
-			if (!empty($_SESSION['ban']['cannot_post']['reason']))
3677
-				echo '
3885
+			if (!empty($_SESSION['ban']['cannot_post']['reason'])) {
3886
+							echo '
3678 3887
 					<div style="padding-left: 4ex; padding-top: 1ex;">', $_SESSION['ban']['cannot_post']['reason'], '</div>';
3888
+			}
3679 3889
 
3680
-			if (!empty($_SESSION['ban']['expire_time']))
3681
-				echo '
3890
+			if (!empty($_SESSION['ban']['expire_time'])) {
3891
+							echo '
3682 3892
 					<div>', sprintf($txt['your_ban_expires'], timeformat($_SESSION['ban']['expire_time'], false)), '</div>';
3683
-			else
3684
-				echo '
3893
+			} else {
3894
+							echo '
3685 3895
 					<div>', $txt['your_ban_expires_never'], '</div>';
3896
+			}
3686 3897
 
3687 3898
 			echo '
3688 3899
 				</div>';
@@ -3698,8 +3909,9 @@  discard block
 block discarded – undo
3698 3909
 	global $forum_copyright, $software_year, $forum_version;
3699 3910
 
3700 3911
 	// Don't display copyright for things like SSI.
3701
-	if (!isset($forum_version) || !isset($software_year))
3702
-		return;
3912
+	if (!isset($forum_version) || !isset($software_year)) {
3913
+			return;
3914
+	}
3703 3915
 
3704 3916
 	// Put in the version...
3705 3917
 	printf($forum_copyright, $forum_version, $software_year);
@@ -3717,9 +3929,10 @@  discard block
 block discarded – undo
3717 3929
 	$context['load_time'] = round(microtime(true) - $time_start, 3);
3718 3930
 	$context['load_queries'] = $db_count;
3719 3931
 
3720
-	foreach (array_reverse($context['template_layers']) as $layer)
3721
-		loadSubTemplate($layer . '_below', true);
3722
-}
3932
+	foreach (array_reverse($context['template_layers']) as $layer) {
3933
+			loadSubTemplate($layer . '_below', true);
3934
+	}
3935
+	}
3723 3936
 
3724 3937
 /**
3725 3938
  * Output the Javascript files
@@ -3753,8 +3966,7 @@  discard block
 block discarded – undo
3753 3966
 			{
3754 3967
 				echo '
3755 3968
 		var ', $key, ';';
3756
-			}
3757
-			else
3969
+			} else
3758 3970
 			{
3759 3971
 				echo '
3760 3972
 		var ', $key, ' = ', $value, ';';
@@ -3773,27 +3985,29 @@  discard block
 block discarded – undo
3773 3985
 		foreach ($context['javascript_files'] as $id => $js_file)
3774 3986
 		{
3775 3987
 			// Last minute call! allow theme authors to disable single files.
3776
-			if (!empty($settings['disable_files']) && in_array($id, $settings['disable_files']))
3777
-				continue;
3988
+			if (!empty($settings['disable_files']) && in_array($id, $settings['disable_files'])) {
3989
+							continue;
3990
+			}
3778 3991
 
3779 3992
 			// By default files don't get minimized unless the file explicitly says so!
3780 3993
 			if (!empty($js_file['options']['minimize']) && !empty($modSettings['minimize_files']))
3781 3994
 			{
3782
-				if (!empty($js_file['options']['async']))
3783
-					$toMinify['async'][] = $js_file;
3784
-				elseif (!empty($js_file['options']['defer']))
3785
-					$toMinify['defer'][] = $js_file;
3786
-				else
3787
-					$toMinify['standard'][] = $js_file;
3995
+				if (!empty($js_file['options']['async'])) {
3996
+									$toMinify['async'][] = $js_file;
3997
+				} elseif (!empty($js_file['options']['defer'])) {
3998
+									$toMinify['defer'][] = $js_file;
3999
+				} else {
4000
+									$toMinify['standard'][] = $js_file;
4001
+				}
3788 4002
 
3789 4003
 				// Grab a random seed.
3790
-				if (!isset($minSeed) && isset($js_file['options']['seed']))
3791
-					$minSeed = $js_file['options']['seed'];
3792
-			}
3793
-
3794
-			else
3795
-				echo '
4004
+				if (!isset($minSeed) && isset($js_file['options']['seed'])) {
4005
+									$minSeed = $js_file['options']['seed'];
4006
+				}
4007
+			} else {
4008
+							echo '
3796 4009
 	<script src="', $js_file['fileUrl'], '"', !empty($js_file['options']['async']) ? ' async' : '', !empty($js_file['options']['defer']) ? ' defer' : '', '></script>';
4010
+			}
3797 4011
 		}
3798 4012
 
3799 4013
 		foreach ($toMinify as $js_files)
@@ -3804,9 +4018,10 @@  discard block
 block discarded – undo
3804 4018
 
3805 4019
 				$minSuccessful = array_keys($result) === array('smf_minified');
3806 4020
 
3807
-				foreach ($result as $minFile)
3808
-					echo '
4021
+				foreach ($result as $minFile) {
4022
+									echo '
3809 4023
 	<script src="', $minFile['fileUrl'], $minSuccessful && isset($minSeed) ? $minSeed : '', '"', !empty($minFile['options']['async']) ? ' async' : '', !empty($minFile['options']['defer']) ? ' defer' : '', '></script>';
4024
+				}
3810 4025
 			}
3811 4026
 		}
3812 4027
 	}
@@ -3820,8 +4035,9 @@  discard block
 block discarded – undo
3820 4035
 <script>
3821 4036
 window.addEventListener("DOMContentLoaded", function() {';
3822 4037
 
3823
-			foreach ($context['javascript_inline']['defer'] as $js_code)
3824
-				echo $js_code;
4038
+			foreach ($context['javascript_inline']['defer'] as $js_code) {
4039
+							echo $js_code;
4040
+			}
3825 4041
 
3826 4042
 			echo '
3827 4043
 });
@@ -3833,8 +4049,9 @@  discard block
 block discarded – undo
3833 4049
 			echo '
3834 4050
 	<script>';
3835 4051
 
3836
-			foreach ($context['javascript_inline']['standard'] as $js_code)
3837
-				echo $js_code;
4052
+			foreach ($context['javascript_inline']['standard'] as $js_code) {
4053
+							echo $js_code;
4054
+			}
3838 4055
 
3839 4056
 			echo '
3840 4057
 	</script>';
@@ -3862,23 +4079,26 @@  discard block
 block discarded – undo
3862 4079
 	foreach ($context['css_files'] as $id => $file)
3863 4080
 	{
3864 4081
 		// Last minute call! allow theme authors to disable single files.
3865
-		if (!empty($settings['disable_files']) && in_array($id, $settings['disable_files']))
3866
-			continue;
4082
+		if (!empty($settings['disable_files']) && in_array($id, $settings['disable_files'])) {
4083
+					continue;
4084
+		}
3867 4085
 
3868 4086
 		// Files are minimized unless they explicitly opt out.
3869
-		if (!isset($file['options']['minimize']))
3870
-			$file['options']['minimize'] = true;
4087
+		if (!isset($file['options']['minimize'])) {
4088
+					$file['options']['minimize'] = true;
4089
+		}
3871 4090
 
3872 4091
 		if (!empty($file['options']['minimize']) && !empty($modSettings['minimize_files']))
3873 4092
 		{
3874 4093
 			$toMinify[] = $file;
3875 4094
 
3876 4095
 			// Grab a random seed.
3877
-			if (!isset($minSeed) && isset($file['options']['seed']))
3878
-				$minSeed = $file['options']['seed'];
4096
+			if (!isset($minSeed) && isset($file['options']['seed'])) {
4097
+							$minSeed = $file['options']['seed'];
4098
+			}
4099
+		} else {
4100
+					$normal[] = $file['fileUrl'];
3879 4101
 		}
3880
-		else
3881
-			$normal[] = $file['fileUrl'];
3882 4102
 	}
3883 4103
 
3884 4104
 	if (!empty($toMinify))
@@ -3887,23 +4107,26 @@  discard block
 block discarded – undo
3887 4107
 
3888 4108
 		$minSuccessful = array_keys($result) === array('smf_minified');
3889 4109
 
3890
-		foreach ($result as $minFile)
3891
-			echo '
4110
+		foreach ($result as $minFile) {
4111
+					echo '
3892 4112
 	<link rel="stylesheet" href="', $minFile['fileUrl'], $minSuccessful && isset($minSeed) ? $minSeed : '', '">';
4113
+		}
3893 4114
 	}
3894 4115
 
3895 4116
 	// Print the rest after the minified files.
3896
-	if (!empty($normal))
3897
-		foreach ($normal as $nf)
4117
+	if (!empty($normal)) {
4118
+			foreach ($normal as $nf)
3898 4119
 			echo '
3899 4120
 	<link rel="stylesheet" href="', $nf ,'">';
4121
+	}
3900 4122
 
3901 4123
 	if ($db_show_debug === true)
3902 4124
 	{
3903 4125
 		// Try to keep only what's useful.
3904 4126
 		$repl = array($boardurl . '/Themes/' => '', $boardurl . '/' => '');
3905
-		foreach ($context['css_files'] as $file)
3906
-			$context['debug']['sheets'][] = strtr($file['fileName'], $repl);
4127
+		foreach ($context['css_files'] as $file) {
4128
+					$context['debug']['sheets'][] = strtr($file['fileName'], $repl);
4129
+		}
3907 4130
 	}
3908 4131
 
3909 4132
 	if (!empty($context['css_header']))
@@ -3911,9 +4134,10 @@  discard block
 block discarded – undo
3911 4134
 		echo '
3912 4135
 	<style>';
3913 4136
 
3914
-		foreach ($context['css_header'] as $css)
3915
-			echo $css .'
4137
+		foreach ($context['css_header'] as $css) {
4138
+					echo $css .'
3916 4139
 	';
4140
+		}
3917 4141
 
3918 4142
 		echo'
3919 4143
 	</style>';
@@ -3936,8 +4160,9 @@  discard block
 block discarded – undo
3936 4160
 	$type = !empty($type) && in_array($type, $types) ? $type : false;
3937 4161
 	$data = is_array($data) ? $data : array();
3938 4162
 
3939
-	if (empty($type) || empty($data))
3940
-		return $data;
4163
+	if (empty($type) || empty($data)) {
4164
+			return $data;
4165
+	}
3941 4166
 
3942 4167
 	// Different pages include different files, so we use a hash to label the different combinations
3943 4168
 	$hash = md5(implode(' ', array_map(function($file) { return $file['filePath'] . (int) @filesize($file['filePath']) . (int) @filemtime($file['filePath']); }, $data)));
@@ -3946,13 +4171,14 @@  discard block
 block discarded – undo
3946 4171
 	list($toCache, $async, $defer) = array_pad((array) cache_get_data('minimized_' . $settings['theme_id'] . '_' . $type . '_' . $hash, 86400), 3, null);
3947 4172
 
3948 4173
 	// Already done?
3949
-	if (!empty($toCache))
3950
-		return array('smf_minified' => array(
4174
+	if (!empty($toCache)) {
4175
+			return array('smf_minified' => array(
3951 4176
 			'fileUrl' => $settings['theme_url'] . '/' . ($type == 'css' ? 'css' : 'scripts') . '/' . basename($toCache),
3952 4177
 			'filePath' => $toCache,
3953 4178
 			'fileName' => basename($toCache),
3954 4179
 			'options' => array('async' => !empty($async), 'defer' => !empty($defer)),
3955 4180
 		));
4181
+	}
3956 4182
 
3957 4183
 
3958 4184
 	// No namespaces, sorry!
@@ -3982,9 +4208,9 @@  discard block
 block discarded – undo
3982 4208
 
3983 4209
 	foreach ($data as $id => $file)
3984 4210
 	{
3985
-		if (empty($file['filePath']))
3986
-			$toAdd = false;
3987
-		else
4211
+		if (empty($file['filePath'])) {
4212
+					$toAdd = false;
4213
+		} else
3988 4214
 		{
3989 4215
 			$seed = isset($file['options']['seed']) ? $file['options']['seed'] : '';
3990 4216
 			$tempFile = str_replace($seed, '', $file['filePath']);
@@ -3992,12 +4218,14 @@  discard block
 block discarded – undo
3992 4218
 		}
3993 4219
 
3994 4220
 		// A minified script should only be loaded asynchronously if all its components wanted to be.
3995
-		if (empty($file['options']['async']))
3996
-			$async = false;
4221
+		if (empty($file['options']['async'])) {
4222
+					$async = false;
4223
+		}
3997 4224
 
3998 4225
 		// A minified script should only be deferred if all its components wanted to be.
3999
-		if (empty($file['options']['defer']))
4000
-			$defer = false;
4226
+		if (empty($file['options']['defer'])) {
4227
+					$defer = false;
4228
+		}
4001 4229
 
4002 4230
 		// The file couldn't be located so it won't be added. Log this error.
4003 4231
 		if (empty($toAdd))
@@ -4063,12 +4291,14 @@  discard block
 block discarded – undo
4063 4291
 			foreach (glob(rtrim($theme['dir'], '/') . '/' . ($type == 'css' ? 'css' : 'scripts') . '/minified*.' . $type) as $filename)
4064 4292
 			{
4065 4293
 				// Remove the cache entry
4066
-				if (preg_match('~([a-zA-Z0-9]+)\.' . $type . '$~', $filename, $matches))
4067
-					cache_put_data('minimized_' . $theme['id'] . '_' . $type . '_' . $matches[1], null);
4294
+				if (preg_match('~([a-zA-Z0-9]+)\.' . $type . '$~', $filename, $matches)) {
4295
+									cache_put_data('minimized_' . $theme['id'] . '_' . $type . '_' . $matches[1], null);
4296
+				}
4068 4297
 
4069 4298
 				// Try to delete the file. Add it to our error list if it fails.
4070
-				if (!@unlink($filename))
4071
-					$not_deleted[] = $filename;
4299
+				if (!@unlink($filename)) {
4300
+									$not_deleted[] = $filename;
4301
+				}
4072 4302
 			}
4073 4303
 		}
4074 4304
 	}
@@ -4100,8 +4330,9 @@  discard block
 block discarded – undo
4100 4330
 	global $modSettings, $smcFunc;
4101 4331
 
4102 4332
 	// Just make up a nice hash...
4103
-	if ($new)
4104
-		return sha1(md5($filename . time()) . mt_rand());
4333
+	if ($new) {
4334
+			return sha1(md5($filename . time()) . mt_rand());
4335
+	}
4105 4336
 
4106 4337
 	// Just make sure that attachment id is only a int
4107 4338
 	$attachment_id = (int) $attachment_id;
@@ -4118,23 +4349,25 @@  discard block
 block discarded – undo
4118 4349
 				'id_attach' => $attachment_id,
4119 4350
 			));
4120 4351
 
4121
-		if ($smcFunc['db_num_rows']($request) === 0)
4122
-			return false;
4352
+		if ($smcFunc['db_num_rows']($request) === 0) {
4353
+					return false;
4354
+		}
4123 4355
 
4124 4356
 		list ($file_hash) = $smcFunc['db_fetch_row']($request);
4125 4357
 		$smcFunc['db_free_result']($request);
4126 4358
 	}
4127 4359
 
4128 4360
 	// Still no hash? mmm...
4129
-	if (empty($file_hash))
4130
-		$file_hash = sha1(md5($filename . time()) . mt_rand());
4361
+	if (empty($file_hash)) {
4362
+			$file_hash = sha1(md5($filename . time()) . mt_rand());
4363
+	}
4131 4364
 
4132 4365
 	// Are we using multiple directories?
4133
-	if (is_array($modSettings['attachmentUploadDir']))
4134
-		$path = $modSettings['attachmentUploadDir'][$dir];
4135
-
4136
-	else
4137
-		$path = $modSettings['attachmentUploadDir'];
4366
+	if (is_array($modSettings['attachmentUploadDir'])) {
4367
+			$path = $modSettings['attachmentUploadDir'][$dir];
4368
+	} else {
4369
+			$path = $modSettings['attachmentUploadDir'];
4370
+	}
4138 4371
 
4139 4372
 	return $path . '/' . $attachment_id . '_' . $file_hash .'.dat';
4140 4373
 }
@@ -4149,8 +4382,9 @@  discard block
 block discarded – undo
4149 4382
 function ip2range($fullip)
4150 4383
 {
4151 4384
 	// Pretend that 'unknown' is 255.255.255.255. (since that can't be an IP anyway.)
4152
-	if ($fullip == 'unknown')
4153
-		$fullip = '255.255.255.255';
4385
+	if ($fullip == 'unknown') {
4386
+			$fullip = '255.255.255.255';
4387
+	}
4154 4388
 
4155 4389
 	$ip_parts = explode('-', $fullip);
4156 4390
 	$ip_array = array();
@@ -4174,10 +4408,11 @@  discard block
 block discarded – undo
4174 4408
 		$ip_array['low'] = $ip_parts[0];
4175 4409
 		$ip_array['high'] = $ip_parts[1];
4176 4410
 		return $ip_array;
4177
-	}
4178
-	elseif (count($ip_parts) == 2) // if ip 22.22.*-22.22.*
4411
+	} elseif (count($ip_parts) == 2) {
4412
+		// if ip 22.22.*-22.22.*
4179 4413
 	{
4180 4414
 		$valid_low = isValidIP($ip_parts[0]);
4415
+	}
4181 4416
 		$valid_high = isValidIP($ip_parts[1]);
4182 4417
 		$count = 0;
4183 4418
 		$mode = (preg_match('/:/',$ip_parts[0]) > 0 ? ':' : '.');
@@ -4192,7 +4427,9 @@  discard block
 block discarded – undo
4192 4427
 				$ip_parts[0] .= $mode . $min;
4193 4428
 				$valid_low = isValidIP($ip_parts[0]);
4194 4429
 				$count++;
4195
-				if ($count > 9) break;
4430
+				if ($count > 9) {
4431
+					break;
4432
+				}
4196 4433
 			}
4197 4434
 		}
4198 4435
 
@@ -4206,7 +4443,9 @@  discard block
 block discarded – undo
4206 4443
 				$ip_parts[1] .= $mode . $max;
4207 4444
 				$valid_high = isValidIP($ip_parts[1]);
4208 4445
 				$count++;
4209
-				if ($count > 9) break;
4446
+				if ($count > 9) {
4447
+					break;
4448
+				}
4210 4449
 			}
4211 4450
 		}
4212 4451
 
@@ -4230,46 +4469,54 @@  discard block
 block discarded – undo
4230 4469
 {
4231 4470
 	global $modSettings;
4232 4471
 
4233
-	if (($host = cache_get_data('hostlookup-' . $ip, 600)) !== null)
4234
-		return $host;
4472
+	if (($host = cache_get_data('hostlookup-' . $ip, 600)) !== null) {
4473
+			return $host;
4474
+	}
4235 4475
 	$t = microtime();
4236 4476
 
4237 4477
 	// Try the Linux host command, perhaps?
4238 4478
 	if (!isset($host) && (strpos(strtolower(PHP_OS), 'win') === false || strpos(strtolower(PHP_OS), 'darwin') !== false) && mt_rand(0, 1) == 1)
4239 4479
 	{
4240
-		if (!isset($modSettings['host_to_dis']))
4241
-			$test = @shell_exec('host -W 1 ' . @escapeshellarg($ip));
4242
-		else
4243
-			$test = @shell_exec('host ' . @escapeshellarg($ip));
4480
+		if (!isset($modSettings['host_to_dis'])) {
4481
+					$test = @shell_exec('host -W 1 ' . @escapeshellarg($ip));
4482
+		} else {
4483
+					$test = @shell_exec('host ' . @escapeshellarg($ip));
4484
+		}
4244 4485
 
4245 4486
 		// Did host say it didn't find anything?
4246
-		if (strpos($test, 'not found') !== false)
4247
-			$host = '';
4487
+		if (strpos($test, 'not found') !== false) {
4488
+					$host = '';
4489
+		}
4248 4490
 		// Invalid server option?
4249
-		elseif ((strpos($test, 'invalid option') || strpos($test, 'Invalid query name 1')) && !isset($modSettings['host_to_dis']))
4250
-			updateSettings(array('host_to_dis' => 1));
4491
+		elseif ((strpos($test, 'invalid option') || strpos($test, 'Invalid query name 1')) && !isset($modSettings['host_to_dis'])) {
4492
+					updateSettings(array('host_to_dis' => 1));
4493
+		}
4251 4494
 		// Maybe it found something, after all?
4252
-		elseif (preg_match('~\s([^\s]+?)\.\s~', $test, $match) == 1)
4253
-			$host = $match[1];
4495
+		elseif (preg_match('~\s([^\s]+?)\.\s~', $test, $match) == 1) {
4496
+					$host = $match[1];
4497
+		}
4254 4498
 	}
4255 4499
 
4256 4500
 	// This is nslookup; usually only Windows, but possibly some Unix?
4257 4501
 	if (!isset($host) && stripos(PHP_OS, 'win') !== false && strpos(strtolower(PHP_OS), 'darwin') === false && mt_rand(0, 1) == 1)
4258 4502
 	{
4259 4503
 		$test = @shell_exec('nslookup -timeout=1 ' . @escapeshellarg($ip));
4260
-		if (strpos($test, 'Non-existent domain') !== false)
4261
-			$host = '';
4262
-		elseif (preg_match('~Name:\s+([^\s]+)~', $test, $match) == 1)
4263
-			$host = $match[1];
4504
+		if (strpos($test, 'Non-existent domain') !== false) {
4505
+					$host = '';
4506
+		} elseif (preg_match('~Name:\s+([^\s]+)~', $test, $match) == 1) {
4507
+					$host = $match[1];
4508
+		}
4264 4509
 	}
4265 4510
 
4266 4511
 	// This is the last try :/.
4267
-	if (!isset($host) || $host === false)
4268
-		$host = @gethostbyaddr($ip);
4512
+	if (!isset($host) || $host === false) {
4513
+			$host = @gethostbyaddr($ip);
4514
+	}
4269 4515
 
4270 4516
 	// It took a long time, so let's cache it!
4271
-	if (array_sum(explode(' ', microtime())) - array_sum(explode(' ', $t)) > 0.5)
4272
-		cache_put_data('hostlookup-' . $ip, $host, 600);
4517
+	if (array_sum(explode(' ', microtime())) - array_sum(explode(' ', $t)) > 0.5) {
4518
+			cache_put_data('hostlookup-' . $ip, $host, 600);
4519
+	}
4273 4520
 
4274 4521
 	return $host;
4275 4522
 }
@@ -4305,20 +4552,21 @@  discard block
 block discarded – undo
4305 4552
 			{
4306 4553
 				$encrypted = substr(crypt($word, 'uk'), 2, $max_chars);
4307 4554
 				$total = 0;
4308
-				for ($i = 0; $i < $max_chars; $i++)
4309
-					$total += $possible_chars[ord($encrypted{$i})] * pow(63, $i);
4555
+				for ($i = 0; $i < $max_chars; $i++) {
4556
+									$total += $possible_chars[ord($encrypted{$i})] * pow(63, $i);
4557
+				}
4310 4558
 				$returned_ints[] = $max_chars == 4 ? min($total, 16777215) : $total;
4311 4559
 			}
4312 4560
 		}
4313 4561
 		return array_unique($returned_ints);
4314
-	}
4315
-	else
4562
+	} else
4316 4563
 	{
4317 4564
 		// Trim characters before and after and add slashes for database insertion.
4318 4565
 		$returned_words = array();
4319
-		foreach ($words as $word)
4320
-			if (($word = trim($word, '-_\'')) !== '')
4566
+		foreach ($words as $word) {
4567
+					if (($word = trim($word, '-_\'')) !== '')
4321 4568
 				$returned_words[] = $max_chars === null ? $word : substr($word, 0, $max_chars);
4569
+		}
4322 4570
 
4323 4571
 		// Filter out all words that occur more than once.
4324 4572
 		return array_unique($returned_words);
@@ -4340,16 +4588,18 @@  discard block
 block discarded – undo
4340 4588
 	global $settings, $txt;
4341 4589
 
4342 4590
 	// Does the current loaded theme have this and we are not forcing the usage of this function?
4343
-	if (function_exists('template_create_button') && !$force_use)
4344
-		return template_create_button($name, $alt, $label = '', $custom = '');
4591
+	if (function_exists('template_create_button') && !$force_use) {
4592
+			return template_create_button($name, $alt, $label = '', $custom = '');
4593
+	}
4345 4594
 
4346
-	if (!$settings['use_image_buttons'])
4347
-		return $txt[$alt];
4348
-	elseif (!empty($settings['use_buttons']))
4349
-		return '<span class="generic_icons ' . $name . '" alt="' . $txt[$alt] . '"></span>' . ($label != '' ? '&nbsp;<strong>' . $txt[$label] . '</strong>' : '');
4350
-	else
4351
-		return '<img src="' . $settings['lang_images_url'] . '/' . $name . '" alt="' . $txt[$alt] . '" ' . $custom . '>';
4352
-}
4595
+	if (!$settings['use_image_buttons']) {
4596
+			return $txt[$alt];
4597
+	} elseif (!empty($settings['use_buttons'])) {
4598
+			return '<span class="generic_icons ' . $name . '" alt="' . $txt[$alt] . '"></span>' . ($label != '' ? '&nbsp;<strong>' . $txt[$label] . '</strong>' : '');
4599
+	} else {
4600
+			return '<img src="' . $settings['lang_images_url'] . '/' . $name . '" alt="' . $txt[$alt] . '" ' . $custom . '>';
4601
+	}
4602
+	}
4353 4603
 
4354 4604
 /**
4355 4605
  * Sets up all of the top menu buttons
@@ -4392,9 +4642,10 @@  discard block
 block discarded – undo
4392 4642
 	var user_menus = new smc_PopupMenu();
4393 4643
 	user_menus.add("profile", "' . $scripturl . '?action=profile;area=popup");
4394 4644
 	user_menus.add("alerts", "' . $scripturl . '?action=profile;area=alerts_popup;u='. $context['user']['id'] .'");', true);
4395
-		if ($context['allow_pm'])
4396
-			addInlineJavaScript('
4645
+		if ($context['allow_pm']) {
4646
+					addInlineJavaScript('
4397 4647
 	user_menus.add("pm", "' . $scripturl . '?action=pm;sa=popup");', true);
4648
+		}
4398 4649
 
4399 4650
 		if (!empty($modSettings['enable_ajax_alerts']))
4400 4651
 		{
@@ -4554,88 +4805,96 @@  discard block
 block discarded – undo
4554 4805
 
4555 4806
 		// Now we put the buttons in the context so the theme can use them.
4556 4807
 		$menu_buttons = array();
4557
-		foreach ($buttons as $act => $button)
4558
-			if (!empty($button['show']))
4808
+		foreach ($buttons as $act => $button) {
4809
+					if (!empty($button['show']))
4559 4810
 			{
4560 4811
 				$button['active_button'] = false;
4812
+		}
4561 4813
 
4562 4814
 				// This button needs some action.
4563
-				if (isset($button['action_hook']))
4564
-					$needs_action_hook = true;
4815
+				if (isset($button['action_hook'])) {
4816
+									$needs_action_hook = true;
4817
+				}
4565 4818
 
4566 4819
 				// Make sure the last button truly is the last button.
4567 4820
 				if (!empty($button['is_last']))
4568 4821
 				{
4569
-					if (isset($last_button))
4570
-						unset($menu_buttons[$last_button]['is_last']);
4822
+					if (isset($last_button)) {
4823
+											unset($menu_buttons[$last_button]['is_last']);
4824
+					}
4571 4825
 					$last_button = $act;
4572 4826
 				}
4573 4827
 
4574 4828
 				// Go through the sub buttons if there are any.
4575
-				if (!empty($button['sub_buttons']))
4576
-					foreach ($button['sub_buttons'] as $key => $subbutton)
4829
+				if (!empty($button['sub_buttons'])) {
4830
+									foreach ($button['sub_buttons'] as $key => $subbutton)
4577 4831
 					{
4578 4832
 						if (empty($subbutton['show']))
4579 4833
 							unset($button['sub_buttons'][$key]);
4834
+				}
4580 4835
 
4581 4836
 						// 2nd level sub buttons next...
4582 4837
 						if (!empty($subbutton['sub_buttons']))
4583 4838
 						{
4584 4839
 							foreach ($subbutton['sub_buttons'] as $key2 => $sub_button2)
4585 4840
 							{
4586
-								if (empty($sub_button2['show']))
4587
-									unset($button['sub_buttons'][$key]['sub_buttons'][$key2]);
4841
+								if (empty($sub_button2['show'])) {
4842
+																	unset($button['sub_buttons'][$key]['sub_buttons'][$key2]);
4843
+								}
4588 4844
 							}
4589 4845
 						}
4590 4846
 					}
4591 4847
 
4592 4848
 				// Does this button have its own icon?
4593
-				if (isset($button['icon']) && file_exists($settings['theme_dir'] . '/images/' . $button['icon']))
4594
-					$button['icon'] = '<img src="' . $settings['images_url'] . '/' . $button['icon'] . '" alt="">';
4595
-				elseif (isset($button['icon']) && file_exists($settings['default_theme_dir'] . '/images/' . $button['icon']))
4596
-					$button['icon'] = '<img src="' . $settings['default_images_url'] . '/' . $button['icon'] . '" alt="">';
4597
-				elseif (isset($button['icon']))
4598
-					$button['icon'] = '<span class="generic_icons ' . $button['icon'] . '"></span>';
4599
-				else
4600
-					$button['icon'] = '<span class="generic_icons ' . $act . '"></span>';
4849
+				if (isset($button['icon']) && file_exists($settings['theme_dir'] . '/images/' . $button['icon'])) {
4850
+									$button['icon'] = '<img src="' . $settings['images_url'] . '/' . $button['icon'] . '" alt="">';
4851
+				} elseif (isset($button['icon']) && file_exists($settings['default_theme_dir'] . '/images/' . $button['icon'])) {
4852
+									$button['icon'] = '<img src="' . $settings['default_images_url'] . '/' . $button['icon'] . '" alt="">';
4853
+				} elseif (isset($button['icon'])) {
4854
+									$button['icon'] = '<span class="generic_icons ' . $button['icon'] . '"></span>';
4855
+				} else {
4856
+									$button['icon'] = '<span class="generic_icons ' . $act . '"></span>';
4857
+				}
4601 4858
 
4602 4859
 				$menu_buttons[$act] = $button;
4603 4860
 			}
4604 4861
 
4605
-		if (!empty($modSettings['cache_enable']) && $modSettings['cache_enable'] >= 2)
4606
-			cache_put_data('menu_buttons-' . implode('_', $user_info['groups']) . '-' . $user_info['language'], $menu_buttons, $cacheTime);
4862
+		if (!empty($modSettings['cache_enable']) && $modSettings['cache_enable'] >= 2) {
4863
+					cache_put_data('menu_buttons-' . implode('_', $user_info['groups']) . '-' . $user_info['language'], $menu_buttons, $cacheTime);
4864
+		}
4607 4865
 	}
4608 4866
 
4609 4867
 	$context['menu_buttons'] = $menu_buttons;
4610 4868
 
4611 4869
 	// Logging out requires the session id in the url.
4612
-	if (isset($context['menu_buttons']['logout']))
4613
-		$context['menu_buttons']['logout']['href'] = sprintf($context['menu_buttons']['logout']['href'], $context['session_var'], $context['session_id']);
4870
+	if (isset($context['menu_buttons']['logout'])) {
4871
+			$context['menu_buttons']['logout']['href'] = sprintf($context['menu_buttons']['logout']['href'], $context['session_var'], $context['session_id']);
4872
+	}
4614 4873
 
4615 4874
 	// Figure out which action we are doing so we can set the active tab.
4616 4875
 	// Default to home.
4617 4876
 	$current_action = 'home';
4618 4877
 
4619
-	if (isset($context['menu_buttons'][$context['current_action']]))
4620
-		$current_action = $context['current_action'];
4621
-	elseif ($context['current_action'] == 'search2')
4622
-		$current_action = 'search';
4623
-	elseif ($context['current_action'] == 'theme')
4624
-		$current_action = isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'pick' ? 'profile' : 'admin';
4625
-	elseif ($context['current_action'] == 'register2')
4626
-		$current_action = 'register';
4627
-	elseif ($context['current_action'] == 'login2' || ($user_info['is_guest'] && $context['current_action'] == 'reminder'))
4628
-		$current_action = 'login';
4629
-	elseif ($context['current_action'] == 'groups' && $context['allow_moderation_center'])
4630
-		$current_action = 'moderate';
4878
+	if (isset($context['menu_buttons'][$context['current_action']])) {
4879
+			$current_action = $context['current_action'];
4880
+	} elseif ($context['current_action'] == 'search2') {
4881
+			$current_action = 'search';
4882
+	} elseif ($context['current_action'] == 'theme') {
4883
+			$current_action = isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'pick' ? 'profile' : 'admin';
4884
+	} elseif ($context['current_action'] == 'register2') {
4885
+			$current_action = 'register';
4886
+	} elseif ($context['current_action'] == 'login2' || ($user_info['is_guest'] && $context['current_action'] == 'reminder')) {
4887
+			$current_action = 'login';
4888
+	} elseif ($context['current_action'] == 'groups' && $context['allow_moderation_center']) {
4889
+			$current_action = 'moderate';
4890
+	}
4631 4891
 
4632 4892
 	// There are certain exceptions to the above where we don't want anything on the menu highlighted.
4633 4893
 	if ($context['current_action'] == 'profile' && !empty($context['user']['is_owner']))
4634 4894
 	{
4635 4895
 		$current_action = !empty($_GET['area']) && $_GET['area'] == 'showalerts' ? 'self_alerts' : 'self_profile';
4636 4896
 		$context[$current_action] = true;
4637
-	}
4638
-	elseif ($context['current_action'] == 'pm')
4897
+	} elseif ($context['current_action'] == 'pm')
4639 4898
 	{
4640 4899
 		$current_action = 'self_pm';
4641 4900
 		$context['self_pm'] = true;
@@ -4694,12 +4953,14 @@  discard block
 block discarded – undo
4694 4953
 	}
4695 4954
 
4696 4955
 	// Not all actions are simple.
4697
-	if (!empty($needs_action_hook))
4698
-		call_integration_hook('integrate_current_action', array(&$current_action));
4956
+	if (!empty($needs_action_hook)) {
4957
+			call_integration_hook('integrate_current_action', array(&$current_action));
4958
+	}
4699 4959
 
4700
-	if (isset($context['menu_buttons'][$current_action]))
4701
-		$context['menu_buttons'][$current_action]['active_button'] = true;
4702
-}
4960
+	if (isset($context['menu_buttons'][$current_action])) {
4961
+			$context['menu_buttons'][$current_action]['active_button'] = true;
4962
+	}
4963
+	}
4703 4964
 
4704 4965
 /**
4705 4966
  * Generate a random seed and ensure it's stored in settings.
@@ -4723,30 +4984,35 @@  discard block
 block discarded – undo
4723 4984
 	global $modSettings, $settings, $boarddir, $sourcedir, $db_show_debug;
4724 4985
 	global $context, $txt;
4725 4986
 
4726
-	if ($db_show_debug === true)
4727
-		$context['debug']['hooks'][] = $hook;
4987
+	if ($db_show_debug === true) {
4988
+			$context['debug']['hooks'][] = $hook;
4989
+	}
4728 4990
 
4729 4991
 	// Need to have some control.
4730
-	if (!isset($context['instances']))
4731
-		$context['instances'] = array();
4992
+	if (!isset($context['instances'])) {
4993
+			$context['instances'] = array();
4994
+	}
4732 4995
 
4733 4996
 	$results = array();
4734
-	if (empty($modSettings[$hook]))
4735
-		return $results;
4997
+	if (empty($modSettings[$hook])) {
4998
+			return $results;
4999
+	}
4736 5000
 
4737 5001
 	$functions = explode(',', $modSettings[$hook]);
4738 5002
 	// Loop through each function.
4739 5003
 	foreach ($functions as $function)
4740 5004
 	{
4741 5005
 		// Hook has been marked as "disabled". Skip it!
4742
-		if (strpos($function, '!') !== false)
4743
-			continue;
5006
+		if (strpos($function, '!') !== false) {
5007
+					continue;
5008
+		}
4744 5009
 
4745 5010
 		$call = call_helper($function, true);
4746 5011
 
4747 5012
 		// Is it valid?
4748
-		if (!empty($call))
4749
-			$results[$function] = call_user_func_array($call, $parameters);
5013
+		if (!empty($call)) {
5014
+					$results[$function] = call_user_func_array($call, $parameters);
5015
+		}
4750 5016
 
4751 5017
 		// Whatever it was suppose to call, it failed :(
4752 5018
 		elseif (!empty($function))
@@ -4762,8 +5028,9 @@  discard block
 block discarded – undo
4762 5028
 			}
4763 5029
 
4764 5030
 			// "Assume" the file resides on $boarddir somewhere...
4765
-			else
4766
-				log_error(sprintf($txt['hook_fail_call_to'], $function, $boarddir), 'general');
5031
+			else {
5032
+							log_error(sprintf($txt['hook_fail_call_to'], $function, $boarddir), 'general');
5033
+			}
4767 5034
 		}
4768 5035
 	}
4769 5036
 
@@ -4785,12 +5052,14 @@  discard block
 block discarded – undo
4785 5052
 	global $smcFunc, $modSettings;
4786 5053
 
4787 5054
 	// Any objects?
4788
-	if ($object)
4789
-		$function = $function . '#';
5055
+	if ($object) {
5056
+			$function = $function . '#';
5057
+	}
4790 5058
 
4791 5059
 	// Any files  to load?
4792
-	if (!empty($file) && is_string($file))
4793
-		$function = $file . (!empty($function) ? '|' . $function : '');
5060
+	if (!empty($file) && is_string($file)) {
5061
+			$function = $file . (!empty($function) ? '|' . $function : '');
5062
+	}
4794 5063
 
4795 5064
 	// Get the correct string.
4796 5065
 	$integration_call = $function;
@@ -4812,13 +5081,14 @@  discard block
 block discarded – undo
4812 5081
 		if (!empty($current_functions))
4813 5082
 		{
4814 5083
 			$current_functions = explode(',', $current_functions);
4815
-			if (in_array($integration_call, $current_functions))
4816
-				return;
5084
+			if (in_array($integration_call, $current_functions)) {
5085
+							return;
5086
+			}
4817 5087
 
4818 5088
 			$permanent_functions = array_merge($current_functions, array($integration_call));
5089
+		} else {
5090
+					$permanent_functions = array($integration_call);
4819 5091
 		}
4820
-		else
4821
-			$permanent_functions = array($integration_call);
4822 5092
 
4823 5093
 		updateSettings(array($hook => implode(',', $permanent_functions)));
4824 5094
 	}
@@ -4827,8 +5097,9 @@  discard block
 block discarded – undo
4827 5097
 	$functions = empty($modSettings[$hook]) ? array() : explode(',', $modSettings[$hook]);
4828 5098
 
4829 5099
 	// Do nothing, if it's already there.
4830
-	if (in_array($integration_call, $functions))
4831
-		return;
5100
+	if (in_array($integration_call, $functions)) {
5101
+			return;
5102
+	}
4832 5103
 
4833 5104
 	$functions[] = $integration_call;
4834 5105
 	$modSettings[$hook] = implode(',', $functions);
@@ -4851,12 +5122,14 @@  discard block
 block discarded – undo
4851 5122
 	global $smcFunc, $modSettings;
4852 5123
 
4853 5124
 	// Any objects?
4854
-	if ($object)
4855
-		$function = $function . '#';
5125
+	if ($object) {
5126
+			$function = $function . '#';
5127
+	}
4856 5128
 
4857 5129
 	// Any files  to load?
4858
-	if (!empty($file) && is_string($file))
4859
-		$function = $file . '|' . $function;
5130
+	if (!empty($file) && is_string($file)) {
5131
+			$function = $file . '|' . $function;
5132
+	}
4860 5133
 
4861 5134
 	// Get the correct string.
4862 5135
 	$integration_call = $function;
@@ -4877,16 +5150,18 @@  discard block
 block discarded – undo
4877 5150
 	{
4878 5151
 		$current_functions = explode(',', $current_functions);
4879 5152
 
4880
-		if (in_array($integration_call, $current_functions))
4881
-			updateSettings(array($hook => implode(',', array_diff($current_functions, array($integration_call)))));
5153
+		if (in_array($integration_call, $current_functions)) {
5154
+					updateSettings(array($hook => implode(',', array_diff($current_functions, array($integration_call)))));
5155
+		}
4882 5156
 	}
4883 5157
 
4884 5158
 	// Turn the function list into something usable.
4885 5159
 	$functions = empty($modSettings[$hook]) ? array() : explode(',', $modSettings[$hook]);
4886 5160
 
4887 5161
 	// You can only remove it if it's available.
4888
-	if (!in_array($integration_call, $functions))
4889
-		return;
5162
+	if (!in_array($integration_call, $functions)) {
5163
+			return;
5164
+	}
4890 5165
 
4891 5166
 	$functions = array_diff($functions, array($integration_call));
4892 5167
 	$modSettings[$hook] = implode(',', $functions);
@@ -4907,17 +5182,20 @@  discard block
 block discarded – undo
4907 5182
 	global $context, $smcFunc, $txt, $db_show_debug;
4908 5183
 
4909 5184
 	// Really?
4910
-	if (empty($string))
4911
-		return false;
5185
+	if (empty($string)) {
5186
+			return false;
5187
+	}
4912 5188
 
4913 5189
 	// An array? should be a "callable" array IE array(object/class, valid_callable).
4914 5190
 	// A closure? should be a callable one.
4915
-	if (is_array($string) || $string instanceof Closure)
4916
-		return $return ? $string : (is_callable($string) ? call_user_func($string) : false);
5191
+	if (is_array($string) || $string instanceof Closure) {
5192
+			return $return ? $string : (is_callable($string) ? call_user_func($string) : false);
5193
+	}
4917 5194
 
4918 5195
 	// No full objects, sorry! pass a method or a property instead!
4919
-	if (is_object($string))
4920
-		return false;
5196
+	if (is_object($string)) {
5197
+			return false;
5198
+	}
4921 5199
 
4922 5200
 	// Stay vitaminized my friends...
4923 5201
 	$string = $smcFunc['htmlspecialchars']($smcFunc['htmltrim']($string));
@@ -4926,8 +5204,9 @@  discard block
 block discarded – undo
4926 5204
 	$string = load_file($string);
4927 5205
 
4928 5206
 	// Loaded file failed
4929
-	if (empty($string))
4930
-		return false;
5207
+	if (empty($string)) {
5208
+			return false;
5209
+	}
4931 5210
 
4932 5211
 	// Found a method.
4933 5212
 	if (strpos($string, '::') !== false)
@@ -4948,8 +5227,9 @@  discard block
 block discarded – undo
4948 5227
 				// Add another one to the list.
4949 5228
 				if ($db_show_debug === true)
4950 5229
 				{
4951
-					if (!isset($context['debug']['instances']))
4952
-						$context['debug']['instances'] = array();
5230
+					if (!isset($context['debug']['instances'])) {
5231
+											$context['debug']['instances'] = array();
5232
+					}
4953 5233
 
4954 5234
 					$context['debug']['instances'][$class] = $class;
4955 5235
 				}
@@ -4959,13 +5239,15 @@  discard block
 block discarded – undo
4959 5239
 		}
4960 5240
 
4961 5241
 		// Right then. This is a call to a static method.
4962
-		else
4963
-			$func = array($class, $method);
5242
+		else {
5243
+					$func = array($class, $method);
5244
+		}
4964 5245
 	}
4965 5246
 
4966 5247
 	// Nope! just a plain regular function.
4967
-	else
4968
-		$func = $string;
5248
+	else {
5249
+			$func = $string;
5250
+	}
4969 5251
 
4970 5252
 	// Right, we got what we need, time to do some checks.
4971 5253
 	if (!is_callable($func, false, $callable_name))
@@ -4981,17 +5263,18 @@  discard block
 block discarded – undo
4981 5263
 	else
4982 5264
 	{
4983 5265
 		// What are we gonna do about it?
4984
-		if ($return)
4985
-			return $func;
5266
+		if ($return) {
5267
+					return $func;
5268
+		}
4986 5269
 
4987 5270
 		// If this is a plain function, avoid the heat of calling call_user_func().
4988 5271
 		else
4989 5272
 		{
4990
-			if (is_array($func))
4991
-				call_user_func($func);
4992
-
4993
-			else
4994
-				$func();
5273
+			if (is_array($func)) {
5274
+							call_user_func($func);
5275
+			} else {
5276
+							$func();
5277
+			}
4995 5278
 		}
4996 5279
 	}
4997 5280
 }
@@ -5008,31 +5291,34 @@  discard block
 block discarded – undo
5008 5291
 {
5009 5292
 	global $sourcedir, $txt, $boarddir, $settings;
5010 5293
 
5011
-	if (empty($string))
5012
-		return false;
5294
+	if (empty($string)) {
5295
+			return false;
5296
+	}
5013 5297
 
5014 5298
 	if (strpos($string, '|') !== false)
5015 5299
 	{
5016 5300
 		list ($file, $string) = explode('|', $string);
5017 5301
 
5018 5302
 		// Match the wildcards to their regular vars.
5019
-		if (empty($settings['theme_dir']))
5020
-			$absPath = strtr(trim($file), array('$boarddir' => $boarddir, '$sourcedir' => $sourcedir));
5021
-
5022
-		else
5023
-			$absPath = strtr(trim($file), array('$boarddir' => $boarddir, '$sourcedir' => $sourcedir, '$themedir' => $settings['theme_dir']));
5303
+		if (empty($settings['theme_dir'])) {
5304
+					$absPath = strtr(trim($file), array('$boarddir' => $boarddir, '$sourcedir' => $sourcedir));
5305
+		} else {
5306
+					$absPath = strtr(trim($file), array('$boarddir' => $boarddir, '$sourcedir' => $sourcedir, '$themedir' => $settings['theme_dir']));
5307
+		}
5024 5308
 
5025 5309
 		// Load the file if it can be loaded.
5026
-		if (file_exists($absPath))
5027
-			require_once($absPath);
5310
+		if (file_exists($absPath)) {
5311
+					require_once($absPath);
5312
+		}
5028 5313
 
5029 5314
 		// No? try a fallback to $sourcedir
5030 5315
 		else
5031 5316
 		{
5032 5317
 			$absPath = $sourcedir .'/'. $file;
5033 5318
 
5034
-			if (file_exists($absPath))
5035
-				require_once($absPath);
5319
+			if (file_exists($absPath)) {
5320
+							require_once($absPath);
5321
+			}
5036 5322
 
5037 5323
 			// Sorry, can't do much for you at this point.
5038 5324
 			else
@@ -5071,8 +5357,9 @@  discard block
 block discarded – undo
5071 5357
 	preg_match('~^(http|ftp)(s)?://([^/:]+)(:(\d+))?(.+)$~', $url, $match);
5072 5358
 
5073 5359
 	// No scheme? No data for you!
5074
-	if (empty($match[1]))
5075
-		return false;
5360
+	if (empty($match[1])) {
5361
+			return false;
5362
+	}
5076 5363
 
5077 5364
 	// An FTP url. We should try connecting and RETRieving it...
5078 5365
 	elseif ($match[1] == 'ftp')
@@ -5082,23 +5369,26 @@  discard block
 block discarded – undo
5082 5369
 
5083 5370
 		// Establish a connection and attempt to enable passive mode.
5084 5371
 		$ftp = new ftp_connection(($match[2] ? 'ssl://' : '') . $match[3], empty($match[5]) ? 21 : $match[5], 'anonymous', $webmaster_email);
5085
-		if ($ftp->error !== false || !$ftp->passive())
5086
-			return false;
5372
+		if ($ftp->error !== false || !$ftp->passive()) {
5373
+					return false;
5374
+		}
5087 5375
 
5088 5376
 		// I want that one *points*!
5089 5377
 		fwrite($ftp->connection, 'RETR ' . $match[6] . "\r\n");
5090 5378
 
5091 5379
 		// Since passive mode worked (or we would have returned already!) open the connection.
5092 5380
 		$fp = @fsockopen($ftp->pasv['ip'], $ftp->pasv['port'], $err, $err, 5);
5093
-		if (!$fp)
5094
-			return false;
5381
+		if (!$fp) {
5382
+					return false;
5383
+		}
5095 5384
 
5096 5385
 		// The server should now say something in acknowledgement.
5097 5386
 		$ftp->check_response(150);
5098 5387
 
5099 5388
 		$data = '';
5100
-		while (!feof($fp))
5101
-			$data .= fread($fp, 4096);
5389
+		while (!feof($fp)) {
5390
+					$data .= fread($fp, 4096);
5391
+		}
5102 5392
 		fclose($fp);
5103 5393
 
5104 5394
 		// All done, right?  Good.
@@ -5110,8 +5400,9 @@  discard block
 block discarded – undo
5110 5400
 	elseif (isset($match[1]) && $match[1] == 'http')
5111 5401
 	{
5112 5402
 		// First try to use fsockopen, because it is fastest.
5113
-		if ($keep_alive && $match[3] == $keep_alive_dom)
5114
-			$fp = $keep_alive_fp;
5403
+		if ($keep_alive && $match[3] == $keep_alive_dom) {
5404
+					$fp = $keep_alive_fp;
5405
+		}
5115 5406
 		if (empty($fp))
5116 5407
 		{
5117 5408
 			// Open the socket on the port we want...
@@ -5131,20 +5422,21 @@  discard block
 block discarded – undo
5131 5422
 				fwrite($fp, 'GET ' . ($match[6] !== '/' ? str_replace(' ', '%20', $match[6]) : '') . ' HTTP/1.0' . "\r\n");
5132 5423
 				fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n");
5133 5424
 				fwrite($fp, 'user-agent: PHP/SMF' . "\r\n");
5134
-				if ($keep_alive)
5135
-					fwrite($fp, 'connection: Keep-Alive' . "\r\n\r\n");
5136
-				else
5137
-					fwrite($fp, 'connection: close' . "\r\n\r\n");
5138
-			}
5139
-			else
5425
+				if ($keep_alive) {
5426
+									fwrite($fp, 'connection: Keep-Alive' . "\r\n\r\n");
5427
+				} else {
5428
+									fwrite($fp, 'connection: close' . "\r\n\r\n");
5429
+				}
5430
+			} else
5140 5431
 			{
5141 5432
 				fwrite($fp, 'POST ' . ($match[6] !== '/' ? $match[6] : '') . ' HTTP/1.0' . "\r\n");
5142 5433
 				fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n");
5143 5434
 				fwrite($fp, 'user-agent: PHP/SMF' . "\r\n");
5144
-				if ($keep_alive)
5145
-					fwrite($fp, 'connection: Keep-Alive' . "\r\n");
5146
-				else
5147
-					fwrite($fp, 'connection: close' . "\r\n");
5435
+				if ($keep_alive) {
5436
+									fwrite($fp, 'connection: Keep-Alive' . "\r\n");
5437
+				} else {
5438
+									fwrite($fp, 'connection: close' . "\r\n");
5439
+				}
5148 5440
 				fwrite($fp, 'content-type: application/x-www-form-urlencoded' . "\r\n");
5149 5441
 				fwrite($fp, 'content-length: ' . strlen($post_data) . "\r\n\r\n");
5150 5442
 				fwrite($fp, $post_data);
@@ -5157,30 +5449,33 @@  discard block
 block discarded – undo
5157 5449
 			{
5158 5450
 				$header = '';
5159 5451
 				$location = '';
5160
-				while (!feof($fp) && trim($header = fgets($fp, 4096)) != '')
5161
-					if (strpos($header, 'location:') !== false)
5452
+				while (!feof($fp) && trim($header = fgets($fp, 4096)) != '') {
5453
+									if (strpos($header, 'location:') !== false)
5162 5454
 						$location = trim(substr($header, strpos($header, ':') + 1));
5455
+				}
5163 5456
 
5164
-				if (empty($location))
5165
-					return false;
5166
-				else
5457
+				if (empty($location)) {
5458
+									return false;
5459
+				} else
5167 5460
 				{
5168
-					if (!$keep_alive)
5169
-						fclose($fp);
5461
+					if (!$keep_alive) {
5462
+											fclose($fp);
5463
+					}
5170 5464
 					return fetch_web_data($location, $post_data, $keep_alive, $redirection_level + 1);
5171 5465
 				}
5172 5466
 			}
5173 5467
 
5174 5468
 			// Make sure we get a 200 OK.
5175
-			elseif (preg_match('~^HTTP/\S+\s+20[01]~i', $response) === 0)
5176
-				return false;
5469
+			elseif (preg_match('~^HTTP/\S+\s+20[01]~i', $response) === 0) {
5470
+							return false;
5471
+			}
5177 5472
 
5178 5473
 			// Skip the headers...
5179 5474
 			while (!feof($fp) && trim($header = fgets($fp, 4096)) != '')
5180 5475
 			{
5181
-				if (preg_match('~content-length:\s*(\d+)~i', $header, $match) != 0)
5182
-					$content_length = $match[1];
5183
-				elseif (preg_match('~connection:\s*close~i', $header) != 0)
5476
+				if (preg_match('~content-length:\s*(\d+)~i', $header, $match) != 0) {
5477
+									$content_length = $match[1];
5478
+				} elseif (preg_match('~connection:\s*close~i', $header) != 0)
5184 5479
 				{
5185 5480
 					$keep_alive_dom = null;
5186 5481
 					$keep_alive = false;
@@ -5192,17 +5487,19 @@  discard block
 block discarded – undo
5192 5487
 			$data = '';
5193 5488
 			if (isset($content_length))
5194 5489
 			{
5195
-				while (!feof($fp) && strlen($data) < $content_length)
5196
-					$data .= fread($fp, $content_length - strlen($data));
5197
-			}
5198
-			else
5490
+				while (!feof($fp) && strlen($data) < $content_length) {
5491
+									$data .= fread($fp, $content_length - strlen($data));
5492
+				}
5493
+			} else
5199 5494
 			{
5200
-				while (!feof($fp))
5201
-					$data .= fread($fp, 4096);
5495
+				while (!feof($fp)) {
5496
+									$data .= fread($fp, 4096);
5497
+				}
5202 5498
 			}
5203 5499
 
5204
-			if (!$keep_alive)
5205
-				fclose($fp);
5500
+			if (!$keep_alive) {
5501
+							fclose($fp);
5502
+			}
5206 5503
 		}
5207 5504
 
5208 5505
 		// If using fsockopen didn't work, try to use cURL if available.
@@ -5215,17 +5512,18 @@  discard block
 block discarded – undo
5215 5512
 			$fetch_data->get_url_data($url, $post_data);
5216 5513
 
5217 5514
 			// no errors and a 200 result, then we have a good dataset, well we at least have data. ;)
5218
-			if ($fetch_data->result('code') == 200 && !$fetch_data->result('error'))
5219
-				$data = $fetch_data->result('body');
5220
-			else
5221
-				return false;
5515
+			if ($fetch_data->result('code') == 200 && !$fetch_data->result('error')) {
5516
+							$data = $fetch_data->result('body');
5517
+			} else {
5518
+							return false;
5519
+			}
5222 5520
 		}
5223 5521
 
5224 5522
 		// Neither fsockopen nor curl are available. Well, phooey.
5225
-		else
5226
-			return false;
5227
-	}
5228
-	else
5523
+		else {
5524
+					return false;
5525
+		}
5526
+	} else
5229 5527
 	{
5230 5528
 		// Umm, this shouldn't happen?
5231 5529
 		trigger_error('fetch_web_data(): Bad URL', E_USER_NOTICE);
@@ -5245,8 +5543,9 @@  discard block
 block discarded – undo
5245 5543
 	global $user_info, $smcFunc;
5246 5544
 
5247 5545
 	// Make sure we have something to work with.
5248
-	if (empty($topic))
5249
-		return array();
5546
+	if (empty($topic)) {
5547
+			return array();
5548
+	}
5250 5549
 
5251 5550
 
5252 5551
 	// We already know the number of likes per message, we just want to know whether the current user liked it or not.
@@ -5269,8 +5568,9 @@  discard block
 block discarded – undo
5269 5568
 				'topic' => $topic,
5270 5569
 			)
5271 5570
 		);
5272
-		while ($row = $smcFunc['db_fetch_assoc']($request))
5273
-			$temp[] = (int) $row['content_id'];
5571
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
5572
+					$temp[] = (int) $row['content_id'];
5573
+		}
5274 5574
 
5275 5575
 		cache_put_data($cache_key, $temp, $ttl);
5276 5576
 	}
@@ -5291,8 +5591,9 @@  discard block
 block discarded – undo
5291 5591
 {
5292 5592
 	global $context;
5293 5593
 
5294
-	if (empty($string))
5295
-		return $string;
5594
+	if (empty($string)) {
5595
+			return $string;
5596
+	}
5296 5597
 
5297 5598
 	// UTF-8 occurences of MS special characters
5298 5599
 	$findchars_utf8 = array(
@@ -5333,10 +5634,11 @@  discard block
 block discarded – undo
5333 5634
 		'--',	// &mdash;
5334 5635
 	);
5335 5636
 
5336
-	if ($context['utf8'])
5337
-		$string = str_replace($findchars_utf8, $replacechars, $string);
5338
-	else
5339
-		$string = str_replace($findchars_iso, $replacechars, $string);
5637
+	if ($context['utf8']) {
5638
+			$string = str_replace($findchars_utf8, $replacechars, $string);
5639
+	} else {
5640
+			$string = str_replace($findchars_iso, $replacechars, $string);
5641
+	}
5340 5642
 
5341 5643
 	return $string;
5342 5644
 }
@@ -5355,49 +5657,59 @@  discard block
 block discarded – undo
5355 5657
 {
5356 5658
 	global $context;
5357 5659
 
5358
-	if (!isset($matches[2]))
5359
-		return '';
5660
+	if (!isset($matches[2])) {
5661
+			return '';
5662
+	}
5360 5663
 
5361 5664
 	$num = $matches[2][0] === 'x' ? hexdec(substr($matches[2], 1)) : (int) $matches[2];
5362 5665
 
5363 5666
 	// remove left to right / right to left overrides
5364
-	if ($num === 0x202D || $num === 0x202E)
5365
-		return '';
5667
+	if ($num === 0x202D || $num === 0x202E) {
5668
+			return '';
5669
+	}
5366 5670
 
5367 5671
 	// Quote, Ampersand, Apostrophe, Less/Greater Than get html replaced
5368
-	if (in_array($num, array(0x22, 0x26, 0x27, 0x3C, 0x3E)))
5369
-		return '&#' . $num . ';';
5672
+	if (in_array($num, array(0x22, 0x26, 0x27, 0x3C, 0x3E))) {
5673
+			return '&#' . $num . ';';
5674
+	}
5370 5675
 
5371 5676
 	if (empty($context['utf8']))
5372 5677
 	{
5373 5678
 		// no control characters
5374
-		if ($num < 0x20)
5375
-			return '';
5679
+		if ($num < 0x20) {
5680
+					return '';
5681
+		}
5376 5682
 		// text is text
5377
-		elseif ($num < 0x80)
5378
-			return chr($num);
5683
+		elseif ($num < 0x80) {
5684
+					return chr($num);
5685
+		}
5379 5686
 		// all others get html-ised
5380
-		else
5381
-			return '&#' . $matches[2] . ';';
5382
-	}
5383
-	else
5687
+		else {
5688
+					return '&#' . $matches[2] . ';';
5689
+		}
5690
+	} else
5384 5691
 	{
5385 5692
 		// <0x20 are control characters, 0x20 is a space, > 0x10FFFF is past the end of the utf8 character set
5386 5693
 		// 0xD800 >= $num <= 0xDFFF are surrogate markers (not valid for utf8 text)
5387
-		if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF))
5388
-			return '';
5694
+		if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF)) {
5695
+					return '';
5696
+		}
5389 5697
 		// <0x80 (or less than 128) are standard ascii characters a-z A-Z 0-9 and punctuation
5390
-		elseif ($num < 0x80)
5391
-			return chr($num);
5698
+		elseif ($num < 0x80) {
5699
+					return chr($num);
5700
+		}
5392 5701
 		// <0x800 (2048)
5393
-		elseif ($num < 0x800)
5394
-			return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
5702
+		elseif ($num < 0x800) {
5703
+					return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
5704
+		}
5395 5705
 		// < 0x10000 (65536)
5396
-		elseif ($num < 0x10000)
5397
-			return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5706
+		elseif ($num < 0x10000) {
5707
+					return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5708
+		}
5398 5709
 		// <= 0x10FFFF (1114111)
5399
-		else
5400
-			return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5710
+		else {
5711
+					return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5712
+		}
5401 5713
 	}
5402 5714
 }
5403 5715
 
@@ -5413,28 +5725,34 @@  discard block
 block discarded – undo
5413 5725
  */
5414 5726
 function fixchar__callback($matches)
5415 5727
 {
5416
-	if (!isset($matches[1]))
5417
-		return '';
5728
+	if (!isset($matches[1])) {
5729
+			return '';
5730
+	}
5418 5731
 
5419 5732
 	$num = $matches[1][0] === 'x' ? hexdec(substr($matches[1], 1)) : (int) $matches[1];
5420 5733
 
5421 5734
 	// <0x20 are control characters, > 0x10FFFF is past the end of the utf8 character set
5422 5735
 	// 0xD800 >= $num <= 0xDFFF are surrogate markers (not valid for utf8 text), 0x202D-E are left to right overrides
5423
-	if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num === 0x202D || $num === 0x202E)
5424
-		return '';
5736
+	if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num === 0x202D || $num === 0x202E) {
5737
+			return '';
5738
+	}
5425 5739
 	// <0x80 (or less than 128) are standard ascii characters a-z A-Z 0-9 and punctuation
5426
-	elseif ($num < 0x80)
5427
-		return chr($num);
5740
+	elseif ($num < 0x80) {
5741
+			return chr($num);
5742
+	}
5428 5743
 	// <0x800 (2048)
5429
-	elseif ($num < 0x800)
5430
-		return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
5744
+	elseif ($num < 0x800) {
5745
+			return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
5746
+	}
5431 5747
 	// < 0x10000 (65536)
5432
-	elseif ($num < 0x10000)
5433
-		return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5748
+	elseif ($num < 0x10000) {
5749
+			return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5750
+	}
5434 5751
 	// <= 0x10FFFF (1114111)
5435
-	else
5436
-		return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5437
-}
5752
+	else {
5753
+			return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
5754
+	}
5755
+	}
5438 5756
 
5439 5757
 /**
5440 5758
  * Strips out invalid html entities, replaces others with html style &#123; codes
@@ -5447,17 +5765,19 @@  discard block
 block discarded – undo
5447 5765
  */
5448 5766
 function entity_fix__callback($matches)
5449 5767
 {
5450
-	if (!isset($matches[2]))
5451
-		return '';
5768
+	if (!isset($matches[2])) {
5769
+			return '';
5770
+	}
5452 5771
 
5453 5772
 	$num = $matches[2][0] === 'x' ? hexdec(substr($matches[2], 1)) : (int) $matches[2];
5454 5773
 
5455 5774
 	// we don't allow control characters, characters out of range, byte markers, etc
5456
-	if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num == 0x202D || $num == 0x202E)
5457
-		return '';
5458
-	else
5459
-		return '&#' . $num . ';';
5460
-}
5775
+	if ($num < 0x20 || $num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num == 0x202D || $num == 0x202E) {
5776
+			return '';
5777
+	} else {
5778
+			return '&#' . $num . ';';
5779
+	}
5780
+	}
5461 5781
 
5462 5782
 /**
5463 5783
  * Return a Gravatar URL based on
@@ -5481,18 +5801,23 @@  discard block
 block discarded – undo
5481 5801
 		$ratings = array('G', 'PG', 'R', 'X');
5482 5802
 		$defaults = array('mm', 'identicon', 'monsterid', 'wavatar', 'retro', 'blank');
5483 5803
 		$url_params = array();
5484
-		if (!empty($modSettings['gravatarMaxRating']) && in_array($modSettings['gravatarMaxRating'], $ratings))
5485
-			$url_params[] = 'rating=' . $modSettings['gravatarMaxRating'];
5486
-		if (!empty($modSettings['gravatarDefault']) && in_array($modSettings['gravatarDefault'], $defaults))
5487
-			$url_params[] = 'default=' . $modSettings['gravatarDefault'];
5488
-		if (!empty($modSettings['avatar_max_width_external']))
5489
-			$size_string = (int) $modSettings['avatar_max_width_external'];
5490
-		if (!empty($modSettings['avatar_max_height_external']) && !empty($size_string))
5491
-			if ((int) $modSettings['avatar_max_height_external'] < $size_string)
5804
+		if (!empty($modSettings['gravatarMaxRating']) && in_array($modSettings['gravatarMaxRating'], $ratings)) {
5805
+					$url_params[] = 'rating=' . $modSettings['gravatarMaxRating'];
5806
+		}
5807
+		if (!empty($modSettings['gravatarDefault']) && in_array($modSettings['gravatarDefault'], $defaults)) {
5808
+					$url_params[] = 'default=' . $modSettings['gravatarDefault'];
5809
+		}
5810
+		if (!empty($modSettings['avatar_max_width_external'])) {
5811
+					$size_string = (int) $modSettings['avatar_max_width_external'];
5812
+		}
5813
+		if (!empty($modSettings['avatar_max_height_external']) && !empty($size_string)) {
5814
+					if ((int) $modSettings['avatar_max_height_external'] < $size_string)
5492 5815
 				$size_string = $modSettings['avatar_max_height_external'];
5816
+		}
5493 5817
 
5494
-		if (!empty($size_string))
5495
-			$url_params[] = 's=' . $size_string;
5818
+		if (!empty($size_string)) {
5819
+					$url_params[] = 's=' . $size_string;
5820
+		}
5496 5821
 	}
5497 5822
 	$http_method = !empty($modSettings['force_ssl']) ? 'https://secure' : 'http://www';
5498 5823
 
@@ -5511,22 +5836,26 @@  discard block
 block discarded – undo
5511 5836
 	static $timezones = null, $lastwhen = null;
5512 5837
 
5513 5838
 	// No point doing this over if we already did it once
5514
-	if (!empty($timezones) && $when == $lastwhen)
5515
-		return $timezones;
5516
-	else
5517
-		$lastwhen = $when;
5839
+	if (!empty($timezones) && $when == $lastwhen) {
5840
+			return $timezones;
5841
+	} else {
5842
+			$lastwhen = $when;
5843
+	}
5518 5844
 
5519 5845
 	// Parseable datetime string?
5520
-	if (is_int($timestamp = strtotime($when)))
5521
-		$when = $timestamp;
5846
+	if (is_int($timestamp = strtotime($when))) {
5847
+			$when = $timestamp;
5848
+	}
5522 5849
 
5523 5850
 	// A Unix timestamp?
5524
-	elseif (is_numeric($when))
5525
-		$when = intval($when);
5851
+	elseif (is_numeric($when)) {
5852
+			$when = intval($when);
5853
+	}
5526 5854
 
5527 5855
 	// Invalid value? Just get current Unix timestamp.
5528
-	else
5529
-		$when = time();
5856
+	else {
5857
+			$when = time();
5858
+	}
5530 5859
 
5531 5860
 	// We'll need these too
5532 5861
 	$date_when = date_create('@' . $when);
@@ -5541,8 +5870,9 @@  discard block
 block discarded – undo
5541 5870
 	foreach ($priority_countries as $country)
5542 5871
 	{
5543 5872
 		$country_tzids = @timezone_identifiers_list(DateTimeZone::PER_COUNTRY, strtoupper(trim($country)));
5544
-		if (!empty($country_tzids))
5545
-			$priority_tzids = array_merge($priority_tzids, $country_tzids);
5873
+		if (!empty($country_tzids)) {
5874
+					$priority_tzids = array_merge($priority_tzids, $country_tzids);
5875
+		}
5546 5876
 	}
5547 5877
 
5548 5878
 	// Antarctic research stations should be listed last, unless you're running a penguin forum
@@ -5556,8 +5886,9 @@  discard block
 block discarded – undo
5556 5886
 	foreach ($tzids as $tzid)
5557 5887
 	{
5558 5888
 		// We don't want UTC right now
5559
-		if ($tzid == 'UTC')
5560
-			continue;
5889
+		if ($tzid == 'UTC') {
5890
+					continue;
5891
+		}
5561 5892
 
5562 5893
 		$tz = timezone_open($tzid);
5563 5894
 
@@ -5578,13 +5909,14 @@  discard block
 block discarded – undo
5578 5909
 		}
5579 5910
 
5580 5911
 		// A time zone from a prioritized country?
5581
-		if (in_array($tzid, $priority_tzids))
5582
-			$priority_zones[$tzkey] = true;
5912
+		if (in_array($tzid, $priority_tzids)) {
5913
+					$priority_zones[$tzkey] = true;
5914
+		}
5583 5915
 
5584 5916
 		// Keep track of the location and offset for this tzid
5585
-		if (!empty($txt[$tzid]))
5586
-			$zones[$tzkey]['locations'][] = $txt[$tzid];
5587
-		else
5917
+		if (!empty($txt[$tzid])) {
5918
+					$zones[$tzkey]['locations'][] = $txt[$tzid];
5919
+		} else
5588 5920
 		{
5589 5921
 			$tzid_parts = explode('/', $tzid);
5590 5922
 			$zones[$tzkey]['locations'][] = str_replace(array('St_', '_'), array('St. ', ' '), array_pop($tzid_parts));
@@ -5604,23 +5936,27 @@  discard block
 block discarded – undo
5604 5936
 		date_timezone_set($date_when, timezone_open($tzvalue['tzid']));
5605 5937
 
5606 5938
 		// Use the custom description, if there is one
5607
-		if (!empty($tztxt[$tzvalue['tzid']]))
5608
-			$desc = $tztxt[$tzvalue['tzid']];
5939
+		if (!empty($tztxt[$tzvalue['tzid']])) {
5940
+					$desc = $tztxt[$tzvalue['tzid']];
5941
+		}
5609 5942
 		// Otherwise, use the list of locations (max 5, so things don't get silly)
5610
-		else
5611
-			$desc = implode(', ', array_slice(array_unique($tzvalue['locations']), 0, 5)) . (count($tzvalue['locations']) > 5 ? ', ' . $txt['etc'] : '');
5943
+		else {
5944
+					$desc = implode(', ', array_slice(array_unique($tzvalue['locations']), 0, 5)) . (count($tzvalue['locations']) > 5 ? ', ' . $txt['etc'] : '');
5945
+		}
5612 5946
 
5613 5947
 		// Show the UTC offset and the abbreviation, if it's something like 'MST' and not '-06'
5614 5948
 		$desc = '[UTC' . date_format($date_when, 'P') . '] - ' . (!strspn($tzvalue['abbr'], '+-') ? $tzvalue['abbr'] . ' - ' : '') . $desc;
5615 5949
 
5616
-		if (isset($priority_zones[$tzkey]))
5617
-			$priority_timezones[$tzvalue['tzid']] = $desc;
5618
-		else
5619
-			$timezones[$tzvalue['tzid']] = $desc;
5950
+		if (isset($priority_zones[$tzkey])) {
5951
+					$priority_timezones[$tzvalue['tzid']] = $desc;
5952
+		} else {
5953
+					$timezones[$tzvalue['tzid']] = $desc;
5954
+		}
5620 5955
 	}
5621 5956
 
5622
-	if (!empty($priority_timezones))
5623
-		$priority_timezones[] = '-----';
5957
+	if (!empty($priority_timezones)) {
5958
+			$priority_timezones[] = '-----';
5959
+	}
5624 5960
 
5625 5961
 	$timezones = array_merge(
5626 5962
 		$priority_timezones,
@@ -5637,8 +5973,9 @@  discard block
 block discarded – undo
5637 5973
  */
5638 5974
 function inet_ptod($ip_address)
5639 5975
 {
5640
-	if (!isValidIP($ip_address))
5641
-		return $ip_address;
5976
+	if (!isValidIP($ip_address)) {
5977
+			return $ip_address;
5978
+	}
5642 5979
 
5643 5980
 	$bin = inet_pton($ip_address);
5644 5981
 	return $bin;
@@ -5650,13 +5987,15 @@  discard block
 block discarded – undo
5650 5987
  */
5651 5988
 function inet_dtop($bin)
5652 5989
 {
5653
-	if(empty($bin))
5654
-		return '';
5990
+	if(empty($bin)) {
5991
+			return '';
5992
+	}
5655 5993
 
5656 5994
 	global $db_type;
5657 5995
 
5658
-	if ($db_type == 'postgresql')
5659
-		return $bin;
5996
+	if ($db_type == 'postgresql') {
5997
+			return $bin;
5998
+	}
5660 5999
 
5661 6000
 	$ip_address = inet_ntop($bin);
5662 6001
 
@@ -5681,26 +6020,32 @@  discard block
 block discarded – undo
5681 6020
  */
5682 6021
 function _safe_serialize($value)
5683 6022
 {
5684
-	if(is_null($value))
5685
-		return 'N;';
6023
+	if(is_null($value)) {
6024
+			return 'N;';
6025
+	}
5686 6026
 
5687
-	if(is_bool($value))
5688
-		return 'b:'. (int) $value .';';
6027
+	if(is_bool($value)) {
6028
+			return 'b:'. (int) $value .';';
6029
+	}
5689 6030
 
5690
-	if(is_int($value))
5691
-		return 'i:'. $value .';';
6031
+	if(is_int($value)) {
6032
+			return 'i:'. $value .';';
6033
+	}
5692 6034
 
5693
-	if(is_float($value))
5694
-		return 'd:'. str_replace(',', '.', $value) .';';
6035
+	if(is_float($value)) {
6036
+			return 'd:'. str_replace(',', '.', $value) .';';
6037
+	}
5695 6038
 
5696
-	if(is_string($value))
5697
-		return 's:'. strlen($value) .':"'. $value .'";';
6039
+	if(is_string($value)) {
6040
+			return 's:'. strlen($value) .':"'. $value .'";';
6041
+	}
5698 6042
 
5699 6043
 	if(is_array($value))
5700 6044
 	{
5701 6045
 		$out = '';
5702
-		foreach($value as $k => $v)
5703
-			$out .= _safe_serialize($k) . _safe_serialize($v);
6046
+		foreach($value as $k => $v) {
6047
+					$out .= _safe_serialize($k) . _safe_serialize($v);
6048
+		}
5704 6049
 
5705 6050
 		return 'a:'. count($value) .':{'. $out .'}';
5706 6051
 	}
@@ -5726,8 +6071,9 @@  discard block
 block discarded – undo
5726 6071
 
5727 6072
 	$out = _safe_serialize($value);
5728 6073
 
5729
-	if (isset($mbIntEnc))
5730
-		mb_internal_encoding($mbIntEnc);
6074
+	if (isset($mbIntEnc)) {
6075
+			mb_internal_encoding($mbIntEnc);
6076
+	}
5731 6077
 
5732 6078
 	return $out;
5733 6079
 }
@@ -5744,8 +6090,9 @@  discard block
 block discarded – undo
5744 6090
 function _safe_unserialize($str)
5745 6091
 {
5746 6092
 	// Input  is not a string.
5747
-	if(empty($str) || !is_string($str))
5748
-		return false;
6093
+	if(empty($str) || !is_string($str)) {
6094
+			return false;
6095
+	}
5749 6096
 
5750 6097
 	$stack = array();
5751 6098
 	$expected = array();
@@ -5761,43 +6108,38 @@  discard block
 block discarded – undo
5761 6108
 	while($state != 1)
5762 6109
 	{
5763 6110
 		$type = isset($str[0]) ? $str[0] : '';
5764
-		if($type == '}')
5765
-			$str = substr($str, 1);
5766
-
5767
-		else if($type == 'N' && $str[1] == ';')
6111
+		if($type == '}') {
6112
+					$str = substr($str, 1);
6113
+		} else if($type == 'N' && $str[1] == ';')
5768 6114
 		{
5769 6115
 			$value = null;
5770 6116
 			$str = substr($str, 2);
5771
-		}
5772
-		else if($type == 'b' && preg_match('/^b:([01]);/', $str, $matches))
6117
+		} else if($type == 'b' && preg_match('/^b:([01]);/', $str, $matches))
5773 6118
 		{
5774 6119
 			$value = $matches[1] == '1' ? true : false;
5775 6120
 			$str = substr($str, 4);
5776
-		}
5777
-		else if($type == 'i' && preg_match('/^i:(-?[0-9]+);(.*)/s', $str, $matches))
6121
+		} else if($type == 'i' && preg_match('/^i:(-?[0-9]+);(.*)/s', $str, $matches))
5778 6122
 		{
5779 6123
 			$value = (int)$matches[1];
5780 6124
 			$str = $matches[2];
5781
-		}
5782
-		else if($type == 'd' && preg_match('/^d:(-?[0-9]+\.?[0-9]*(E[+-][0-9]+)?);(.*)/s', $str, $matches))
6125
+		} else if($type == 'd' && preg_match('/^d:(-?[0-9]+\.?[0-9]*(E[+-][0-9]+)?);(.*)/s', $str, $matches))
5783 6126
 		{
5784 6127
 			$value = (float)$matches[1];
5785 6128
 			$str = $matches[3];
5786
-		}
5787
-		else if($type == 's' && preg_match('/^s:([0-9]+):"(.*)/s', $str, $matches) && substr($matches[2], (int)$matches[1], 2) == '";')
6129
+		} else if($type == 's' && preg_match('/^s:([0-9]+):"(.*)/s', $str, $matches) && substr($matches[2], (int)$matches[1], 2) == '";')
5788 6130
 		{
5789 6131
 			$value = substr($matches[2], 0, (int)$matches[1]);
5790 6132
 			$str = substr($matches[2], (int)$matches[1] + 2);
5791
-		}
5792
-		else if($type == 'a' && preg_match('/^a:([0-9]+):{(.*)/s', $str, $matches))
6133
+		} else if($type == 'a' && preg_match('/^a:([0-9]+):{(.*)/s', $str, $matches))
5793 6134
 		{
5794 6135
 			$expectedLength = (int)$matches[1];
5795 6136
 			$str = $matches[2];
5796 6137
 		}
5797 6138
 
5798 6139
 		// Object or unknown/malformed type.
5799
-		else
5800
-			return false;
6140
+		else {
6141
+					return false;
6142
+		}
5801 6143
 
5802 6144
 		switch($state)
5803 6145
 		{
@@ -5825,8 +6167,9 @@  discard block
 block discarded – undo
5825 6167
 				if($type == '}')
5826 6168
 				{
5827 6169
 					// Array size is less than expected.
5828
-					if(count($list) < end($expected))
5829
-						return false;
6170
+					if(count($list) < end($expected)) {
6171
+											return false;
6172
+					}
5830 6173
 
5831 6174
 					unset($list);
5832 6175
 					$list = &$stack[count($stack)-1];
@@ -5835,8 +6178,9 @@  discard block
 block discarded – undo
5835 6178
 					// Go to terminal state if we're at the end of the root array.
5836 6179
 					array_pop($expected);
5837 6180
 
5838
-					if(count($expected) == 0)
5839
-						$state = 1;
6181
+					if(count($expected) == 0) {
6182
+											$state = 1;
6183
+					}
5840 6184
 
5841 6185
 					break;
5842 6186
 				}
@@ -5844,8 +6188,9 @@  discard block
 block discarded – undo
5844 6188
 				if($type == 'i' || $type == 's')
5845 6189
 				{
5846 6190
 					// Array size exceeds expected length.
5847
-					if(count($list) >= end($expected))
5848
-						return false;
6191
+					if(count($list) >= end($expected)) {
6192
+											return false;
6193
+					}
5849 6194
 
5850 6195
 					$key = $value;
5851 6196
 					$state = 3;
@@ -5879,8 +6224,9 @@  discard block
 block discarded – undo
5879 6224
 	}
5880 6225
 
5881 6226
 	// Trailing data in input.
5882
-	if(!empty($str))
5883
-		return false;
6227
+	if(!empty($str)) {
6228
+			return false;
6229
+	}
5884 6230
 
5885 6231
 	return $data;
5886 6232
 }
@@ -5903,8 +6249,9 @@  discard block
 block discarded – undo
5903 6249
 
5904 6250
 	$out = _safe_unserialize($str);
5905 6251
 
5906
-	if (isset($mbIntEnc))
5907
-		mb_internal_encoding($mbIntEnc);
6252
+	if (isset($mbIntEnc)) {
6253
+			mb_internal_encoding($mbIntEnc);
6254
+	}
5908 6255
 
5909 6256
 	return $out;
5910 6257
 }
@@ -5919,12 +6266,14 @@  discard block
 block discarded – undo
5919 6266
 function smf_chmod($file, $value = 0)
5920 6267
 {
5921 6268
 	// No file? no checks!
5922
-	if (empty($file))
5923
-		return false;
6269
+	if (empty($file)) {
6270
+			return false;
6271
+	}
5924 6272
 
5925 6273
 	// Already writable?
5926
-	if (is_writable($file))
5927
-		return true;
6274
+	if (is_writable($file)) {
6275
+			return true;
6276
+	}
5928 6277
 
5929 6278
 	// Do we have a file or a dir?
5930 6279
 	$isDir = is_dir($file);
@@ -5940,10 +6289,9 @@  discard block
 block discarded – undo
5940 6289
 		{
5941 6290
 			$isWritable = true;
5942 6291
 			break;
6292
+		} else {
6293
+					@chmod($file, $val);
5943 6294
 		}
5944
-
5945
-		else
5946
-			@chmod($file, $val);
5947 6295
 	}
5948 6296
 
5949 6297
 	return $isWritable;
@@ -5962,8 +6310,9 @@  discard block
 block discarded – undo
5962 6310
 	global $txt;
5963 6311
 
5964 6312
 	// Come on...
5965
-	if (empty($json) || !is_string($json))
5966
-		return array();
6313
+	if (empty($json) || !is_string($json)) {
6314
+			return array();
6315
+	}
5967 6316
 
5968 6317
 	$returnArray = @json_decode($json, $returnAsArray);
5969 6318
 
@@ -6001,11 +6350,11 @@  discard block
 block discarded – undo
6001 6350
 		$jsonDebug = $jsonDebug[0];
6002 6351
 		loadLanguage('Errors');
6003 6352
 
6004
-		if (!empty($jsonDebug))
6005
-			log_error($txt['json_'. $jsonError], 'critical', $jsonDebug['file'], $jsonDebug['line']);
6006
-
6007
-		else
6008
-			log_error($txt['json_'. $jsonError], 'critical');
6353
+		if (!empty($jsonDebug)) {
6354
+					log_error($txt['json_'. $jsonError], 'critical', $jsonDebug['file'], $jsonDebug['line']);
6355
+		} else {
6356
+					log_error($txt['json_'. $jsonError], 'critical');
6357
+		}
6009 6358
 
6010 6359
 		// Everyone expects an array.
6011 6360
 		return array();
@@ -6039,8 +6388,9 @@  discard block
 block discarded – undo
6039 6388
 	global $db_show_debug, $modSettings;
6040 6389
 
6041 6390
 	// Defensive programming anyone?
6042
-	if (empty($data))
6043
-		return false;
6391
+	if (empty($data)) {
6392
+			return false;
6393
+	}
6044 6394
 
6045 6395
 	// Don't need extra stuff...
6046 6396
 	$db_show_debug = false;
@@ -6048,11 +6398,11 @@  discard block
 block discarded – undo
6048 6398
 	// Kill anything else.
6049 6399
 	ob_end_clean();
6050 6400
 
6051
-	if (!empty($modSettings['CompressedOutput']))
6052
-		@ob_start('ob_gzhandler');
6053
-
6054
-	else
6055
-		ob_start();
6401
+	if (!empty($modSettings['CompressedOutput'])) {
6402
+			@ob_start('ob_gzhandler');
6403
+	} else {
6404
+			ob_start();
6405
+	}
6056 6406
 
6057 6407
 	// Set the header.
6058 6408
 	header($type);
@@ -6084,8 +6434,9 @@  discard block
 block discarded – undo
6084 6434
 	static $done = false;
6085 6435
 
6086 6436
 	// If we don't need to do anything, don't
6087
-	if (!$update && $done)
6088
-		return;
6437
+	if (!$update && $done) {
6438
+			return;
6439
+	}
6089 6440
 
6090 6441
 	// Should we get a new copy of the official list of TLDs?
6091 6442
 	if ($update)
@@ -6097,8 +6448,9 @@  discard block
 block discarded – undo
6097 6448
 		// marauding bandits roaming on the surface. We don't want to waste precious electricity on
6098 6449
 		// pointlessly repeating background tasks, so we'll wait until the next regularly scheduled
6099 6450
 		// update to see if civilization has been restored.
6100
-		if ($tlds === false)
6101
-			$postapocalypticNightmare = true;
6451
+		if ($tlds === false) {
6452
+					$postapocalypticNightmare = true;
6453
+		}
6102 6454
 	}
6103 6455
 	// If we aren't updating and the regex is valid, we're done
6104 6456
 	elseif (!empty($modSettings['tld_regex']) && @preg_match('~' . $modSettings['tld_regex'] . '~', null) !== false)
@@ -6113,10 +6465,11 @@  discard block
 block discarded – undo
6113 6465
 		// Clean $tlds and convert it to an array
6114 6466
 		$tlds = array_filter(explode("\n", strtolower($tlds)), function($line) {
6115 6467
 			$line = trim($line);
6116
-			if (empty($line) || strpos($line, '#') !== false || strpos($line, ' ') !== false)
6117
-				return false;
6118
-			else
6119
-				return true;
6468
+			if (empty($line) || strpos($line, '#') !== false || strpos($line, ' ') !== false) {
6469
+							return false;
6470
+			} else {
6471
+							return true;
6472
+			}
6120 6473
 		});
6121 6474
 
6122 6475
 		// Convert Punycode to Unicode
@@ -6208,8 +6561,7 @@  discard block
 block discarded – undo
6208 6561
 
6209 6562
 		$strlen = 'mb_strlen';
6210 6563
 		$substr = 'mb_substr';
6211
-	}
6212
-	else
6564
+	} else
6213 6565
 	{
6214 6566
 		$strlen = $smcFunc['strlen'];
6215 6567
 		$substr = $smcFunc['substr'];
@@ -6223,20 +6575,21 @@  discard block
 block discarded – undo
6223 6575
 
6224 6576
 		$first = $substr($string, 0, 1);
6225 6577
 
6226
-		if (empty($index[$first]))
6227
-			$index[$first] = array();
6578
+		if (empty($index[$first])) {
6579
+					$index[$first] = array();
6580
+		}
6228 6581
 
6229 6582
 		if ($strlen($string) > 1)
6230 6583
 		{
6231 6584
 			// Sanity check on recursion
6232
-			if ($depth > 99)
6233
-				$index[$first][$substr($string, 1)] = '';
6234
-
6235
-			else
6236
-				$index[$first] = $add_string_to_index($substr($string, 1), $index[$first]);
6585
+			if ($depth > 99) {
6586
+							$index[$first][$substr($string, 1)] = '';
6587
+			} else {
6588
+							$index[$first] = $add_string_to_index($substr($string, 1), $index[$first]);
6589
+			}
6590
+		} else {
6591
+					$index[$first][''] = '';
6237 6592
 		}
6238
-		else
6239
-			$index[$first][''] = '';
6240 6593
 
6241 6594
 		$depth--;
6242 6595
 		return $index;
@@ -6259,9 +6612,9 @@  discard block
 block discarded – undo
6259 6612
 			$key_regex = preg_quote($key, $delim);
6260 6613
 			$new_key = $key;
6261 6614
 
6262
-			if (empty($value))
6263
-				$sub_regex = '';
6264
-			else
6615
+			if (empty($value)) {
6616
+							$sub_regex = '';
6617
+			} else
6265 6618
 			{
6266 6619
 				$sub_regex = $index_to_regex($value, $delim);
6267 6620
 
@@ -6269,22 +6622,22 @@  discard block
 block discarded – undo
6269 6622
 				{
6270 6623
 					$new_key_array = explode('(?'.'>', $sub_regex);
6271 6624
 					$new_key .= $new_key_array[0];
6625
+				} else {
6626
+									$sub_regex = '(?'.'>' . $sub_regex . ')';
6272 6627
 				}
6273
-				else
6274
-					$sub_regex = '(?'.'>' . $sub_regex . ')';
6275 6628
 			}
6276 6629
 
6277
-			if ($depth > 1)
6278
-				$regex[$new_key] = $key_regex . $sub_regex;
6279
-			else
6630
+			if ($depth > 1) {
6631
+							$regex[$new_key] = $key_regex . $sub_regex;
6632
+			} else
6280 6633
 			{
6281 6634
 				if (($length += strlen($key_regex) + 1) < $max_length || empty($regex))
6282 6635
 				{
6283 6636
 					$regex[$new_key] = $key_regex . $sub_regex;
6284 6637
 					unset($index[$key]);
6638
+				} else {
6639
+									break;
6285 6640
 				}
6286
-				else
6287
-					break;
6288 6641
 			}
6289 6642
 		}
6290 6643
 
@@ -6293,10 +6646,11 @@  discard block
 block discarded – undo
6293 6646
 			$l1 = $strlen($k1);
6294 6647
 			$l2 = $strlen($k2);
6295 6648
 
6296
-			if ($l1 == $l2)
6297
-				return strcmp($k1, $k2) > 0 ? 1 : -1;
6298
-			else
6299
-				return $l1 > $l2 ? -1 : 1;
6649
+			if ($l1 == $l2) {
6650
+							return strcmp($k1, $k2) > 0 ? 1 : -1;
6651
+			} else {
6652
+							return $l1 > $l2 ? -1 : 1;
6653
+			}
6300 6654
 		});
6301 6655
 
6302 6656
 		$depth--;
@@ -6307,21 +6661,24 @@  discard block
 block discarded – undo
6307 6661
 	$index = array();
6308 6662
 	$regex = '';
6309 6663
 
6310
-	foreach ($strings as $string)
6311
-		$index = $add_string_to_index($string, $index);
6664
+	foreach ($strings as $string) {
6665
+			$index = $add_string_to_index($string, $index);
6666
+	}
6312 6667
 
6313 6668
 	if ($returnArray === true)
6314 6669
 	{
6315 6670
 		$regex = array();
6316
-		while (!empty($index))
6317
-			$regex[] = '(?'.'>' . $index_to_regex($index, $delim) . ')';
6671
+		while (!empty($index)) {
6672
+					$regex[] = '(?'.'>' . $index_to_regex($index, $delim) . ')';
6673
+		}
6674
+	} else {
6675
+			$regex = '(?'.'>' . $index_to_regex($index, $delim) . ')';
6318 6676
 	}
6319
-	else
6320
-		$regex = '(?'.'>' . $index_to_regex($index, $delim) . ')';
6321 6677
 
6322 6678
 	// Restore PHP's internal character encoding to whatever it was originally
6323
-	if (!empty($current_encoding))
6324
-		mb_internal_encoding($current_encoding);
6679
+	if (!empty($current_encoding)) {
6680
+			mb_internal_encoding($current_encoding);
6681
+	}
6325 6682
 
6326 6683
 	return $regex;
6327 6684
 }
@@ -6364,13 +6721,15 @@  discard block
 block discarded – undo
6364 6721
 	// Need to add the trailing slash, or it puts it there & thinks there's a redirect when there isn't...
6365 6722
 	$url = str_ireplace('https://', 'http://', $url) . '/';
6366 6723
 	$headers = @get_headers($url);
6367
-	if ($headers === false)
6368
-		return false;
6724
+	if ($headers === false) {
6725
+			return false;
6726
+	}
6369 6727
 
6370 6728
 	// Now to see if it came back https...
6371 6729
 	// First check for a redirect status code in first row (301, 302, 307)
6372
-	if (strstr($headers[0], '301') === false && strstr($headers[0], '302') === false && strstr($headers[0], '307') === false)
6373
-		return false;
6730
+	if (strstr($headers[0], '301') === false && strstr($headers[0], '302') === false && strstr($headers[0], '307') === false) {
6731
+			return false;
6732
+	}
6374 6733
 
6375 6734
 	// Search for the location entry to confirm https
6376 6735
 	$result = false;
@@ -6408,8 +6767,7 @@  discard block
 block discarded – undo
6408 6767
 		$is_admin = $user_info['is_admin'];
6409 6768
 		$mod_cache = !empty($user_info['mod_cache']) ? $user_info['mod_cache'] : null;
6410 6769
 		$ignoreboards = !empty($user_info['ignoreboards']) ? $user_info['ignoreboards'] : null;
6411
-	}
6412
-	else
6770
+	} else
6413 6771
 	{
6414 6772
 		$request = $smcFunc['db_query']('', '
6415 6773
 				SELECT mem.ignore_boards, mem.id_group, mem.additional_groups, mem.id_post_group
@@ -6423,17 +6781,19 @@  discard block
 block discarded – undo
6423 6781
 
6424 6782
 		$row = $smcFunc['db_fetch_assoc']($request);
6425 6783
 
6426
-		if (empty($row['additional_groups']))
6427
-			$groups = array($row['id_group'], $row['id_post_group']);
6428
-		else
6429
-			$groups = array_merge(
6784
+		if (empty($row['additional_groups'])) {
6785
+					$groups = array($row['id_group'], $row['id_post_group']);
6786
+		} else {
6787
+					$groups = array_merge(
6430 6788
 					array($row['id_group'], $row['id_post_group']),
6431 6789
 					explode(',', $row['additional_groups'])
6432 6790
 			);
6791
+		}
6433 6792
 
6434 6793
 		// Because history has proven that it is possible for groups to go bad - clean up in case.
6435
-		foreach ($groups as $k => $v)
6436
-			$groups[$k] = (int) $v;
6794
+		foreach ($groups as $k => $v) {
6795
+					$groups[$k] = (int) $v;
6796
+		}
6437 6797
 
6438 6798
 		$is_admin = in_array(1, $groups);
6439 6799
 
@@ -6450,8 +6810,9 @@  discard block
 block discarded – undo
6450 6810
 				'current_member' => $userid,
6451 6811
 			)
6452 6812
 		);
6453
-		while ($row = $smcFunc['db_fetch_assoc']($request))
6454
-			$boards_mod[] = $row['id_board'];
6813
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
6814
+					$boards_mod[] = $row['id_board'];
6815
+		}
6455 6816
 		$smcFunc['db_free_result']($request);
6456 6817
 
6457 6818
 		// Can any of the groups they're in moderate any of the boards?
@@ -6463,8 +6824,9 @@  discard block
 block discarded – undo
6463 6824
 				'groups' => $groups,
6464 6825
 			)
6465 6826
 		);
6466
-		while ($row = $smcFunc['db_fetch_assoc']($request))
6467
-			$boards_mod[] = $row['id_board'];
6827
+		while ($row = $smcFunc['db_fetch_assoc']($request)) {
6828
+					$boards_mod[] = $row['id_board'];
6829
+		}
6468 6830
 		$smcFunc['db_free_result']($request);
6469 6831
 
6470 6832
 		// Just in case we've got duplicates here...
@@ -6474,21 +6836,25 @@  discard block
 block discarded – undo
6474 6836
 	}
6475 6837
 
6476 6838
 	// Just build this here, it makes it easier to change/use - administrators can see all boards.
6477
-	if ($is_admin)
6478
-		$query_part['query_see_board'] = '1=1';
6839
+	if ($is_admin) {
6840
+			$query_part['query_see_board'] = '1=1';
6841
+	}
6479 6842
 	// Otherwise just the groups in $user_info['groups'].
6480
-	else
6481
-		$query_part['query_see_board'] = '((FIND_IN_SET(' . implode(', b.member_groups) != 0 OR FIND_IN_SET(', $groups) . ', b.member_groups) != 0)' . (!empty($deny_boards_access) ? ' AND (FIND_IN_SET(' . implode(', b.deny_member_groups) = 0 AND FIND_IN_SET(', $groups) . ', b.deny_member_groups) = 0)' : '') . (isset($mod_cache) ? ' OR ' . $mod_cache['mq'] : '') . ')';
6843
+	else {
6844
+			$query_part['query_see_board'] = '((FIND_IN_SET(' . implode(', b.member_groups) != 0 OR FIND_IN_SET(', $groups) . ', b.member_groups) != 0)' . (!empty($deny_boards_access) ? ' AND (FIND_IN_SET(' . implode(', b.deny_member_groups) = 0 AND FIND_IN_SET(', $groups) . ', b.deny_member_groups) = 0)' : '') . (isset($mod_cache) ? ' OR ' . $mod_cache['mq'] : '') . ')';
6845
+	}
6482 6846
 
6483 6847
 	// Build the list of boards they WANT to see.
6484 6848
 	// This will take the place of query_see_boards in certain spots, so it better include the boards they can see also
6485 6849
 
6486 6850
 	// If they aren't ignoring any boards then they want to see all the boards they can see
6487
-	if (empty($ignoreboards))
6488
-		$query_part['query_wanna_see_board'] = $query_part['query_see_board'];
6851
+	if (empty($ignoreboards)) {
6852
+			$query_part['query_wanna_see_board'] = $query_part['query_see_board'];
6853
+	}
6489 6854
 	// Ok I guess they don't want to see all the boards
6490
-	else
6491
-		$query_part['query_wanna_see_board'] = '(' . $query_part['query_see_board'] . ' AND b.id_board NOT IN (' . implode(',', $ignoreboards) . '))';
6855
+	else {
6856
+			$query_part['query_wanna_see_board'] = '(' . $query_part['query_see_board'] . ' AND b.id_board NOT IN (' . implode(',', $ignoreboards) . '))';
6857
+	}
6492 6858
 
6493 6859
 	return $query_part;
6494 6860
 }
@@ -6502,10 +6868,11 @@  discard block
 block discarded – undo
6502 6868
 {
6503 6869
 	$secure = false;
6504 6870
 
6505
-	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')
6506
-		$secure = true;
6507
-	elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on')
6508
-		$secure = true;
6871
+	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
6872
+			$secure = true;
6873
+	} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
6874
+			$secure = true;
6875
+	}
6509 6876
 
6510 6877
 	return $secure;
6511 6878
 }
@@ -6522,11 +6889,12 @@  discard block
 block discarded – undo
6522 6889
 {
6523 6890
 	$url = iri_to_url($iri);
6524 6891
 
6525
-	if (filter_var($url, FILTER_VALIDATE_URL, $flags) !== false)
6526
-		return $iri;
6527
-	else
6528
-		return false;
6529
-}
6892
+	if (filter_var($url, FILTER_VALIDATE_URL, $flags) !== false) {
6893
+			return $iri;
6894
+	} else {
6895
+			return false;
6896
+	}
6897
+	}
6530 6898
 
6531 6899
 /**
6532 6900
  * A wrapper for `filter_var($url, FILTER_SANITIZE_URL)` that can handle URLs
@@ -6569,8 +6937,9 @@  discard block
 block discarded – undo
6569 6937
 
6570 6938
 	$host = parse_url((strpos($iri, '://') === false ? 'http://' : '') . ltrim($iri, ':/'), PHP_URL_HOST);
6571 6939
 
6572
-	if (empty($host))
6573
-		return $iri;
6940
+	if (empty($host)) {
6941
+			return $iri;
6942
+	}
6574 6943
 
6575 6944
 	// Convert the domain using the Punycode algorithm
6576 6945
 	require_once($sourcedir . '/Class-Punycode.php');
@@ -6606,8 +6975,9 @@  discard block
 block discarded – undo
6606 6975
 
6607 6976
 	$host = parse_url((strpos($url, '://') === false ? 'http://' : '') . ltrim($url, ':/'), PHP_URL_HOST);
6608 6977
 
6609
-	if (empty($host))
6610
-		return $url;
6978
+	if (empty($host)) {
6979
+			return $url;
6980
+	}
6611 6981
 
6612 6982
 	// Decode the domain from Punycode
6613 6983
 	require_once($sourcedir . '/Class-Punycode.php');
@@ -6633,8 +7003,9 @@  discard block
 block discarded – undo
6633 7003
 {
6634 7004
 	global $user_info, $modSettings, $smcFunc, $txt;
6635 7005
 
6636
-	if (empty($modSettings['cron_last_checked']))
6637
-		$modSettings['cron_last_checked'] = 0;
7006
+	if (empty($modSettings['cron_last_checked'])) {
7007
+			$modSettings['cron_last_checked'] = 0;
7008
+	}
6638 7009
 
6639 7010
 	if (!empty($modSettings['cron_is_real_cron']) && time() - $modSettings['cron_last_checked'] > 84600)
6640 7011
 	{
@@ -6654,9 +7025,9 @@  discard block
 block discarded – undo
6654 7025
 			loadLanguage('ManageScheduledTasks');
6655 7026
 			log_error($txt['cron_not_working']);
6656 7027
 			updateSettings(array('cron_is_real_cron' => 0));
7028
+		} else {
7029
+					updateSettings(array('cron_last_checked' => time()));
6657 7030
 		}
6658
-		else
6659
-			updateSettings(array('cron_last_checked' => time()));
6660 7031
 	}
6661 7032
 }
6662 7033
 
@@ -6680,10 +7051,11 @@  discard block
 block discarded – undo
6680 7051
 
6681 7052
 	$protocol = preg_match('~^\s*(HTTP/[12]\.\d)\s*$~i', $_SERVER['SERVER_PROTOCOL'], $matches) ? $matches[1] : 'HTTP/1.0';
6682 7053
 
6683
-	if (!isset($statuses[$code]) && empty($status))
6684
-		header($protocol . ' 500 Internal Server Error');
6685
-	else
6686
-		header($protocol . ' ' . $code . ' ' . (!empty($status) ? $status : $statuses[$code]));
6687
-}
7054
+	if (!isset($statuses[$code]) && empty($status)) {
7055
+			header($protocol . ' 500 Internal Server Error');
7056
+	} else {
7057
+			header($protocol . ' ' . $code . ' ' . (!empty($status) ? $status : $statuses[$code]));
7058
+	}
7059
+	}
6688 7060
 
6689 7061
 ?>
6690 7062
\ No newline at end of file
Please login to merge, or discard this patch.