@@ -256,8 +256,8 @@ discard block |
||
256 | 256 | |
257 | 257 | case 'datetime': |
258 | 258 | if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) |
259 | - return 'str_to_date('. |
|
260 | - sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5] ,$datetime_matches[6]). |
|
259 | + return 'str_to_date(' . |
|
260 | + sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5], $datetime_matches[6]) . |
|
261 | 261 | ',\'%Y-%m-%d %h:%i:%s\')'; |
262 | 262 | else |
263 | 263 | smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
@@ -841,7 +841,7 @@ discard block |
||
841 | 841 | { |
842 | 842 | $count = count($insertRows); |
843 | 843 | $ai = 0; |
844 | - for($i = 0; $i < $count; $i++) |
|
844 | + for ($i = 0; $i < $count; $i++) |
|
845 | 845 | { |
846 | 846 | $old_id = $smcFunc['db_insert_id'](); |
847 | 847 | |
@@ -867,13 +867,13 @@ discard block |
||
867 | 867 | $count2 = count($indexed_columns); |
868 | 868 | for ($x = 0; $x < $count2; $x++) |
869 | 869 | { |
870 | - $where_string += key($indexed_columns[$x]) . ' = '. $insertRows[$i][$x]; |
|
870 | + $where_string += key($indexed_columns[$x]) . ' = ' . $insertRows[$i][$x]; |
|
871 | 871 | if (($x + 1) < $count2) |
872 | 872 | $where_string += ' AND '; |
873 | 873 | } |
874 | 874 | |
875 | - $request = $smcFunc['db_query']('',' |
|
876 | - SELECT `'. $keys[0] . '` FROM ' . $table .' |
|
875 | + $request = $smcFunc['db_query']('', ' |
|
876 | + SELECT `'. $keys[0] . '` FROM ' . $table . ' |
|
877 | 877 | WHERE ' . $where_string . ' LIMIT 1', |
878 | 878 | array() |
879 | 879 | ); |
@@ -902,7 +902,7 @@ discard block |
||
902 | 902 | $return_var = array(); |
903 | 903 | $count = count($insertRows); |
904 | 904 | $start = smf_db_insert_id($table, $keys[0]); |
905 | - for ($i = 0; $i < $count; $i++ ) |
|
905 | + for ($i = 0; $i < $count; $i++) |
|
906 | 906 | $return_var[] = $start + $i; |
907 | 907 | } |
908 | 908 | return $return_var; |
@@ -13,8 +13,9 @@ discard block |
||
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 | * Maps the implementations in this file (smf_db_function_name) |
@@ -33,8 +34,8 @@ discard block |
||
33 | 34 | global $smcFunc; |
34 | 35 | |
35 | 36 | // Map some database specific functions, only do this once. |
36 | - if (!isset($smcFunc['db_fetch_assoc'])) |
|
37 | - $smcFunc += array( |
|
37 | + if (!isset($smcFunc['db_fetch_assoc'])) { |
|
38 | + $smcFunc += array( |
|
38 | 39 | 'db_query' => 'smf_db_query', |
39 | 40 | 'db_quote' => 'smf_db_quote', |
40 | 41 | 'db_fetch_assoc' => 'mysqli_fetch_assoc', |
@@ -61,9 +62,11 @@ discard block |
||
61 | 62 | 'db_ping' => 'mysqli_ping', |
62 | 63 | 'db_fetch_all' => 'smf_db_fetch_all', |
63 | 64 | ); |
65 | + } |
|
64 | 66 | |
65 | - if (!empty($db_options['persist'])) |
|
66 | - $db_server = 'p:' . $db_server; |
|
67 | + if (!empty($db_options['persist'])) { |
|
68 | + $db_server = 'p:' . $db_server; |
|
69 | + } |
|
67 | 70 | |
68 | 71 | $connection = mysqli_init(); |
69 | 72 | |
@@ -72,24 +75,27 @@ discard block |
||
72 | 75 | $success = false; |
73 | 76 | |
74 | 77 | if ($connection) { |
75 | - if (!empty($db_options['port'])) |
|
76 | - $success = mysqli_real_connect($connection, $db_server, $db_user, $db_passwd, '', $db_options['port'], null, $flags); |
|
77 | - else |
|
78 | - $success = mysqli_real_connect($connection, $db_server, $db_user, $db_passwd, '', 0, null, $flags); |
|
78 | + if (!empty($db_options['port'])) { |
|
79 | + $success = mysqli_real_connect($connection, $db_server, $db_user, $db_passwd, '', $db_options['port'], null, $flags); |
|
80 | + } else { |
|
81 | + $success = mysqli_real_connect($connection, $db_server, $db_user, $db_passwd, '', 0, null, $flags); |
|
82 | + } |
|
79 | 83 | } |
80 | 84 | |
81 | 85 | // Something's wrong, show an error if its fatal (which we assume it is) |
82 | 86 | if ($success === false) |
83 | 87 | { |
84 | - if (!empty($db_options['non_fatal'])) |
|
85 | - return null; |
|
86 | - else |
|
87 | - display_db_error(); |
|
88 | + if (!empty($db_options['non_fatal'])) { |
|
89 | + return null; |
|
90 | + } else { |
|
91 | + display_db_error(); |
|
92 | + } |
|
88 | 93 | } |
89 | 94 | |
90 | 95 | // Select the database, unless told not to |
91 | - if (empty($db_options['dont_select_db']) && !@mysqli_select_db($connection, $db_name) && empty($db_options['non_fatal'])) |
|
92 | - display_db_error(); |
|
96 | + if (empty($db_options['dont_select_db']) && !@mysqli_select_db($connection, $db_name) && empty($db_options['non_fatal'])) { |
|
97 | + display_db_error(); |
|
98 | + } |
|
93 | 99 | |
94 | 100 | $smcFunc['db_query']('', 'SET SESSION sql_mode = \'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\'', |
95 | 101 | array(), |
@@ -165,34 +171,42 @@ discard block |
||
165 | 171 | global $db_callback, $user_info, $db_prefix, $smcFunc; |
166 | 172 | |
167 | 173 | list ($values, $connection) = $db_callback; |
168 | - if (!is_object($connection)) |
|
169 | - display_db_error(); |
|
174 | + if (!is_object($connection)) { |
|
175 | + display_db_error(); |
|
176 | + } |
|
170 | 177 | |
171 | - if ($matches[1] === 'db_prefix') |
|
172 | - return $db_prefix; |
|
178 | + if ($matches[1] === 'db_prefix') { |
|
179 | + return $db_prefix; |
|
180 | + } |
|
173 | 181 | |
174 | - if (isset($user_info[$matches[1]]) && strpos($matches[1], 'query_') !== false) |
|
175 | - return $user_info[$matches[1]]; |
|
182 | + if (isset($user_info[$matches[1]]) && strpos($matches[1], 'query_') !== false) { |
|
183 | + return $user_info[$matches[1]]; |
|
184 | + } |
|
176 | 185 | |
177 | - if ($matches[1] === 'empty') |
|
178 | - return '\'\''; |
|
186 | + if ($matches[1] === 'empty') { |
|
187 | + return '\'\''; |
|
188 | + } |
|
179 | 189 | |
180 | - if (!isset($matches[2])) |
|
181 | - smf_db_error_backtrace('Invalid value inserted or no type specified.', '', E_USER_ERROR, __FILE__, __LINE__); |
|
190 | + if (!isset($matches[2])) { |
|
191 | + smf_db_error_backtrace('Invalid value inserted or no type specified.', '', E_USER_ERROR, __FILE__, __LINE__); |
|
192 | + } |
|
182 | 193 | |
183 | - if ($matches[1] === 'literal') |
|
184 | - return '\'' . mysqli_real_escape_string($connection, $matches[2]) . '\''; |
|
194 | + if ($matches[1] === 'literal') { |
|
195 | + return '\'' . mysqli_real_escape_string($connection, $matches[2]) . '\''; |
|
196 | + } |
|
185 | 197 | |
186 | - if (!isset($values[$matches[2]])) |
|
187 | - smf_db_error_backtrace('The database value you\'re trying to insert does not exist: ' . (isset($smcFunc['htmlspecialchars']) ? $smcFunc['htmlspecialchars']($matches[2]) : htmlspecialchars($matches[2])), '', E_USER_ERROR, __FILE__, __LINE__); |
|
198 | + if (!isset($values[$matches[2]])) { |
|
199 | + smf_db_error_backtrace('The database value you\'re trying to insert does not exist: ' . (isset($smcFunc['htmlspecialchars']) ? $smcFunc['htmlspecialchars']($matches[2]) : htmlspecialchars($matches[2])), '', E_USER_ERROR, __FILE__, __LINE__); |
|
200 | + } |
|
188 | 201 | |
189 | 202 | $replacement = $values[$matches[2]]; |
190 | 203 | |
191 | 204 | switch ($matches[1]) |
192 | 205 | { |
193 | 206 | case 'int': |
194 | - if (!is_numeric($replacement) || (string) $replacement !== (string) (int) $replacement) |
|
195 | - smf_db_error_backtrace('Wrong value type sent to the database. Integer expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
207 | + if (!is_numeric($replacement) || (string) $replacement !== (string) (int) $replacement) { |
|
208 | + smf_db_error_backtrace('Wrong value type sent to the database. Integer expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
209 | + } |
|
196 | 210 | return (string) (int) $replacement; |
197 | 211 | break; |
198 | 212 | |
@@ -204,65 +218,73 @@ discard block |
||
204 | 218 | case 'array_int': |
205 | 219 | if (is_array($replacement)) |
206 | 220 | { |
207 | - if (empty($replacement)) |
|
208 | - smf_db_error_backtrace('Database error, given array of integer values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
221 | + if (empty($replacement)) { |
|
222 | + smf_db_error_backtrace('Database error, given array of integer values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
223 | + } |
|
209 | 224 | |
210 | 225 | foreach ($replacement as $key => $value) |
211 | 226 | { |
212 | - if (!is_numeric($value) || (string) $value !== (string) (int) $value) |
|
213 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
227 | + if (!is_numeric($value) || (string) $value !== (string) (int) $value) { |
|
228 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
229 | + } |
|
214 | 230 | |
215 | 231 | $replacement[$key] = (string) (int) $value; |
216 | 232 | } |
217 | 233 | |
218 | 234 | return implode(', ', $replacement); |
235 | + } else { |
|
236 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
219 | 237 | } |
220 | - else |
|
221 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
222 | 238 | |
223 | 239 | break; |
224 | 240 | |
225 | 241 | case 'array_string': |
226 | 242 | if (is_array($replacement)) |
227 | 243 | { |
228 | - if (empty($replacement)) |
|
229 | - smf_db_error_backtrace('Database error, given array of string values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
244 | + if (empty($replacement)) { |
|
245 | + smf_db_error_backtrace('Database error, given array of string values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
246 | + } |
|
230 | 247 | |
231 | - foreach ($replacement as $key => $value) |
|
232 | - $replacement[$key] = sprintf('\'%1$s\'', mysqli_real_escape_string($connection, $value)); |
|
248 | + foreach ($replacement as $key => $value) { |
|
249 | + $replacement[$key] = sprintf('\'%1$s\'', mysqli_real_escape_string($connection, $value)); |
|
250 | + } |
|
233 | 251 | |
234 | 252 | return implode(', ', $replacement); |
253 | + } else { |
|
254 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of strings expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
235 | 255 | } |
236 | - else |
|
237 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of strings expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
238 | 256 | break; |
239 | 257 | |
240 | 258 | case 'date': |
241 | - if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d)$~', $replacement, $date_matches) === 1) |
|
242 | - return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]); |
|
243 | - else |
|
244 | - smf_db_error_backtrace('Wrong value type sent to the database. Date expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
259 | + if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d)$~', $replacement, $date_matches) === 1) { |
|
260 | + return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]); |
|
261 | + } else { |
|
262 | + smf_db_error_backtrace('Wrong value type sent to the database. Date expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
263 | + } |
|
245 | 264 | break; |
246 | 265 | |
247 | 266 | case 'time': |
248 | - if (preg_match('~^([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $time_matches) === 1) |
|
249 | - return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]); |
|
250 | - else |
|
251 | - smf_db_error_backtrace('Wrong value type sent to the database. Time expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
267 | + if (preg_match('~^([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $time_matches) === 1) { |
|
268 | + return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]); |
|
269 | + } else { |
|
270 | + smf_db_error_backtrace('Wrong value type sent to the database. Time expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
271 | + } |
|
252 | 272 | break; |
253 | 273 | |
254 | 274 | case 'datetime': |
255 | - if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) |
|
256 | - return 'str_to_date('. |
|
275 | + if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) { |
|
276 | + return 'str_to_date('. |
|
257 | 277 | sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5] ,$datetime_matches[6]). |
258 | 278 | ',\'%Y-%m-%d %h:%i:%s\')'; |
259 | - else |
|
260 | - smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
279 | + } else { |
|
280 | + smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
281 | + } |
|
261 | 282 | break; |
262 | 283 | |
263 | 284 | case 'float': |
264 | - if (!is_numeric($replacement)) |
|
265 | - smf_db_error_backtrace('Wrong value type sent to the database. Floating point number expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
285 | + if (!is_numeric($replacement)) { |
|
286 | + smf_db_error_backtrace('Wrong value type sent to the database. Floating point number expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
287 | + } |
|
266 | 288 | return (string) (float) $replacement; |
267 | 289 | break; |
268 | 290 | |
@@ -276,32 +298,37 @@ discard block |
||
276 | 298 | break; |
277 | 299 | |
278 | 300 | case 'inet': |
279 | - if ($replacement == 'null' || $replacement == '') |
|
280 | - return 'null'; |
|
281 | - if (!isValidIP($replacement)) |
|
282 | - smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
301 | + if ($replacement == 'null' || $replacement == '') { |
|
302 | + return 'null'; |
|
303 | + } |
|
304 | + if (!isValidIP($replacement)) { |
|
305 | + smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
306 | + } |
|
283 | 307 | //we don't use the native support of mysql > 5.6.2 |
284 | 308 | return sprintf('unhex(\'%1$s\')', bin2hex(inet_pton($replacement))); |
285 | 309 | |
286 | 310 | case 'array_inet': |
287 | 311 | if (is_array($replacement)) |
288 | 312 | { |
289 | - if (empty($replacement)) |
|
290 | - smf_db_error_backtrace('Database error, given array of IPv4 or IPv6 values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
313 | + if (empty($replacement)) { |
|
314 | + smf_db_error_backtrace('Database error, given array of IPv4 or IPv6 values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
315 | + } |
|
291 | 316 | |
292 | 317 | foreach ($replacement as $key => $value) |
293 | 318 | { |
294 | - if ($replacement == 'null' || $replacement == '') |
|
295 | - $replacement[$key] = 'null'; |
|
296 | - if (!isValidIP($value)) |
|
297 | - smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
319 | + if ($replacement == 'null' || $replacement == '') { |
|
320 | + $replacement[$key] = 'null'; |
|
321 | + } |
|
322 | + if (!isValidIP($value)) { |
|
323 | + smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
324 | + } |
|
298 | 325 | $replacement[$key] = sprintf('unhex(\'%1$s\')', bin2hex(inet_pton($value))); |
299 | 326 | } |
300 | 327 | |
301 | 328 | return implode(', ', $replacement); |
329 | + } else { |
|
330 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of IPv4 or IPv6 expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
302 | 331 | } |
303 | - else |
|
304 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of IPv4 or IPv6 expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
305 | 332 | break; |
306 | 333 | |
307 | 334 | default: |
@@ -377,22 +404,25 @@ discard block |
||
377 | 404 | // Are we in SSI mode? If so try that username and password first |
378 | 405 | if (SMF == 'SSI' && !empty($ssi_db_user) && !empty($ssi_db_passwd)) |
379 | 406 | { |
380 | - if (empty($db_persist)) |
|
381 | - $db_connection = @mysqli_connect($db_server, $ssi_db_user, $ssi_db_passwd); |
|
382 | - else |
|
383 | - $db_connection = @mysqli_connect('p:' . $db_server, $ssi_db_user, $ssi_db_passwd); |
|
407 | + if (empty($db_persist)) { |
|
408 | + $db_connection = @mysqli_connect($db_server, $ssi_db_user, $ssi_db_passwd); |
|
409 | + } else { |
|
410 | + $db_connection = @mysqli_connect('p:' . $db_server, $ssi_db_user, $ssi_db_passwd); |
|
411 | + } |
|
384 | 412 | } |
385 | 413 | // Fall back to the regular username and password if need be |
386 | 414 | if (!$db_connection) |
387 | 415 | { |
388 | - if (empty($db_persist)) |
|
389 | - $db_connection = @mysqli_connect($db_server, $db_user, $db_passwd); |
|
390 | - else |
|
391 | - $db_connection = @mysqli_connect('p:' . $db_server, $db_user, $db_passwd); |
|
416 | + if (empty($db_persist)) { |
|
417 | + $db_connection = @mysqli_connect($db_server, $db_user, $db_passwd); |
|
418 | + } else { |
|
419 | + $db_connection = @mysqli_connect('p:' . $db_server, $db_user, $db_passwd); |
|
420 | + } |
|
392 | 421 | } |
393 | 422 | |
394 | - if (!$db_connection || !@mysqli_select_db($db_connection, $db_name)) |
|
395 | - $db_connection = false; |
|
423 | + if (!$db_connection || !@mysqli_select_db($db_connection, $db_name)) { |
|
424 | + $db_connection = false; |
|
425 | + } |
|
396 | 426 | |
397 | 427 | $connection = $db_connection; |
398 | 428 | } |
@@ -400,18 +430,20 @@ discard block |
||
400 | 430 | // One more query.... |
401 | 431 | $db_count = !isset($db_count) ? 1 : $db_count + 1; |
402 | 432 | |
403 | - if (empty($modSettings['disableQueryCheck']) && strpos($db_string, '\'') !== false && empty($db_values['security_override'])) |
|
404 | - smf_db_error_backtrace('Hacking attempt...', 'Illegal character (\') used in query...', true, __FILE__, __LINE__); |
|
433 | + if (empty($modSettings['disableQueryCheck']) && strpos($db_string, '\'') !== false && empty($db_values['security_override'])) { |
|
434 | + smf_db_error_backtrace('Hacking attempt...', 'Illegal character (\') used in query...', true, __FILE__, __LINE__); |
|
435 | + } |
|
405 | 436 | |
406 | 437 | // Use "ORDER BY null" to prevent Mysql doing filesorts for Group By clauses without an Order By |
407 | 438 | if (strpos($db_string, 'GROUP BY') !== false && strpos($db_string, 'ORDER BY') === false && preg_match('~^\s+SELECT~i', $db_string)) |
408 | 439 | { |
409 | 440 | // Add before LIMIT |
410 | - if ($pos = strpos($db_string, 'LIMIT ')) |
|
411 | - $db_string = substr($db_string, 0, $pos) . "\t\t\tORDER BY null\n" . substr($db_string, $pos, strlen($db_string)); |
|
412 | - else |
|
413 | - // Append it. |
|
441 | + if ($pos = strpos($db_string, 'LIMIT ')) { |
|
442 | + $db_string = substr($db_string, 0, $pos) . "\t\t\tORDER BY null\n" . substr($db_string, $pos, strlen($db_string)); |
|
443 | + } else { |
|
444 | + // Append it. |
|
414 | 445 | $db_string .= "\n\t\t\tORDER BY null"; |
446 | + } |
|
415 | 447 | } |
416 | 448 | |
417 | 449 | if (empty($db_values['security_override']) && (!empty($db_values) || strpos($db_string, '{db_prefix}') !== false)) |
@@ -433,8 +465,9 @@ discard block |
||
433 | 465 | list ($file, $line) = smf_db_error_backtrace('', '', 'return', __FILE__, __LINE__); |
434 | 466 | |
435 | 467 | // Initialize $db_cache if not already initialized. |
436 | - if (!isset($db_cache)) |
|
437 | - $db_cache = array(); |
|
468 | + if (!isset($db_cache)) { |
|
469 | + $db_cache = array(); |
|
470 | + } |
|
438 | 471 | |
439 | 472 | if (!empty($_SESSION['debug_redirect'])) |
440 | 473 | { |
@@ -460,17 +493,18 @@ discard block |
||
460 | 493 | while (true) |
461 | 494 | { |
462 | 495 | $pos = strpos($db_string, '\'', $pos + 1); |
463 | - if ($pos === false) |
|
464 | - break; |
|
496 | + if ($pos === false) { |
|
497 | + break; |
|
498 | + } |
|
465 | 499 | $clean .= substr($db_string, $old_pos, $pos - $old_pos); |
466 | 500 | |
467 | 501 | while (true) |
468 | 502 | { |
469 | 503 | $pos1 = strpos($db_string, '\'', $pos + 1); |
470 | 504 | $pos2 = strpos($db_string, '\\', $pos + 1); |
471 | - if ($pos1 === false) |
|
472 | - break; |
|
473 | - elseif ($pos2 === false || $pos2 > $pos1) |
|
505 | + if ($pos1 === false) { |
|
506 | + break; |
|
507 | + } elseif ($pos2 === false || $pos2 > $pos1) |
|
474 | 508 | { |
475 | 509 | $pos = $pos1; |
476 | 510 | break; |
@@ -486,29 +520,35 @@ discard block |
||
486 | 520 | $clean = trim(strtolower(preg_replace($allowed_comments_from, $allowed_comments_to, $clean))); |
487 | 521 | |
488 | 522 | // Comments? We don't use comments in our queries, we leave 'em outside! |
489 | - if (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false) |
|
490 | - $fail = true; |
|
523 | + if (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false) { |
|
524 | + $fail = true; |
|
525 | + } |
|
491 | 526 | // Trying to change passwords, slow us down, or something? |
492 | - elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[_a-z])~s', $clean) != 0) |
|
493 | - $fail = true; |
|
494 | - elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0) |
|
495 | - $fail = true; |
|
527 | + elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[_a-z])~s', $clean) != 0) { |
|
528 | + $fail = true; |
|
529 | + } elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0) { |
|
530 | + $fail = true; |
|
531 | + } |
|
496 | 532 | |
497 | - if (!empty($fail) && function_exists('log_error')) |
|
498 | - smf_db_error_backtrace('Hacking attempt...', 'Hacking attempt...' . "\n" . $db_string, E_USER_ERROR, __FILE__, __LINE__); |
|
533 | + if (!empty($fail) && function_exists('log_error')) { |
|
534 | + smf_db_error_backtrace('Hacking attempt...', 'Hacking attempt...' . "\n" . $db_string, E_USER_ERROR, __FILE__, __LINE__); |
|
535 | + } |
|
499 | 536 | } |
500 | 537 | |
501 | - if (empty($db_unbuffered)) |
|
502 | - $ret = @mysqli_query($connection, $db_string); |
|
503 | - else |
|
504 | - $ret = @mysqli_query($connection, $db_string, MYSQLI_USE_RESULT); |
|
538 | + if (empty($db_unbuffered)) { |
|
539 | + $ret = @mysqli_query($connection, $db_string); |
|
540 | + } else { |
|
541 | + $ret = @mysqli_query($connection, $db_string, MYSQLI_USE_RESULT); |
|
542 | + } |
|
505 | 543 | |
506 | - if ($ret === false && empty($db_values['db_error_skip'])) |
|
507 | - $ret = smf_db_error($db_string, $connection); |
|
544 | + if ($ret === false && empty($db_values['db_error_skip'])) { |
|
545 | + $ret = smf_db_error($db_string, $connection); |
|
546 | + } |
|
508 | 547 | |
509 | 548 | // Debugging. |
510 | - if (isset($db_show_debug) && $db_show_debug === true) |
|
511 | - $db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st)); |
|
549 | + if (isset($db_show_debug) && $db_show_debug === true) { |
|
550 | + $db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st)); |
|
551 | + } |
|
512 | 552 | |
513 | 553 | return $ret; |
514 | 554 | } |
@@ -555,12 +595,13 @@ discard block |
||
555 | 595 | // Decide which connection to use |
556 | 596 | $connection = $connection === null ? $db_connection : $connection; |
557 | 597 | |
558 | - if ($type == 'begin') |
|
559 | - return @mysqli_query($connection, 'BEGIN'); |
|
560 | - elseif ($type == 'rollback') |
|
561 | - return @mysqli_query($connection, 'ROLLBACK'); |
|
562 | - elseif ($type == 'commit') |
|
563 | - return @mysqli_query($connection, 'COMMIT'); |
|
598 | + if ($type == 'begin') { |
|
599 | + return @mysqli_query($connection, 'BEGIN'); |
|
600 | + } elseif ($type == 'rollback') { |
|
601 | + return @mysqli_query($connection, 'ROLLBACK'); |
|
602 | + } elseif ($type == 'commit') { |
|
603 | + return @mysqli_query($connection, 'COMMIT'); |
|
604 | + } |
|
564 | 605 | |
565 | 606 | return false; |
566 | 607 | } |
@@ -600,8 +641,9 @@ discard block |
||
600 | 641 | // 2013: Lost connection to server during query. |
601 | 642 | |
602 | 643 | // Log the error. |
603 | - if ($query_errno != 1213 && $query_errno != 1205 && function_exists('log_error')) |
|
604 | - log_error($txt['database_error'] . ': ' . $query_error . (!empty($modSettings['enableErrorQueryLogging']) ? "\n\n$db_string" : ''), 'database', $file, $line); |
|
644 | + if ($query_errno != 1213 && $query_errno != 1205 && function_exists('log_error')) { |
|
645 | + log_error($txt['database_error'] . ': ' . $query_error . (!empty($modSettings['enableErrorQueryLogging']) ? "\n\n$db_string" : ''), 'database', $file, $line); |
|
646 | + } |
|
605 | 647 | |
606 | 648 | // Database error auto fixing ;). |
607 | 649 | if (function_exists('cache_get_data') && (!isset($modSettings['autoFixDatabase']) || $modSettings['autoFixDatabase'] == '1')) |
@@ -610,8 +652,9 @@ discard block |
||
610 | 652 | $old_cache = @$modSettings['cache_enable']; |
611 | 653 | $modSettings['cache_enable'] = '1'; |
612 | 654 | |
613 | - if (($temp = cache_get_data('db_last_error', 600)) !== null) |
|
614 | - $db_last_error = max(@$db_last_error, $temp); |
|
655 | + if (($temp = cache_get_data('db_last_error', 600)) !== null) { |
|
656 | + $db_last_error = max(@$db_last_error, $temp); |
|
657 | + } |
|
615 | 658 | |
616 | 659 | if (@$db_last_error < time() - 3600 * 24 * 3) |
617 | 660 | { |
@@ -627,8 +670,9 @@ discard block |
||
627 | 670 | foreach ($tables as $table) |
628 | 671 | { |
629 | 672 | // Now, it's still theoretically possible this could be an injection. So backtick it! |
630 | - if (trim($table) != '') |
|
631 | - $fix_tables[] = '`' . strtr(trim($table), array('`' => '')) . '`'; |
|
673 | + if (trim($table) != '') { |
|
674 | + $fix_tables[] = '`' . strtr(trim($table), array('`' => '')) . '`'; |
|
675 | + } |
|
632 | 676 | } |
633 | 677 | } |
634 | 678 | |
@@ -637,8 +681,9 @@ discard block |
||
637 | 681 | // Table crashed. Let's try to fix it. |
638 | 682 | elseif ($query_errno == 1016) |
639 | 683 | { |
640 | - if (preg_match('~\'([^\.\']+)~', $query_error, $match) != 0) |
|
641 | - $fix_tables = array('`' . $match[1] . '`'); |
|
684 | + if (preg_match('~\'([^\.\']+)~', $query_error, $match) != 0) { |
|
685 | + $fix_tables = array('`' . $match[1] . '`'); |
|
686 | + } |
|
642 | 687 | } |
643 | 688 | // Indexes crashed. Should be easy to fix! |
644 | 689 | elseif ($query_errno == 1034 || $query_errno == 1035) |
@@ -657,13 +702,15 @@ discard block |
||
657 | 702 | |
658 | 703 | // Make a note of the REPAIR... |
659 | 704 | cache_put_data('db_last_error', time(), 600); |
660 | - if (($temp = cache_get_data('db_last_error', 600)) === null) |
|
661 | - updateSettingsFile(array('db_last_error' => time())); |
|
705 | + if (($temp = cache_get_data('db_last_error', 600)) === null) { |
|
706 | + updateSettingsFile(array('db_last_error' => time())); |
|
707 | + } |
|
662 | 708 | |
663 | 709 | // Attempt to find and repair the broken table. |
664 | - foreach ($fix_tables as $table) |
|
665 | - $smcFunc['db_query']('', " |
|
710 | + foreach ($fix_tables as $table) { |
|
711 | + $smcFunc['db_query']('', " |
|
666 | 712 | REPAIR TABLE $table", false, false); |
713 | + } |
|
667 | 714 | |
668 | 715 | // And send off an email! |
669 | 716 | sendmail($webmaster_email, $txt['database_error'], $txt['tried_to_repair'], null, 'dberror'); |
@@ -672,11 +719,12 @@ discard block |
||
672 | 719 | |
673 | 720 | // Try the query again...? |
674 | 721 | $ret = $smcFunc['db_query']('', $db_string, false, false); |
675 | - if ($ret !== false) |
|
676 | - return $ret; |
|
722 | + if ($ret !== false) { |
|
723 | + return $ret; |
|
724 | + } |
|
725 | + } else { |
|
726 | + $modSettings['cache_enable'] = $old_cache; |
|
677 | 727 | } |
678 | - else |
|
679 | - $modSettings['cache_enable'] = $old_cache; |
|
680 | 728 | |
681 | 729 | // Check for the "lost connection" or "deadlock found" errors - and try it just one more time. |
682 | 730 | if (in_array($query_errno, array(1205, 1213, 2006, 2013))) |
@@ -686,22 +734,25 @@ discard block |
||
686 | 734 | // Are we in SSI mode? If so try that username and password first |
687 | 735 | if (SMF == 'SSI' && !empty($ssi_db_user) && !empty($ssi_db_passwd)) |
688 | 736 | { |
689 | - if (empty($db_persist)) |
|
690 | - $db_connection = @mysqli_connect($db_server, $ssi_db_user, $ssi_db_passwd); |
|
691 | - else |
|
692 | - $db_connection = @mysqli_connect('p:' . $db_server, $ssi_db_user, $ssi_db_passwd); |
|
737 | + if (empty($db_persist)) { |
|
738 | + $db_connection = @mysqli_connect($db_server, $ssi_db_user, $ssi_db_passwd); |
|
739 | + } else { |
|
740 | + $db_connection = @mysqli_connect('p:' . $db_server, $ssi_db_user, $ssi_db_passwd); |
|
741 | + } |
|
693 | 742 | } |
694 | 743 | // Fall back to the regular username and password if need be |
695 | 744 | if (!$db_connection) |
696 | 745 | { |
697 | - if (empty($db_persist)) |
|
698 | - $db_connection = @mysqli_connect($db_server, $db_user, $db_passwd); |
|
699 | - else |
|
700 | - $db_connection = @mysqli_connect('p:' . $db_server, $db_user, $db_passwd); |
|
746 | + if (empty($db_persist)) { |
|
747 | + $db_connection = @mysqli_connect($db_server, $db_user, $db_passwd); |
|
748 | + } else { |
|
749 | + $db_connection = @mysqli_connect('p:' . $db_server, $db_user, $db_passwd); |
|
750 | + } |
|
701 | 751 | } |
702 | 752 | |
703 | - if (!$db_connection || !@mysqli_select_db($db_connection, $db_name)) |
|
704 | - $db_connection = false; |
|
753 | + if (!$db_connection || !@mysqli_select_db($db_connection, $db_name)) { |
|
754 | + $db_connection = false; |
|
755 | + } |
|
705 | 756 | } |
706 | 757 | |
707 | 758 | if ($db_connection) |
@@ -712,24 +763,27 @@ discard block |
||
712 | 763 | $ret = $smcFunc['db_query']('', $db_string, false, false); |
713 | 764 | |
714 | 765 | $new_errno = mysqli_errno($db_connection); |
715 | - if ($ret !== false || in_array($new_errno, array(1205, 1213))) |
|
716 | - break; |
|
766 | + if ($ret !== false || in_array($new_errno, array(1205, 1213))) { |
|
767 | + break; |
|
768 | + } |
|
717 | 769 | } |
718 | 770 | |
719 | 771 | // If it failed again, shucks to be you... we're not trying it over and over. |
720 | - if ($ret !== false) |
|
721 | - return $ret; |
|
772 | + if ($ret !== false) { |
|
773 | + return $ret; |
|
774 | + } |
|
722 | 775 | } |
723 | 776 | } |
724 | 777 | // Are they out of space, perhaps? |
725 | 778 | elseif ($query_errno == 1030 && (strpos($query_error, ' -1 ') !== false || strpos($query_error, ' 28 ') !== false || strpos($query_error, ' 12 ') !== false)) |
726 | 779 | { |
727 | - if (!isset($txt)) |
|
728 | - $query_error .= ' - check database storage space.'; |
|
729 | - else |
|
780 | + if (!isset($txt)) { |
|
781 | + $query_error .= ' - check database storage space.'; |
|
782 | + } else |
|
730 | 783 | { |
731 | - if (!isset($txt['mysql_error_space'])) |
|
732 | - loadLanguage('Errors'); |
|
784 | + if (!isset($txt['mysql_error_space'])) { |
|
785 | + loadLanguage('Errors'); |
|
786 | + } |
|
733 | 787 | |
734 | 788 | $query_error .= !isset($txt['mysql_error_space']) ? ' - check database storage space.' : $txt['mysql_error_space']; |
735 | 789 | } |
@@ -737,15 +791,17 @@ discard block |
||
737 | 791 | } |
738 | 792 | |
739 | 793 | // Nothing's defined yet... just die with it. |
740 | - if (empty($context) || empty($txt)) |
|
741 | - die($query_error); |
|
794 | + if (empty($context) || empty($txt)) { |
|
795 | + die($query_error); |
|
796 | + } |
|
742 | 797 | |
743 | 798 | // Show an error message, if possible. |
744 | 799 | $context['error_title'] = $txt['database_error']; |
745 | - if (allowedTo('admin_forum')) |
|
746 | - $context['error_message'] = nl2br($query_error) . '<br>' . $txt['file'] . ': ' . $file . '<br>' . $txt['line'] . ': ' . $line; |
|
747 | - else |
|
748 | - $context['error_message'] = $txt['try_again']; |
|
800 | + if (allowedTo('admin_forum')) { |
|
801 | + $context['error_message'] = nl2br($query_error) . '<br>' . $txt['file'] . ': ' . $file . '<br>' . $txt['line'] . ': ' . $line; |
|
802 | + } else { |
|
803 | + $context['error_message'] = $txt['try_again']; |
|
804 | + } |
|
749 | 805 | |
750 | 806 | if (allowedTo('admin_forum') && isset($db_show_debug) && $db_show_debug === true) |
751 | 807 | { |
@@ -777,8 +833,9 @@ discard block |
||
777 | 833 | $return_var = null; |
778 | 834 | |
779 | 835 | // With nothing to insert, simply return. |
780 | - if (empty($data)) |
|
781 | - return; |
|
836 | + if (empty($data)) { |
|
837 | + return; |
|
838 | + } |
|
782 | 839 | |
783 | 840 | // Replace the prefix holder with the actual prefix. |
784 | 841 | $table = str_replace('{db_prefix}', $db_prefix, $table); |
@@ -788,23 +845,26 @@ discard block |
||
788 | 845 | if (!empty($keys) && (count($keys) > 0) && $returnmode > 0) |
789 | 846 | { |
790 | 847 | $with_returning = true; |
791 | - if ($returnmode == 2) |
|
792 | - $return_var = array(); |
|
848 | + if ($returnmode == 2) { |
|
849 | + $return_var = array(); |
|
850 | + } |
|
793 | 851 | } |
794 | 852 | |
795 | 853 | // Inserting data as a single row can be done as a single array. |
796 | - if (!is_array($data[array_rand($data)])) |
|
797 | - $data = array($data); |
|
854 | + if (!is_array($data[array_rand($data)])) { |
|
855 | + $data = array($data); |
|
856 | + } |
|
798 | 857 | |
799 | 858 | // Create the mold for a single row insert. |
800 | 859 | $insertData = '('; |
801 | 860 | foreach ($columns as $columnName => $type) |
802 | 861 | { |
803 | 862 | // Are we restricting the length? |
804 | - if (strpos($type, 'string-') !== false) |
|
805 | - $insertData .= sprintf('SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $columnName); |
|
806 | - else |
|
807 | - $insertData .= sprintf('{%1$s:%2$s}, ', $type, $columnName); |
|
863 | + if (strpos($type, 'string-') !== false) { |
|
864 | + $insertData .= sprintf('SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $columnName); |
|
865 | + } else { |
|
866 | + $insertData .= sprintf('{%1$s:%2$s}, ', $type, $columnName); |
|
867 | + } |
|
808 | 868 | } |
809 | 869 | $insertData = substr($insertData, 0, -2) . ')'; |
810 | 870 | |
@@ -813,8 +873,9 @@ discard block |
||
813 | 873 | |
814 | 874 | // Here's where the variables are injected to the query. |
815 | 875 | $insertRows = array(); |
816 | - foreach ($data as $dataRow) |
|
817 | - $insertRows[] = smf_db_quote($insertData, array_combine($indexed_columns, $dataRow), $connection); |
|
876 | + foreach ($data as $dataRow) { |
|
877 | + $insertRows[] = smf_db_quote($insertData, array_combine($indexed_columns, $dataRow), $connection); |
|
878 | + } |
|
818 | 879 | |
819 | 880 | // Determine the method of insertion. |
820 | 881 | $queryTitle = $method == 'replace' ? 'REPLACE' : ($method == 'ignore' ? 'INSERT IGNORE' : 'INSERT'); |
@@ -833,8 +894,7 @@ discard block |
||
833 | 894 | ), |
834 | 895 | $connection |
835 | 896 | ); |
836 | - } |
|
837 | - else //special way for ignore method with returning |
|
897 | + } else //special way for ignore method with returning |
|
838 | 898 | { |
839 | 899 | $count = count($insertRows); |
840 | 900 | $ai = 0; |
@@ -854,19 +914,21 @@ discard block |
||
854 | 914 | ); |
855 | 915 | $new_id = $smcFunc['db_insert_id'](); |
856 | 916 | |
857 | - if ($last_id != $new_id) //the inserted value was new |
|
917 | + if ($last_id != $new_id) { |
|
918 | + //the inserted value was new |
|
858 | 919 | { |
859 | 920 | $ai = $new_id; |
860 | 921 | } |
861 | - else // the inserted value already exists we need to find the pk |
|
922 | + } else // the inserted value already exists we need to find the pk |
|
862 | 923 | { |
863 | 924 | $where_string = ''; |
864 | 925 | $count2 = count($indexed_columns); |
865 | 926 | for ($x = 0; $x < $count2; $x++) |
866 | 927 | { |
867 | 928 | $where_string += key($indexed_columns[$x]) . ' = '. $insertRows[$i][$x]; |
868 | - if (($x + 1) < $count2) |
|
869 | - $where_string += ' AND '; |
|
929 | + if (($x + 1) < $count2) { |
|
930 | + $where_string += ' AND '; |
|
931 | + } |
|
870 | 932 | } |
871 | 933 | |
872 | 934 | $request = $smcFunc['db_query']('',' |
@@ -882,25 +944,27 @@ discard block |
||
882 | 944 | } |
883 | 945 | } |
884 | 946 | |
885 | - if ($returnmode == 1) |
|
886 | - $return_var = $ai; |
|
887 | - else if ($returnmode == 2) |
|
888 | - $return_var[] = $ai; |
|
947 | + if ($returnmode == 1) { |
|
948 | + $return_var = $ai; |
|
949 | + } else if ($returnmode == 2) { |
|
950 | + $return_var[] = $ai; |
|
951 | + } |
|
889 | 952 | } |
890 | 953 | } |
891 | 954 | |
892 | 955 | |
893 | 956 | if ($with_returning) |
894 | 957 | { |
895 | - if ($returnmode == 1 && empty($return_var)) |
|
896 | - $return_var = smf_db_insert_id($table, $keys[0]) + count($insertRows) - 1; |
|
897 | - else if ($returnmode == 2 && empty($return_var)) |
|
958 | + if ($returnmode == 1 && empty($return_var)) { |
|
959 | + $return_var = smf_db_insert_id($table, $keys[0]) + count($insertRows) - 1; |
|
960 | + } else if ($returnmode == 2 && empty($return_var)) |
|
898 | 961 | { |
899 | 962 | $return_var = array(); |
900 | 963 | $count = count($insertRows); |
901 | 964 | $start = smf_db_insert_id($table, $keys[0]); |
902 | - for ($i = 0; $i < $count; $i++ ) |
|
903 | - $return_var[] = $start + $i; |
|
965 | + for ($i = 0; $i < $count; $i++ ) { |
|
966 | + $return_var[] = $start + $i; |
|
967 | + } |
|
904 | 968 | } |
905 | 969 | return $return_var; |
906 | 970 | } |
@@ -918,8 +982,9 @@ discard block |
||
918 | 982 | */ |
919 | 983 | function smf_db_error_backtrace($error_message, $log_message = '', $error_type = false, $file = null, $line = null) |
920 | 984 | { |
921 | - if (empty($log_message)) |
|
922 | - $log_message = $error_message; |
|
985 | + if (empty($log_message)) { |
|
986 | + $log_message = $error_message; |
|
987 | + } |
|
923 | 988 | |
924 | 989 | foreach (debug_backtrace() as $step) |
925 | 990 | { |
@@ -938,12 +1003,14 @@ discard block |
||
938 | 1003 | } |
939 | 1004 | |
940 | 1005 | // A special case - we want the file and line numbers for debugging. |
941 | - if ($error_type == 'return') |
|
942 | - return array($file, $line); |
|
1006 | + if ($error_type == 'return') { |
|
1007 | + return array($file, $line); |
|
1008 | + } |
|
943 | 1009 | |
944 | 1010 | // Is always a critical error. |
945 | - if (function_exists('log_error')) |
|
946 | - log_error($log_message, 'critical', $file, $line); |
|
1011 | + if (function_exists('log_error')) { |
|
1012 | + log_error($log_message, 'critical', $file, $line); |
|
1013 | + } |
|
947 | 1014 | |
948 | 1015 | if (function_exists('fatal_error')) |
949 | 1016 | { |
@@ -951,12 +1018,12 @@ discard block |
||
951 | 1018 | |
952 | 1019 | // Cannot continue... |
953 | 1020 | exit; |
1021 | + } elseif ($error_type) { |
|
1022 | + trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : ''), $error_type); |
|
1023 | + } else { |
|
1024 | + trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : '')); |
|
1025 | + } |
|
954 | 1026 | } |
955 | - elseif ($error_type) |
|
956 | - trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : ''), $error_type); |
|
957 | - else |
|
958 | - trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : '')); |
|
959 | -} |
|
960 | 1027 | |
961 | 1028 | /** |
962 | 1029 | * Escape the LIKE wildcards so that they match the character and not the wildcard. |
@@ -973,10 +1040,11 @@ discard block |
||
973 | 1040 | '\\' => '\\\\', |
974 | 1041 | ); |
975 | 1042 | |
976 | - if ($translate_human_wildcards) |
|
977 | - $replacements += array( |
|
1043 | + if ($translate_human_wildcards) { |
|
1044 | + $replacements += array( |
|
978 | 1045 | '*' => '%', |
979 | 1046 | ); |
1047 | + } |
|
980 | 1048 | |
981 | 1049 | return strtr($string, $replacements); |
982 | 1050 | } |
@@ -990,8 +1058,9 @@ discard block |
||
990 | 1058 | */ |
991 | 1059 | function smf_is_resource($result) |
992 | 1060 | { |
993 | - if ($result instanceof mysqli_result) |
|
994 | - return true; |
|
1061 | + if ($result instanceof mysqli_result) { |
|
1062 | + return true; |
|
1063 | + } |
|
995 | 1064 | |
996 | 1065 | return false; |
997 | 1066 | } |
@@ -200,22 +200,22 @@ discard block |
||
200 | 200 | |
201 | 201 | case 'date': |
202 | 202 | if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d)$~', $replacement, $date_matches) === 1) |
203 | - return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]).'::date'; |
|
203 | + return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]) . '::date'; |
|
204 | 204 | else |
205 | 205 | smf_db_error_backtrace('Wrong value type sent to the database. Date expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
206 | 206 | break; |
207 | 207 | |
208 | 208 | case 'time': |
209 | 209 | if (preg_match('~^([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $time_matches) === 1) |
210 | - return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]).'::time'; |
|
210 | + return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]) . '::time'; |
|
211 | 211 | else |
212 | 212 | smf_db_error_backtrace('Wrong value type sent to the database. Time expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
213 | 213 | break; |
214 | 214 | |
215 | 215 | case 'datetime': |
216 | 216 | if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) |
217 | - return 'to_timestamp('. |
|
218 | - sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5] ,$datetime_matches[6]). |
|
217 | + return 'to_timestamp(' . |
|
218 | + sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5], $datetime_matches[6]) . |
|
219 | 219 | ',\'YYYY-MM-DD HH24:MI:SS\')'; |
220 | 220 | else |
221 | 221 | smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
@@ -767,7 +767,7 @@ discard block |
||
767 | 767 | if (!empty($keys) && (count($keys) > 0) && $returnmode > 0) |
768 | 768 | { |
769 | 769 | // we only take the first key |
770 | - $returning = ' RETURNING '.$keys[0]; |
|
770 | + $returning = ' RETURNING ' . $keys[0]; |
|
771 | 771 | $with_returning = true; |
772 | 772 | } |
773 | 773 | |
@@ -798,7 +798,7 @@ discard block |
||
798 | 798 | INSERT INTO ' . $table . '("' . implode('", "', $indexed_columns) . '") |
799 | 799 | VALUES |
800 | 800 | ' . implode(', |
801 | - ', $insertRows).$replace.$returning, |
|
801 | + ', $insertRows) . $replace . $returning, |
|
802 | 802 | array( |
803 | 803 | 'security_override' => true, |
804 | 804 | 'db_error_skip' => $method == 'ignore' || $table === $db_prefix . 'log_errors', |
@@ -811,7 +811,7 @@ discard block |
||
811 | 811 | if ($returnmode === 2) |
812 | 812 | $return_var = array(); |
813 | 813 | |
814 | - while(($row = $smcFunc['db_fetch_row']($request)) && $with_returning) |
|
814 | + while (($row = $smcFunc['db_fetch_row']($request)) && $with_returning) |
|
815 | 815 | { |
816 | 816 | if (is_numeric($row[0])) // try to emulate mysql limitation |
817 | 817 | { |
@@ -13,8 +13,9 @@ discard block |
||
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 | * Maps the implementations in this file (smf_db_function_name) |
@@ -34,8 +35,8 @@ discard block |
||
34 | 35 | global $smcFunc; |
35 | 36 | |
36 | 37 | // Map some database specific functions, only do this once. |
37 | - if (!isset($smcFunc['db_fetch_assoc'])) |
|
38 | - $smcFunc += array( |
|
38 | + if (!isset($smcFunc['db_fetch_assoc'])) { |
|
39 | + $smcFunc += array( |
|
39 | 40 | 'db_query' => 'smf_db_query', |
40 | 41 | 'db_quote' => 'smf_db_quote', |
41 | 42 | 'db_insert' => 'smf_db_insert', |
@@ -62,11 +63,13 @@ discard block |
||
62 | 63 | 'db_ping' => 'pg_ping', |
63 | 64 | 'db_fetch_all' => 'smf_db_fetch_all', |
64 | 65 | ); |
66 | + } |
|
65 | 67 | |
66 | - if (!empty($db_options['persist'])) |
|
67 | - $connection = @pg_pconnect('host=' . $db_server . ' dbname=' . $db_name . ' user=\'' . $db_user . '\' password=\'' . $db_passwd . '\'' . (empty($db_options['port']) ? '' : ' port=\'' . $db_options['port'] . '\'')); |
|
68 | - else |
|
69 | - $connection = @pg_connect('host=' . $db_server . ' dbname=' . $db_name . ' user=\'' . $db_user . '\' password=\'' . $db_passwd . '\'' . (empty($db_options['port']) ? '' : ' port=\'' . $db_options['port'] . '\'')); |
|
68 | + if (!empty($db_options['persist'])) { |
|
69 | + $connection = @pg_pconnect('host=' . $db_server . ' dbname=' . $db_name . ' user=\'' . $db_user . '\' password=\'' . $db_passwd . '\'' . (empty($db_options['port']) ? '' : ' port=\'' . $db_options['port'] . '\'')); |
|
70 | + } else { |
|
71 | + $connection = @pg_connect('host=' . $db_server . ' dbname=' . $db_name . ' user=\'' . $db_user . '\' password=\'' . $db_passwd . '\'' . (empty($db_options['port']) ? '' : ' port=\'' . $db_options['port'] . '\'')); |
|
72 | + } |
|
70 | 73 | |
71 | 74 | // Something's wrong, show an error if its fatal (which we assume it is) |
72 | 75 | if (!$connection) |
@@ -74,8 +77,7 @@ discard block |
||
74 | 77 | if (!empty($db_options['non_fatal'])) |
75 | 78 | { |
76 | 79 | return null; |
77 | - } |
|
78 | - else |
|
80 | + } else |
|
79 | 81 | { |
80 | 82 | display_db_error(); |
81 | 83 | } |
@@ -126,31 +128,38 @@ discard block |
||
126 | 128 | |
127 | 129 | list ($values, $connection) = $db_callback; |
128 | 130 | |
129 | - if ($matches[1] === 'db_prefix') |
|
130 | - return $db_prefix; |
|
131 | + if ($matches[1] === 'db_prefix') { |
|
132 | + return $db_prefix; |
|
133 | + } |
|
131 | 134 | |
132 | - if (isset($user_info[$matches[1]]) && strpos($matches[1], 'query_') !== false) |
|
133 | - return $user_info[$matches[1]]; |
|
135 | + if (isset($user_info[$matches[1]]) && strpos($matches[1], 'query_') !== false) { |
|
136 | + return $user_info[$matches[1]]; |
|
137 | + } |
|
134 | 138 | |
135 | - if ($matches[1] === 'empty') |
|
136 | - return '\'\''; |
|
139 | + if ($matches[1] === 'empty') { |
|
140 | + return '\'\''; |
|
141 | + } |
|
137 | 142 | |
138 | - if (!isset($matches[2])) |
|
139 | - smf_db_error_backtrace('Invalid value inserted or no type specified.', '', E_USER_ERROR, __FILE__, __LINE__); |
|
143 | + if (!isset($matches[2])) { |
|
144 | + smf_db_error_backtrace('Invalid value inserted or no type specified.', '', E_USER_ERROR, __FILE__, __LINE__); |
|
145 | + } |
|
140 | 146 | |
141 | - if ($matches[1] === 'literal') |
|
142 | - return '\'' . pg_escape_string($matches[2]) . '\''; |
|
147 | + if ($matches[1] === 'literal') { |
|
148 | + return '\'' . pg_escape_string($matches[2]) . '\''; |
|
149 | + } |
|
143 | 150 | |
144 | - if (!isset($values[$matches[2]])) |
|
145 | - smf_db_error_backtrace('The database value you\'re trying to insert does not exist: ' . (isset($smcFunc['htmlspecialchars']) ? $smcFunc['htmlspecialchars']($matches[2]) : htmlspecialchars($matches[2])), '', E_USER_ERROR, __FILE__, __LINE__); |
|
151 | + if (!isset($values[$matches[2]])) { |
|
152 | + smf_db_error_backtrace('The database value you\'re trying to insert does not exist: ' . (isset($smcFunc['htmlspecialchars']) ? $smcFunc['htmlspecialchars']($matches[2]) : htmlspecialchars($matches[2])), '', E_USER_ERROR, __FILE__, __LINE__); |
|
153 | + } |
|
146 | 154 | |
147 | 155 | $replacement = $values[$matches[2]]; |
148 | 156 | |
149 | 157 | switch ($matches[1]) |
150 | 158 | { |
151 | 159 | case 'int': |
152 | - if (!is_numeric($replacement) || (string) $replacement !== (string) (int) $replacement) |
|
153 | - smf_db_error_backtrace('Wrong value type sent to the database. Integer expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
160 | + if (!is_numeric($replacement) || (string) $replacement !== (string) (int) $replacement) { |
|
161 | + smf_db_error_backtrace('Wrong value type sent to the database. Integer expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
162 | + } |
|
154 | 163 | return (string) (int) $replacement; |
155 | 164 | break; |
156 | 165 | |
@@ -162,65 +171,73 @@ discard block |
||
162 | 171 | case 'array_int': |
163 | 172 | if (is_array($replacement)) |
164 | 173 | { |
165 | - if (empty($replacement)) |
|
166 | - smf_db_error_backtrace('Database error, given array of integer values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
174 | + if (empty($replacement)) { |
|
175 | + smf_db_error_backtrace('Database error, given array of integer values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
176 | + } |
|
167 | 177 | |
168 | 178 | foreach ($replacement as $key => $value) |
169 | 179 | { |
170 | - if (!is_numeric($value) || (string) $value !== (string) (int) $value) |
|
171 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
180 | + if (!is_numeric($value) || (string) $value !== (string) (int) $value) { |
|
181 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
182 | + } |
|
172 | 183 | |
173 | 184 | $replacement[$key] = (string) (int) $value; |
174 | 185 | } |
175 | 186 | |
176 | 187 | return implode(', ', $replacement); |
188 | + } else { |
|
189 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
177 | 190 | } |
178 | - else |
|
179 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of integers expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
180 | 191 | |
181 | 192 | break; |
182 | 193 | |
183 | 194 | case 'array_string': |
184 | 195 | if (is_array($replacement)) |
185 | 196 | { |
186 | - if (empty($replacement)) |
|
187 | - smf_db_error_backtrace('Database error, given array of string values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
197 | + if (empty($replacement)) { |
|
198 | + smf_db_error_backtrace('Database error, given array of string values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
199 | + } |
|
188 | 200 | |
189 | - foreach ($replacement as $key => $value) |
|
190 | - $replacement[$key] = sprintf('\'%1$s\'', pg_escape_string($value)); |
|
201 | + foreach ($replacement as $key => $value) { |
|
202 | + $replacement[$key] = sprintf('\'%1$s\'', pg_escape_string($value)); |
|
203 | + } |
|
191 | 204 | |
192 | 205 | return implode(', ', $replacement); |
206 | + } else { |
|
207 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of strings expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
193 | 208 | } |
194 | - else |
|
195 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of strings expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
196 | 209 | break; |
197 | 210 | |
198 | 211 | case 'date': |
199 | - if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d)$~', $replacement, $date_matches) === 1) |
|
200 | - return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]).'::date'; |
|
201 | - else |
|
202 | - smf_db_error_backtrace('Wrong value type sent to the database. Date expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
212 | + if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d)$~', $replacement, $date_matches) === 1) { |
|
213 | + return sprintf('\'%04d-%02d-%02d\'', $date_matches[1], $date_matches[2], $date_matches[3]).'::date'; |
|
214 | + } else { |
|
215 | + smf_db_error_backtrace('Wrong value type sent to the database. Date expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
216 | + } |
|
203 | 217 | break; |
204 | 218 | |
205 | 219 | case 'time': |
206 | - if (preg_match('~^([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $time_matches) === 1) |
|
207 | - return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]).'::time'; |
|
208 | - else |
|
209 | - smf_db_error_backtrace('Wrong value type sent to the database. Time expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
220 | + if (preg_match('~^([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $time_matches) === 1) { |
|
221 | + return sprintf('\'%02d:%02d:%02d\'', $time_matches[1], $time_matches[2], $time_matches[3]).'::time'; |
|
222 | + } else { |
|
223 | + smf_db_error_backtrace('Wrong value type sent to the database. Time expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
224 | + } |
|
210 | 225 | break; |
211 | 226 | |
212 | 227 | case 'datetime': |
213 | - if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) |
|
214 | - return 'to_timestamp('. |
|
228 | + if (preg_match('~^(\d{4})-([0-1]?\d)-([0-3]?\d) ([0-1]?\d|2[0-3]):([0-5]\d):([0-5]\d)$~', $replacement, $datetime_matches) === 1) { |
|
229 | + return 'to_timestamp('. |
|
215 | 230 | sprintf('\'%04d-%02d-%02d %02d:%02d:%02d\'', $datetime_matches[1], $datetime_matches[2], $datetime_matches[3], $datetime_matches[4], $datetime_matches[5] ,$datetime_matches[6]). |
216 | 231 | ',\'YYYY-MM-DD HH24:MI:SS\')'; |
217 | - else |
|
218 | - smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
232 | + } else { |
|
233 | + smf_db_error_backtrace('Wrong value type sent to the database. Datetime expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
234 | + } |
|
219 | 235 | break; |
220 | 236 | |
221 | 237 | case 'float': |
222 | - if (!is_numeric($replacement)) |
|
223 | - smf_db_error_backtrace('Wrong value type sent to the database. Floating point number expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
238 | + if (!is_numeric($replacement)) { |
|
239 | + smf_db_error_backtrace('Wrong value type sent to the database. Floating point number expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
240 | + } |
|
224 | 241 | return (string) (float) $replacement; |
225 | 242 | break; |
226 | 243 | |
@@ -233,31 +250,36 @@ discard block |
||
233 | 250 | break; |
234 | 251 | |
235 | 252 | case 'inet': |
236 | - if ($replacement == 'null' || $replacement == '') |
|
237 | - return 'null'; |
|
238 | - if (inet_pton($replacement) === false) |
|
239 | - smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
253 | + if ($replacement == 'null' || $replacement == '') { |
|
254 | + return 'null'; |
|
255 | + } |
|
256 | + if (inet_pton($replacement) === false) { |
|
257 | + smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
258 | + } |
|
240 | 259 | return sprintf('\'%1$s\'::inet', pg_escape_string($replacement)); |
241 | 260 | |
242 | 261 | case 'array_inet': |
243 | 262 | if (is_array($replacement)) |
244 | 263 | { |
245 | - if (empty($replacement)) |
|
246 | - smf_db_error_backtrace('Database error, given array of IPv4 or IPv6 values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
264 | + if (empty($replacement)) { |
|
265 | + smf_db_error_backtrace('Database error, given array of IPv4 or IPv6 values is empty. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
266 | + } |
|
247 | 267 | |
248 | 268 | foreach ($replacement as $key => $value) |
249 | 269 | { |
250 | - if ($replacement == 'null' || $replacement == '') |
|
251 | - $replacement[$key] = 'null'; |
|
252 | - if (!isValidIP($value)) |
|
253 | - smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
270 | + if ($replacement == 'null' || $replacement == '') { |
|
271 | + $replacement[$key] = 'null'; |
|
272 | + } |
|
273 | + if (!isValidIP($value)) { |
|
274 | + smf_db_error_backtrace('Wrong value type sent to the database. IPv4 or IPv6 expected.(' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
275 | + } |
|
254 | 276 | $replacement[$key] = sprintf('\'%1$s\'::inet', pg_escape_string($value)); |
255 | 277 | } |
256 | 278 | |
257 | 279 | return implode(', ', $replacement); |
280 | + } else { |
|
281 | + smf_db_error_backtrace('Wrong value type sent to the database. Array of IPv4 or IPv6 expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
258 | 282 | } |
259 | - else |
|
260 | - smf_db_error_backtrace('Wrong value type sent to the database. Array of IPv4 or IPv6 expected. (' . $matches[2] . ')', '', E_USER_ERROR, __FILE__, __LINE__); |
|
261 | 283 | break; |
262 | 284 | |
263 | 285 | default: |
@@ -351,14 +373,16 @@ discard block |
||
351 | 373 | ), |
352 | 374 | ); |
353 | 375 | |
354 | - if (isset($replacements[$identifier])) |
|
355 | - $db_string = preg_replace(array_keys($replacements[$identifier]), array_values($replacements[$identifier]), $db_string); |
|
376 | + if (isset($replacements[$identifier])) { |
|
377 | + $db_string = preg_replace(array_keys($replacements[$identifier]), array_values($replacements[$identifier]), $db_string); |
|
378 | + } |
|
356 | 379 | |
357 | 380 | // Limits need to be a little different. |
358 | 381 | $db_string = preg_replace('~\sLIMIT\s(\d+|{int:.+}),\s*(\d+|{int:.+})\s*$~i', 'LIMIT $2 OFFSET $1', $db_string); |
359 | 382 | |
360 | - if (trim($db_string) == '') |
|
361 | - return false; |
|
383 | + if (trim($db_string) == '') { |
|
384 | + return false; |
|
385 | + } |
|
362 | 386 | |
363 | 387 | // Comments that are allowed in a query are preg_removed. |
364 | 388 | static $allowed_comments_from = array( |
@@ -378,8 +402,9 @@ discard block |
||
378 | 402 | $db_count = !isset($db_count) ? 1 : $db_count + 1; |
379 | 403 | $db_replace_result = 0; |
380 | 404 | |
381 | - if (empty($modSettings['disableQueryCheck']) && strpos($db_string, '\'') !== false && empty($db_values['security_override'])) |
|
382 | - smf_db_error_backtrace('Hacking attempt...', 'Illegal character (\') used in query...', true, __FILE__, __LINE__); |
|
405 | + if (empty($modSettings['disableQueryCheck']) && strpos($db_string, '\'') !== false && empty($db_values['security_override'])) { |
|
406 | + smf_db_error_backtrace('Hacking attempt...', 'Illegal character (\') used in query...', true, __FILE__, __LINE__); |
|
407 | + } |
|
383 | 408 | |
384 | 409 | if (empty($db_values['security_override']) && (!empty($db_values) || strpos($db_string, '{db_prefix}') !== false)) |
385 | 410 | { |
@@ -400,8 +425,9 @@ discard block |
||
400 | 425 | list ($file, $line) = smf_db_error_backtrace('', '', 'return', __FILE__, __LINE__); |
401 | 426 | |
402 | 427 | // Initialize $db_cache if not already initialized. |
403 | - if (!isset($db_cache)) |
|
404 | - $db_cache = array(); |
|
428 | + if (!isset($db_cache)) { |
|
429 | + $db_cache = array(); |
|
430 | + } |
|
405 | 431 | |
406 | 432 | if (!empty($_SESSION['debug_redirect'])) |
407 | 433 | { |
@@ -427,17 +453,18 @@ discard block |
||
427 | 453 | while (true) |
428 | 454 | { |
429 | 455 | $pos = strpos($db_string, '\'', $pos + 1); |
430 | - if ($pos === false) |
|
431 | - break; |
|
456 | + if ($pos === false) { |
|
457 | + break; |
|
458 | + } |
|
432 | 459 | $clean .= substr($db_string, $old_pos, $pos - $old_pos); |
433 | 460 | |
434 | 461 | while (true) |
435 | 462 | { |
436 | 463 | $pos1 = strpos($db_string, '\'', $pos + 1); |
437 | 464 | $pos2 = strpos($db_string, '\\', $pos + 1); |
438 | - if ($pos1 === false) |
|
439 | - break; |
|
440 | - elseif ($pos2 === false || $pos2 > $pos1) |
|
465 | + if ($pos1 === false) { |
|
466 | + break; |
|
467 | + } elseif ($pos2 === false || $pos2 > $pos1) |
|
441 | 468 | { |
442 | 469 | $pos = $pos1; |
443 | 470 | break; |
@@ -453,16 +480,19 @@ discard block |
||
453 | 480 | $clean = trim(strtolower(preg_replace($allowed_comments_from, $allowed_comments_to, $clean))); |
454 | 481 | |
455 | 482 | // Comments? We don't use comments in our queries, we leave 'em outside! |
456 | - if (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false) |
|
457 | - $fail = true; |
|
483 | + if (strpos($clean, '/*') > 2 || strpos($clean, '--') !== false || strpos($clean, ';') !== false) { |
|
484 | + $fail = true; |
|
485 | + } |
|
458 | 486 | // Trying to change passwords, slow us down, or something? |
459 | - elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[_a-z])~s', $clean) != 0) |
|
460 | - $fail = true; |
|
461 | - elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0) |
|
462 | - $fail = true; |
|
487 | + elseif (strpos($clean, 'sleep') !== false && preg_match('~(^|[^a-z])sleep($|[^[_a-z])~s', $clean) != 0) { |
|
488 | + $fail = true; |
|
489 | + } elseif (strpos($clean, 'benchmark') !== false && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0) { |
|
490 | + $fail = true; |
|
491 | + } |
|
463 | 492 | |
464 | - if (!empty($fail) && function_exists('log_error')) |
|
465 | - smf_db_error_backtrace('Hacking attempt...', 'Hacking attempt...' . "\n" . $db_string, E_USER_ERROR, __FILE__, __LINE__); |
|
493 | + if (!empty($fail) && function_exists('log_error')) { |
|
494 | + smf_db_error_backtrace('Hacking attempt...', 'Hacking attempt...' . "\n" . $db_string, E_USER_ERROR, __FILE__, __LINE__); |
|
495 | + } |
|
466 | 496 | } |
467 | 497 | |
468 | 498 | // Set optimize stuff |
@@ -481,18 +511,21 @@ discard block |
||
481 | 511 | |
482 | 512 | $db_string = $query_hints_set . $db_string; |
483 | 513 | |
484 | - if (isset($db_show_debug) && $db_show_debug === true && $db_cache[$db_count]['q'] != '...') |
|
485 | - $db_cache[$db_count]['q'] = "\t\t" . $db_string; |
|
514 | + if (isset($db_show_debug) && $db_show_debug === true && $db_cache[$db_count]['q'] != '...') { |
|
515 | + $db_cache[$db_count]['q'] = "\t\t" . $db_string; |
|
516 | + } |
|
486 | 517 | } |
487 | 518 | |
488 | 519 | $db_last_result = @pg_query($connection, $db_string); |
489 | 520 | |
490 | - if ($db_last_result === false && empty($db_values['db_error_skip'])) |
|
491 | - $db_last_result = smf_db_error($db_string, $connection); |
|
521 | + if ($db_last_result === false && empty($db_values['db_error_skip'])) { |
|
522 | + $db_last_result = smf_db_error($db_string, $connection); |
|
523 | + } |
|
492 | 524 | |
493 | 525 | // Debugging. |
494 | - if (isset($db_show_debug) && $db_show_debug === true) |
|
495 | - $db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st)); |
|
526 | + if (isset($db_show_debug) && $db_show_debug === true) { |
|
527 | + $db_cache[$db_count]['t'] = array_sum(explode(' ', microtime())) - array_sum(explode(' ', $st)); |
|
528 | + } |
|
496 | 529 | |
497 | 530 | return $db_last_result; |
498 | 531 | } |
@@ -505,10 +538,11 @@ discard block |
||
505 | 538 | { |
506 | 539 | global $db_last_result, $db_replace_result; |
507 | 540 | |
508 | - if ($db_replace_result) |
|
509 | - return $db_replace_result; |
|
510 | - elseif ($result === null && !$db_last_result) |
|
511 | - return 0; |
|
541 | + if ($db_replace_result) { |
|
542 | + return $db_replace_result; |
|
543 | + } elseif ($result === null && !$db_last_result) { |
|
544 | + return 0; |
|
545 | + } |
|
512 | 546 | |
513 | 547 | return pg_affected_rows($result === null ? $db_last_result : $result); |
514 | 548 | } |
@@ -532,8 +566,9 @@ discard block |
||
532 | 566 | array( |
533 | 567 | ) |
534 | 568 | ); |
535 | - if (!$request) |
|
536 | - return false; |
|
569 | + if (!$request) { |
|
570 | + return false; |
|
571 | + } |
|
537 | 572 | list ($lastID) = $smcFunc['db_fetch_row']($request); |
538 | 573 | $smcFunc['db_free_result']($request); |
539 | 574 | |
@@ -554,12 +589,13 @@ discard block |
||
554 | 589 | // Decide which connection to use |
555 | 590 | $connection = $connection === null ? $db_connection : $connection; |
556 | 591 | |
557 | - if ($type == 'begin') |
|
558 | - return @pg_query($connection, 'BEGIN'); |
|
559 | - elseif ($type == 'rollback') |
|
560 | - return @pg_query($connection, 'ROLLBACK'); |
|
561 | - elseif ($type == 'commit') |
|
562 | - return @pg_query($connection, 'COMMIT'); |
|
592 | + if ($type == 'begin') { |
|
593 | + return @pg_query($connection, 'BEGIN'); |
|
594 | + } elseif ($type == 'rollback') { |
|
595 | + return @pg_query($connection, 'ROLLBACK'); |
|
596 | + } elseif ($type == 'commit') { |
|
597 | + return @pg_query($connection, 'COMMIT'); |
|
598 | + } |
|
563 | 599 | |
564 | 600 | return false; |
565 | 601 | } |
@@ -587,19 +623,22 @@ discard block |
||
587 | 623 | $query_error = @pg_last_error($connection); |
588 | 624 | |
589 | 625 | // Log the error. |
590 | - if (function_exists('log_error')) |
|
591 | - log_error($txt['database_error'] . ': ' . $query_error . (!empty($modSettings['enableErrorQueryLogging']) ? "\n\n" . $db_string : ''), 'database', $file, $line); |
|
626 | + if (function_exists('log_error')) { |
|
627 | + log_error($txt['database_error'] . ': ' . $query_error . (!empty($modSettings['enableErrorQueryLogging']) ? "\n\n" . $db_string : ''), 'database', $file, $line); |
|
628 | + } |
|
592 | 629 | |
593 | 630 | // Nothing's defined yet... just die with it. |
594 | - if (empty($context) || empty($txt)) |
|
595 | - die($query_error); |
|
631 | + if (empty($context) || empty($txt)) { |
|
632 | + die($query_error); |
|
633 | + } |
|
596 | 634 | |
597 | 635 | // Show an error message, if possible. |
598 | 636 | $context['error_title'] = $txt['database_error']; |
599 | - if (allowedTo('admin_forum')) |
|
600 | - $context['error_message'] = nl2br($query_error) . '<br>' . $txt['file'] . ': ' . $file . '<br>' . $txt['line'] . ': ' . $line; |
|
601 | - else |
|
602 | - $context['error_message'] = $txt['try_again']; |
|
637 | + if (allowedTo('admin_forum')) { |
|
638 | + $context['error_message'] = nl2br($query_error) . '<br>' . $txt['file'] . ': ' . $file . '<br>' . $txt['line'] . ': ' . $line; |
|
639 | + } else { |
|
640 | + $context['error_message'] = $txt['try_again']; |
|
641 | + } |
|
603 | 642 | |
604 | 643 | if (allowedTo('admin_forum') && isset($db_show_debug) && $db_show_debug === true) |
605 | 644 | { |
@@ -621,12 +660,14 @@ discard block |
||
621 | 660 | { |
622 | 661 | global $db_row_count; |
623 | 662 | |
624 | - if ($counter !== false) |
|
625 | - return pg_fetch_row($request, $counter); |
|
663 | + if ($counter !== false) { |
|
664 | + return pg_fetch_row($request, $counter); |
|
665 | + } |
|
626 | 666 | |
627 | 667 | // Reset the row counter... |
628 | - if (!isset($db_row_count[(int) $request])) |
|
629 | - $db_row_count[(int) $request] = 0; |
|
668 | + if (!isset($db_row_count[(int) $request])) { |
|
669 | + $db_row_count[(int) $request] = 0; |
|
670 | + } |
|
630 | 671 | |
631 | 672 | // Return the right row. |
632 | 673 | return @pg_fetch_row($request, $db_row_count[(int) $request]++); |
@@ -643,12 +684,14 @@ discard block |
||
643 | 684 | { |
644 | 685 | global $db_row_count; |
645 | 686 | |
646 | - if ($counter !== false) |
|
647 | - return pg_fetch_assoc($request, $counter); |
|
687 | + if ($counter !== false) { |
|
688 | + return pg_fetch_assoc($request, $counter); |
|
689 | + } |
|
648 | 690 | |
649 | 691 | // Reset the row counter... |
650 | - if (!isset($db_row_count[(int) $request])) |
|
651 | - $db_row_count[(int) $request] = 0; |
|
692 | + if (!isset($db_row_count[(int) $request])) { |
|
693 | + $db_row_count[(int) $request] = 0; |
|
694 | + } |
|
652 | 695 | |
653 | 696 | // Return the right row. |
654 | 697 | return @pg_fetch_assoc($request, $db_row_count[(int) $request]++); |
@@ -701,11 +744,13 @@ discard block |
||
701 | 744 | |
702 | 745 | $replace = ''; |
703 | 746 | |
704 | - if (empty($data)) |
|
705 | - return; |
|
747 | + if (empty($data)) { |
|
748 | + return; |
|
749 | + } |
|
706 | 750 | |
707 | - if (!is_array($data[array_rand($data)])) |
|
708 | - $data = array($data); |
|
751 | + if (!is_array($data[array_rand($data)])) { |
|
752 | + $data = array($data); |
|
753 | + } |
|
709 | 754 | |
710 | 755 | // Replace the prefix holder with the actual prefix. |
711 | 756 | $table = str_replace('{db_prefix}', $db_prefix, $table); |
@@ -724,11 +769,13 @@ discard block |
||
724 | 769 | //pg 9.5 got replace support |
725 | 770 | $pg_version = $smcFunc['db_get_version'](); |
726 | 771 | // if we got a Beta Version |
727 | - if (stripos($pg_version, 'beta') !== false) |
|
728 | - $pg_version = substr($pg_version, 0, stripos($pg_version, 'beta')) . '.0'; |
|
772 | + if (stripos($pg_version, 'beta') !== false) { |
|
773 | + $pg_version = substr($pg_version, 0, stripos($pg_version, 'beta')) . '.0'; |
|
774 | + } |
|
729 | 775 | // or RC |
730 | - if (stripos($pg_version, 'rc') !== false) |
|
731 | - $pg_version = substr($pg_version, 0, stripos($pg_version, 'rc')) . '.0'; |
|
776 | + if (stripos($pg_version, 'rc') !== false) { |
|
777 | + $pg_version = substr($pg_version, 0, stripos($pg_version, 'rc')) . '.0'; |
|
778 | + } |
|
732 | 779 | |
733 | 780 | $replace_support = (version_compare($pg_version, '9.5.0', '>=') ? true : false); |
734 | 781 | } |
@@ -747,8 +794,7 @@ discard block |
||
747 | 794 | $key_str .= ($count_pk > 0 ? ',' : ''); |
748 | 795 | $key_str .= $columnName; |
749 | 796 | $count_pk++; |
750 | - } |
|
751 | - else //normal field |
|
797 | + } else //normal field |
|
752 | 798 | { |
753 | 799 | $col_str .= ($count > 0 ? ',' : ''); |
754 | 800 | $col_str .= $columnName . ' = EXCLUDED.' . $columnName; |
@@ -756,20 +802,21 @@ discard block |
||
756 | 802 | } |
757 | 803 | } |
758 | 804 | $replace = ' ON CONFLICT (' . $key_str . ') DO UPDATE SET ' . $col_str; |
759 | - } |
|
760 | - else |
|
805 | + } else |
|
761 | 806 | { |
762 | 807 | foreach ($columns as $columnName => $type) |
763 | 808 | { |
764 | 809 | // Are we restricting the length? |
765 | - if (strpos($type, 'string-') !== false) |
|
766 | - $actualType = sprintf($columnName . ' = SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $count); |
|
767 | - else |
|
768 | - $actualType = sprintf($columnName . ' = {%1$s:%2$s}, ', $type, $count); |
|
810 | + if (strpos($type, 'string-') !== false) { |
|
811 | + $actualType = sprintf($columnName . ' = SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $count); |
|
812 | + } else { |
|
813 | + $actualType = sprintf($columnName . ' = {%1$s:%2$s}, ', $type, $count); |
|
814 | + } |
|
769 | 815 | |
770 | 816 | // A key? That's what we were looking for. |
771 | - if (in_array($columnName, $keys)) |
|
772 | - $where .= (empty($where) ? '' : ' AND ') . substr($actualType, 0, -2); |
|
817 | + if (in_array($columnName, $keys)) { |
|
818 | + $where .= (empty($where) ? '' : ' AND ') . substr($actualType, 0, -2); |
|
819 | + } |
|
773 | 820 | $count++; |
774 | 821 | } |
775 | 822 | |
@@ -805,10 +852,11 @@ discard block |
||
805 | 852 | foreach ($columns as $columnName => $type) |
806 | 853 | { |
807 | 854 | // Are we restricting the length? |
808 | - if (strpos($type, 'string-') !== false) |
|
809 | - $insertData .= sprintf('SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $columnName); |
|
810 | - else |
|
811 | - $insertData .= sprintf('{%1$s:%2$s}, ', $type, $columnName); |
|
855 | + if (strpos($type, 'string-') !== false) { |
|
856 | + $insertData .= sprintf('SUBSTRING({string:%1$s}, 1, ' . substr($type, 7) . '), ', $columnName); |
|
857 | + } else { |
|
858 | + $insertData .= sprintf('{%1$s:%2$s}, ', $type, $columnName); |
|
859 | + } |
|
812 | 860 | } |
813 | 861 | $insertData = substr($insertData, 0, -2) . ')'; |
814 | 862 | |
@@ -817,8 +865,9 @@ discard block |
||
817 | 865 | |
818 | 866 | // Here's where the variables are injected to the query. |
819 | 867 | $insertRows = array(); |
820 | - foreach ($data as $dataRow) |
|
821 | - $insertRows[] = smf_db_quote($insertData, array_combine($indexed_columns, $dataRow), $connection); |
|
868 | + foreach ($data as $dataRow) { |
|
869 | + $insertRows[] = smf_db_quote($insertData, array_combine($indexed_columns, $dataRow), $connection); |
|
870 | + } |
|
822 | 871 | |
823 | 872 | // Do the insert. |
824 | 873 | $request = $smcFunc['db_query']('', ' |
@@ -835,19 +884,21 @@ discard block |
||
835 | 884 | |
836 | 885 | if ($with_returning && $request !== false) |
837 | 886 | { |
838 | - if ($returnmode === 2) |
|
839 | - $return_var = array(); |
|
887 | + if ($returnmode === 2) { |
|
888 | + $return_var = array(); |
|
889 | + } |
|
840 | 890 | |
841 | 891 | while(($row = $smcFunc['db_fetch_row']($request)) && $with_returning) |
842 | 892 | { |
843 | - if (is_numeric($row[0])) // try to emulate mysql limitation |
|
893 | + if (is_numeric($row[0])) { |
|
894 | + // try to emulate mysql limitation |
|
844 | 895 | { |
845 | 896 | if ($returnmode === 1) |
846 | 897 | $return_var = $row[0]; |
847 | - elseif ($returnmode === 2) |
|
848 | - $return_var[] = $row[0]; |
|
849 | - } |
|
850 | - else |
|
898 | + } elseif ($returnmode === 2) { |
|
899 | + $return_var[] = $row[0]; |
|
900 | + } |
|
901 | + } else |
|
851 | 902 | { |
852 | 903 | $with_returning = false; |
853 | 904 | trigger_error('trying to returning ID Field which is not a Int field', E_USER_ERROR); |
@@ -856,9 +907,10 @@ discard block |
||
856 | 907 | } |
857 | 908 | } |
858 | 909 | |
859 | - if ($with_returning && !empty($return_var)) |
|
860 | - return $return_var; |
|
861 | -} |
|
910 | + if ($with_returning && !empty($return_var)) { |
|
911 | + return $return_var; |
|
912 | + } |
|
913 | + } |
|
862 | 914 | |
863 | 915 | /** |
864 | 916 | * Dummy function really. Doesn't do anything on PostgreSQL. |
@@ -895,8 +947,9 @@ discard block |
||
895 | 947 | */ |
896 | 948 | function smf_db_error_backtrace($error_message, $log_message = '', $error_type = false, $file = null, $line = null) |
897 | 949 | { |
898 | - if (empty($log_message)) |
|
899 | - $log_message = $error_message; |
|
950 | + if (empty($log_message)) { |
|
951 | + $log_message = $error_message; |
|
952 | + } |
|
900 | 953 | |
901 | 954 | foreach (debug_backtrace() as $step) |
902 | 955 | { |
@@ -915,12 +968,14 @@ discard block |
||
915 | 968 | } |
916 | 969 | |
917 | 970 | // A special case - we want the file and line numbers for debugging. |
918 | - if ($error_type == 'return') |
|
919 | - return array($file, $line); |
|
971 | + if ($error_type == 'return') { |
|
972 | + return array($file, $line); |
|
973 | + } |
|
920 | 974 | |
921 | 975 | // Is always a critical error. |
922 | - if (function_exists('log_error')) |
|
923 | - log_error($log_message, 'critical', $file, $line); |
|
976 | + if (function_exists('log_error')) { |
|
977 | + log_error($log_message, 'critical', $file, $line); |
|
978 | + } |
|
924 | 979 | |
925 | 980 | if (function_exists('fatal_error')) |
926 | 981 | { |
@@ -928,12 +983,12 @@ discard block |
||
928 | 983 | |
929 | 984 | // Cannot continue... |
930 | 985 | exit; |
986 | + } elseif ($error_type) { |
|
987 | + trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : ''), $error_type); |
|
988 | + } else { |
|
989 | + trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : '')); |
|
990 | + } |
|
931 | 991 | } |
932 | - elseif ($error_type) |
|
933 | - trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : ''), $error_type); |
|
934 | - else |
|
935 | - trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : '')); |
|
936 | -} |
|
937 | 992 | |
938 | 993 | /** |
939 | 994 | * Escape the LIKE wildcards so that they match the character and not the wildcard. |
@@ -950,10 +1005,11 @@ discard block |
||
950 | 1005 | '\\' => '\\\\', |
951 | 1006 | ); |
952 | 1007 | |
953 | - if ($translate_human_wildcards) |
|
954 | - $replacements += array( |
|
1008 | + if ($translate_human_wildcards) { |
|
1009 | + $replacements += array( |
|
955 | 1010 | '*' => '%', |
956 | 1011 | ); |
1012 | + } |
|
957 | 1013 | |
958 | 1014 | return strtr($string, $replacements); |
959 | 1015 | } |
@@ -500,7 +500,7 @@ discard block |
||
500 | 500 | /** |
501 | 501 | * Returns the amount of affected rows for a query. |
502 | 502 | * |
503 | - * @param mixed $result |
|
503 | + * @param resource|null $result |
|
504 | 504 | * |
505 | 505 | * @return int |
506 | 506 | * |
@@ -869,7 +869,7 @@ discard block |
||
869 | 869 | * |
870 | 870 | * @param string $db_name The database name |
871 | 871 | * @param resource $db_connection The database connection |
872 | - * @return true Always returns true |
|
872 | + * @return boolean Always returns true |
|
873 | 873 | */ |
874 | 874 | function smf_db_select_db($db_name, $db_connection) |
875 | 875 | { |
@@ -11,8 +11,9 @@ discard block |
||
11 | 11 | * @version 2.1 Beta 4 |
12 | 12 | */ |
13 | 13 | |
14 | -if (!defined('SMF')) |
|
14 | +if (!defined('SMF')) { |
|
15 | 15 | die('Hacking attempt...'); |
16 | +} |
|
16 | 17 | |
17 | 18 | /** |
18 | 19 | * Our Cache API class |
@@ -27,8 +28,9 @@ discard block |
||
27 | 28 | { |
28 | 29 | $supported = function_exists('zend_shm_cache_fetch') || function_exists('output_cache_get'); |
29 | 30 | |
30 | - if ($test) |
|
31 | - return $supported; |
|
31 | + if ($test) { |
|
32 | + return $supported; |
|
33 | + } |
|
32 | 34 | return parent::isSupported() && $supported; |
33 | 35 | } |
34 | 36 | |
@@ -40,10 +42,11 @@ discard block |
||
40 | 42 | $key = $this->prefix . strtr($key, ':/', '-_'); |
41 | 43 | |
42 | 44 | // Zend's pricey stuff. |
43 | - if (function_exists('zend_shm_cache_fetch')) |
|
44 | - return zend_shm_cache_fetch('SMF::' . $key); |
|
45 | - elseif (function_exists('output_cache_get')) |
|
46 | - return output_cache_get($key, $ttl); |
|
45 | + if (function_exists('zend_shm_cache_fetch')) { |
|
46 | + return zend_shm_cache_fetch('SMF::' . $key); |
|
47 | + } elseif (function_exists('output_cache_get')) { |
|
48 | + return output_cache_get($key, $ttl); |
|
49 | + } |
|
47 | 50 | } |
48 | 51 | |
49 | 52 | /** |
@@ -53,10 +56,11 @@ discard block |
||
53 | 56 | { |
54 | 57 | $key = $this->prefix . strtr($key, ':/', '-_'); |
55 | 58 | |
56 | - if (function_exists('zend_shm_cache_store')) |
|
57 | - return zend_shm_cache_store('SMF::' . $key, $value, $ttl); |
|
58 | - elseif (function_exists('output_cache_put')) |
|
59 | - return output_cache_put($key, $value); |
|
59 | + if (function_exists('zend_shm_cache_store')) { |
|
60 | + return zend_shm_cache_store('SMF::' . $key, $value, $ttl); |
|
61 | + } elseif (function_exists('output_cache_put')) { |
|
62 | + return output_cache_put($key, $value); |
|
63 | + } |
|
60 | 64 | } |
61 | 65 | |
62 | 66 | /** |
@@ -11,8 +11,9 @@ discard block |
||
11 | 11 | * @version 2.1 Beta 4 |
12 | 12 | */ |
13 | 13 | |
14 | -if (!defined('SMF')) |
|
14 | +if (!defined('SMF')) { |
|
15 | 15 | die('Hacking attempt...'); |
16 | +} |
|
16 | 17 | |
17 | 18 | /** |
18 | 19 | * Our Cache API class |
@@ -27,8 +28,9 @@ discard block |
||
27 | 28 | { |
28 | 29 | $supported = function_exists('apc_fetch') && function_exists('apc_store'); |
29 | 30 | |
30 | - if ($test) |
|
31 | - return $supported; |
|
31 | + if ($test) { |
|
32 | + return $supported; |
|
33 | + } |
|
32 | 34 | return parent::isSupported() && $supported; |
33 | 35 | } |
34 | 36 | |
@@ -50,10 +52,11 @@ discard block |
||
50 | 52 | $key = $this->prefix . strtr($key, ':/', '-_'); |
51 | 53 | |
52 | 54 | // An extended key is needed to counteract a bug in APC. |
53 | - if ($value === null) |
|
54 | - return apc_delete($key . 'smf'); |
|
55 | - else |
|
56 | - return apc_store($key . 'smf', $value, $ttl); |
|
55 | + if ($value === null) { |
|
56 | + return apc_delete($key . 'smf'); |
|
57 | + } else { |
|
58 | + return apc_store($key . 'smf', $value, $ttl); |
|
59 | + } |
|
57 | 60 | } |
58 | 61 | |
59 | 62 | /** |
@@ -67,9 +70,9 @@ discard block |
||
67 | 70 | // Always returns true. |
68 | 71 | apc_clear_cache('user'); |
69 | 72 | apc_clear_cache('system'); |
73 | + } elseif ($type === 'user') { |
|
74 | + apc_clear_cache('user'); |
|
70 | 75 | } |
71 | - elseif ($type === 'user') |
|
72 | - apc_clear_cache('user'); |
|
73 | 76 | |
74 | 77 | $this->invalidateCache(); |
75 | 78 | return true; |
@@ -13,8 +13,9 @@ discard block |
||
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 | * This is a handling function for all things post moderation. |
@@ -39,8 +40,9 @@ discard block |
||
39 | 40 | ); |
40 | 41 | |
41 | 42 | // Pick something valid... |
42 | - if (!isset($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']])) |
|
43 | - $_REQUEST['sa'] = 'replies'; |
|
43 | + if (!isset($_REQUEST['sa']) || !isset($subActions[$_REQUEST['sa']])) { |
|
44 | + $_REQUEST['sa'] = 'replies'; |
|
45 | + } |
|
44 | 46 | |
45 | 47 | call_integration_hook('integrate_post_moderation', array(&$subActions)); |
46 | 48 | |
@@ -68,13 +70,15 @@ discard block |
||
68 | 70 | $approve_boards = $approve_boards == array(0) ? $filter_board : array_intersect($approve_boards, $filter_board); |
69 | 71 | } |
70 | 72 | |
71 | - if ($approve_boards == array(0)) |
|
72 | - $approve_query = ''; |
|
73 | - elseif (!empty($approve_boards)) |
|
74 | - $approve_query = ' AND m.id_board IN (' . implode(',', $approve_boards) . ')'; |
|
73 | + if ($approve_boards == array(0)) { |
|
74 | + $approve_query = ''; |
|
75 | + } elseif (!empty($approve_boards)) { |
|
76 | + $approve_query = ' AND m.id_board IN (' . implode(',', $approve_boards) . ')'; |
|
77 | + } |
|
75 | 78 | // Nada, zip, etc... |
76 | - else |
|
77 | - $approve_query = ' AND 1=0'; |
|
79 | + else { |
|
80 | + $approve_query = ' AND 1=0'; |
|
81 | + } |
|
78 | 82 | |
79 | 83 | // We also need to know where we can delete topics and/or replies to. |
80 | 84 | if ($context['current_view'] == 'topics') |
@@ -82,8 +86,7 @@ discard block |
||
82 | 86 | $delete_own_boards = boardsAllowedTo('remove_own'); |
83 | 87 | $delete_any_boards = boardsAllowedTo('remove_any'); |
84 | 88 | $delete_own_replies = array(); |
85 | - } |
|
86 | - else |
|
89 | + } else |
|
87 | 90 | { |
88 | 91 | $delete_own_boards = boardsAllowedTo('delete_own'); |
89 | 92 | $delete_any_boards = boardsAllowedTo('delete_any'); |
@@ -92,21 +95,25 @@ discard block |
||
92 | 95 | |
93 | 96 | $toAction = array(); |
94 | 97 | // Check if we have something to do? |
95 | - if (isset($_GET['approve'])) |
|
96 | - $toAction[] = (int) $_GET['approve']; |
|
98 | + if (isset($_GET['approve'])) { |
|
99 | + $toAction[] = (int) $_GET['approve']; |
|
100 | + } |
|
97 | 101 | // Just a deletion? |
98 | - elseif (isset($_GET['delete'])) |
|
99 | - $toAction[] = (int) $_GET['delete']; |
|
102 | + elseif (isset($_GET['delete'])) { |
|
103 | + $toAction[] = (int) $_GET['delete']; |
|
104 | + } |
|
100 | 105 | // Lots of approvals? |
101 | - elseif (isset($_POST['item'])) |
|
102 | - foreach ($_POST['item'] as $item) |
|
106 | + elseif (isset($_POST['item'])) { |
|
107 | + foreach ($_POST['item'] as $item) |
|
103 | 108 | $toAction[] = (int) $item; |
109 | + } |
|
104 | 110 | |
105 | 111 | // What are we actually doing. |
106 | - if (isset($_GET['approve']) || (isset($_POST['do']) && $_POST['do'] == 'approve')) |
|
107 | - $curAction = 'approve'; |
|
108 | - elseif (isset($_GET['delete']) || (isset($_POST['do']) && $_POST['do'] == 'delete')) |
|
109 | - $curAction = 'delete'; |
|
112 | + if (isset($_GET['approve']) || (isset($_POST['do']) && $_POST['do'] == 'approve')) { |
|
113 | + $curAction = 'approve'; |
|
114 | + } elseif (isset($_GET['delete']) || (isset($_POST['do']) && $_POST['do'] == 'delete')) { |
|
115 | + $curAction = 'delete'; |
|
116 | + } |
|
110 | 117 | |
111 | 118 | // Right, so we have something to do? |
112 | 119 | if (!empty($toAction) && isset($curAction)) |
@@ -135,8 +142,9 @@ discard block |
||
135 | 142 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
136 | 143 | { |
137 | 144 | // If it's not within what our view is ignore it... |
138 | - if (($row['id_msg'] == $row['id_first_msg'] && $context['current_view'] != 'topics') || ($row['id_msg'] != $row['id_first_msg'] && $context['current_view'] != 'replies')) |
|
139 | - continue; |
|
145 | + if (($row['id_msg'] == $row['id_first_msg'] && $context['current_view'] != 'topics') || ($row['id_msg'] != $row['id_first_msg'] && $context['current_view'] != 'replies')) { |
|
146 | + continue; |
|
147 | + } |
|
140 | 148 | |
141 | 149 | $can_add = false; |
142 | 150 | // If we're approving this is simple. |
@@ -148,18 +156,22 @@ discard block |
||
148 | 156 | elseif ($curAction == 'delete') |
149 | 157 | { |
150 | 158 | // Own post is easy! |
151 | - if ($row['id_member'] == $user_info['id'] && ($delete_own_boards == array(0) || in_array($row['id_board'], $delete_own_boards))) |
|
152 | - $can_add = true; |
|
159 | + if ($row['id_member'] == $user_info['id'] && ($delete_own_boards == array(0) || in_array($row['id_board'], $delete_own_boards))) { |
|
160 | + $can_add = true; |
|
161 | + } |
|
153 | 162 | // Is it a reply to their own topic? |
154 | - elseif ($row['id_member'] == $row['id_member_started'] && $row['id_msg'] != $row['id_first_msg'] && ($delete_own_replies == array(0) || in_array($row['id_board'], $delete_own_replies))) |
|
155 | - $can_add = true; |
|
163 | + elseif ($row['id_member'] == $row['id_member_started'] && $row['id_msg'] != $row['id_first_msg'] && ($delete_own_replies == array(0) || in_array($row['id_board'], $delete_own_replies))) { |
|
164 | + $can_add = true; |
|
165 | + } |
|
156 | 166 | // Someone elses? |
157 | - elseif ($row['id_member'] != $user_info['id'] && ($delete_any_boards == array(0) || in_array($row['id_board'], $delete_any_boards))) |
|
158 | - $can_add = true; |
|
167 | + elseif ($row['id_member'] != $user_info['id'] && ($delete_any_boards == array(0) || in_array($row['id_board'], $delete_any_boards))) { |
|
168 | + $can_add = true; |
|
169 | + } |
|
159 | 170 | } |
160 | 171 | |
161 | - if ($can_add) |
|
162 | - $anItem = $context['current_view'] == 'topics' ? $row['id_topic'] : $row['id_msg']; |
|
172 | + if ($can_add) { |
|
173 | + $anItem = $context['current_view'] == 'topics' ? $row['id_topic'] : $row['id_msg']; |
|
174 | + } |
|
163 | 175 | $toAction[] = $anItem; |
164 | 176 | |
165 | 177 | // All clear. What have we got now, what, what? |
@@ -177,8 +189,7 @@ discard block |
||
177 | 189 | if ($curAction == 'approve') |
178 | 190 | { |
179 | 191 | approveMessages($toAction, $details, $context['current_view']); |
180 | - } |
|
181 | - else |
|
192 | + } else |
|
182 | 193 | { |
183 | 194 | removeMessages($toAction, $details, $context['current_view']); |
184 | 195 | } |
@@ -265,16 +276,19 @@ discard block |
||
265 | 276 | for ($i = 1; $row = $smcFunc['db_fetch_assoc']($request); $i++) |
266 | 277 | { |
267 | 278 | // Can delete is complicated, let's solve it first... is it their own post? |
268 | - if ($row['id_member'] == $user_info['id'] && ($delete_own_boards == array(0) || in_array($row['id_board'], $delete_own_boards))) |
|
269 | - $can_delete = true; |
|
279 | + if ($row['id_member'] == $user_info['id'] && ($delete_own_boards == array(0) || in_array($row['id_board'], $delete_own_boards))) { |
|
280 | + $can_delete = true; |
|
281 | + } |
|
270 | 282 | // Is it a reply to their own topic? |
271 | - elseif ($row['id_member'] == $row['id_member_started'] && $row['id_msg'] != $row['id_first_msg'] && ($delete_own_replies == array(0) || in_array($row['id_board'], $delete_own_replies))) |
|
272 | - $can_delete = true; |
|
283 | + elseif ($row['id_member'] == $row['id_member_started'] && $row['id_msg'] != $row['id_first_msg'] && ($delete_own_replies == array(0) || in_array($row['id_board'], $delete_own_replies))) { |
|
284 | + $can_delete = true; |
|
285 | + } |
|
273 | 286 | // Someone elses? |
274 | - elseif ($row['id_member'] != $user_info['id'] && ($delete_any_boards == array(0) || in_array($row['id_board'], $delete_any_boards))) |
|
275 | - $can_delete = true; |
|
276 | - else |
|
277 | - $can_delete = false; |
|
287 | + elseif ($row['id_member'] != $user_info['id'] && ($delete_any_boards == array(0) || in_array($row['id_board'], $delete_any_boards))) { |
|
288 | + $can_delete = true; |
|
289 | + } else { |
|
290 | + $can_delete = false; |
|
291 | + } |
|
278 | 292 | |
279 | 293 | $context['unapproved_items'][] = array( |
280 | 294 | 'id' => $row['id_msg'], |
@@ -323,28 +337,31 @@ discard block |
||
323 | 337 | // Once again, permissions are king! |
324 | 338 | $approve_boards = boardsAllowedTo('approve_posts'); |
325 | 339 | |
326 | - if ($approve_boards == array(0)) |
|
327 | - $approve_query = ''; |
|
328 | - elseif (!empty($approve_boards)) |
|
329 | - $approve_query = ' AND m.id_board IN (' . implode(',', $approve_boards) . ')'; |
|
330 | - else |
|
331 | - $approve_query = ' AND 1=0'; |
|
340 | + if ($approve_boards == array(0)) { |
|
341 | + $approve_query = ''; |
|
342 | + } elseif (!empty($approve_boards)) { |
|
343 | + $approve_query = ' AND m.id_board IN (' . implode(',', $approve_boards) . ')'; |
|
344 | + } else { |
|
345 | + $approve_query = ' AND 1=0'; |
|
346 | + } |
|
332 | 347 | |
333 | 348 | // Get together the array of things to act on, if any. |
334 | 349 | $attachments = array(); |
335 | - if (isset($_GET['approve'])) |
|
336 | - $attachments[] = (int) $_GET['approve']; |
|
337 | - elseif (isset($_GET['delete'])) |
|
338 | - $attachments[] = (int) $_GET['delete']; |
|
339 | - elseif (isset($_POST['item'])) |
|
340 | - foreach ($_POST['item'] as $item) |
|
350 | + if (isset($_GET['approve'])) { |
|
351 | + $attachments[] = (int) $_GET['approve']; |
|
352 | + } elseif (isset($_GET['delete'])) { |
|
353 | + $attachments[] = (int) $_GET['delete']; |
|
354 | + } elseif (isset($_POST['item'])) { |
|
355 | + foreach ($_POST['item'] as $item) |
|
341 | 356 | $attachments[] = (int) $item; |
357 | + } |
|
342 | 358 | |
343 | 359 | // Are we approving or deleting? |
344 | - if (isset($_GET['approve']) || (isset($_POST['do']) && $_POST['do'] == 'approve')) |
|
345 | - $curAction = 'approve'; |
|
346 | - elseif (isset($_GET['delete']) || (isset($_POST['do']) && $_POST['do'] == 'delete')) |
|
347 | - $curAction = 'delete'; |
|
360 | + if (isset($_GET['approve']) || (isset($_POST['do']) && $_POST['do'] == 'approve')) { |
|
361 | + $curAction = 'approve'; |
|
362 | + } elseif (isset($_GET['delete']) || (isset($_POST['do']) && $_POST['do'] == 'delete')) { |
|
363 | + $curAction = 'delete'; |
|
364 | + } |
|
348 | 365 | |
349 | 366 | // Something to do, let's do it! |
350 | 367 | if (!empty($attachments) && isset($curAction)) |
@@ -372,17 +389,19 @@ discard block |
||
372 | 389 | ) |
373 | 390 | ); |
374 | 391 | $attachments = array(); |
375 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
376 | - $attachments[] = $row['id_attach']; |
|
392 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
393 | + $attachments[] = $row['id_attach']; |
|
394 | + } |
|
377 | 395 | $smcFunc['db_free_result']($request); |
378 | 396 | |
379 | 397 | // Assuming it wasn't all like, proper illegal, we can do the approving. |
380 | 398 | if (!empty($attachments)) |
381 | 399 | { |
382 | - if ($curAction == 'approve') |
|
383 | - ApproveAttachments($attachments); |
|
384 | - else |
|
385 | - removeAttachments(array('id_attach' => $attachments, 'do_logging' => true)); |
|
400 | + if ($curAction == 'approve') { |
|
401 | + ApproveAttachments($attachments); |
|
402 | + } else { |
|
403 | + removeAttachments(array('id_attach' => $attachments, 'do_logging' => true)); |
|
404 | + } |
|
386 | 405 | } |
387 | 406 | } |
388 | 407 | |
@@ -682,15 +701,16 @@ discard block |
||
682 | 701 | { |
683 | 702 | approveTopics($topic, !$approved); |
684 | 703 | |
685 | - if ($starter != $user_info['id']) |
|
686 | - logAction(($approved ? 'un' : '') . 'approve_topic', array('topic' => $topic, 'subject' => $subject, 'member' => $starter, 'board' => $board)); |
|
687 | - } |
|
688 | - else |
|
704 | + if ($starter != $user_info['id']) { |
|
705 | + logAction(($approved ? 'un' : '') . 'approve_topic', array('topic' => $topic, 'subject' => $subject, 'member' => $starter, 'board' => $board)); |
|
706 | + } |
|
707 | + } else |
|
689 | 708 | { |
690 | 709 | approvePosts($_REQUEST['msg'], !$approved); |
691 | 710 | |
692 | - if ($poster != $user_info['id']) |
|
693 | - logAction(($approved ? 'un' : '') . 'approve', array('topic' => $topic, 'subject' => $subject, 'member' => $poster, 'board' => $board)); |
|
711 | + if ($poster != $user_info['id']) { |
|
712 | + logAction(($approved ? 'un' : '') . 'approve', array('topic' => $topic, 'subject' => $subject, 'member' => $poster, 'board' => $board)); |
|
713 | + } |
|
694 | 714 | } |
695 | 715 | |
696 | 716 | redirectexit('topic=' . $topic . '.msg' . $_REQUEST['msg'] . '#msg' . $_REQUEST['msg']); |
@@ -716,8 +736,7 @@ discard block |
||
716 | 736 | { |
717 | 737 | logAction('approve_topic', array('topic' => $topic, 'subject' => $messageDetails[$topic]['subject'], 'member' => $messageDetails[$topic]['member'], 'board' => $messageDetails[$topic]['board'])); |
718 | 738 | } |
719 | - } |
|
720 | - else |
|
739 | + } else |
|
721 | 740 | { |
722 | 741 | approvePosts($messages); |
723 | 742 | // and tell the world about it again |
@@ -745,8 +764,9 @@ discard block |
||
745 | 764 | ) |
746 | 765 | ); |
747 | 766 | $msgs = array(); |
748 | - while ($row = $smcFunc['db_fetch_row']($request)) |
|
749 | - $msgs[] = $row[0]; |
|
767 | + while ($row = $smcFunc['db_fetch_row']($request)) { |
|
768 | + $msgs[] = $row[0]; |
|
769 | + } |
|
750 | 770 | $smcFunc['db_free_result']($request); |
751 | 771 | |
752 | 772 | if (!empty($msgs)) |
@@ -765,8 +785,9 @@ discard block |
||
765 | 785 | ) |
766 | 786 | ); |
767 | 787 | $attaches = array(); |
768 | - while ($row = $smcFunc['db_fetch_row']($request)) |
|
769 | - $attaches[] = $row[0]; |
|
788 | + while ($row = $smcFunc['db_fetch_row']($request)) { |
|
789 | + $attaches[] = $row[0]; |
|
790 | + } |
|
770 | 791 | $smcFunc['db_free_result']($request); |
771 | 792 | |
772 | 793 | if (!empty($attaches)) |
@@ -794,12 +815,12 @@ discard block |
||
794 | 815 | { |
795 | 816 | removeTopics($messages); |
796 | 817 | // and tell the world about it |
797 | - foreach ($messages as $topic) |
|
798 | - // Note, only log topic ID in native form if it's not gone forever. |
|
818 | + foreach ($messages as $topic) { |
|
819 | + // Note, only log topic ID in native form if it's not gone forever. |
|
799 | 820 | logAction('remove', array( |
800 | 821 | (empty($modSettings['recycle_enable']) || $modSettings['recycle_board'] != $messageDetails[$topic]['board'] ? 'topic' : 'old_topic_id') => $topic, 'subject' => $messageDetails[$topic]['subject'], 'member' => $messageDetails[$topic]['member'], 'board' => $messageDetails[$topic]['board'])); |
801 | - } |
|
802 | - else |
|
822 | + } |
|
823 | + } else |
|
803 | 824 | { |
804 | 825 | foreach ($messages as $post) |
805 | 826 | { |
@@ -14,8 +14,9 @@ discard block |
||
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 | * This function shows the board index. |
@@ -34,8 +35,9 @@ discard block |
||
34 | 35 | $context['canonical_url'] = $scripturl; |
35 | 36 | |
36 | 37 | // Do not let search engines index anything if there is a random thing in $_GET. |
37 | - if (!empty($_GET)) |
|
38 | - $context['robot_no_index'] = true; |
|
38 | + if (!empty($_GET)) { |
|
39 | + $context['robot_no_index'] = true; |
|
40 | + } |
|
39 | 41 | |
40 | 42 | // Retrieve the categories and boards. |
41 | 43 | require_once($sourcedir . '/Subs-BoardIndex.php'); |
@@ -62,11 +64,12 @@ discard block |
||
62 | 64 | $context['latest_posts'] = cache_quick_get('boardindex-latest_posts:' . md5($user_info['query_wanna_see_board'] . $user_info['language']), 'Subs-Recent.php', 'cache_getLastPosts', array($latestPostOptions)); |
63 | 65 | } |
64 | 66 | |
65 | - if (!empty($context['latest_posts']) || !empty($context['latest_post'])) |
|
66 | - $context['info_center'][] = array( |
|
67 | + if (!empty($context['latest_posts']) || !empty($context['latest_post'])) { |
|
68 | + $context['info_center'][] = array( |
|
67 | 69 | 'tpl' => 'recent', |
68 | 70 | 'txt' => 'recent_posts', |
69 | 71 | ); |
72 | + } |
|
70 | 73 | } |
71 | 74 | |
72 | 75 | // Load the calendar? |
@@ -87,20 +90,22 @@ discard block |
||
87 | 90 | // This is used to show the "how-do-I-edit" help. |
88 | 91 | $context['calendar_can_edit'] = allowedTo('calendar_edit_any'); |
89 | 92 | |
90 | - if ($context['show_calendar']) |
|
91 | - $context['info_center'][] = array( |
|
93 | + if ($context['show_calendar']) { |
|
94 | + $context['info_center'][] = array( |
|
92 | 95 | 'tpl' => 'calendar', |
93 | 96 | 'txt' => $context['calendar_only_today'] ? 'calendar_today' : 'calendar_upcoming', |
94 | 97 | ); |
98 | + } |
|
95 | 99 | } |
96 | 100 | |
97 | 101 | // And stats. |
98 | 102 | $context['show_stats'] = allowedTo('view_stats') && !empty($modSettings['trackStats']); |
99 | - if ($settings['show_stats_index']) |
|
100 | - $context['info_center'][] = array( |
|
103 | + if ($settings['show_stats_index']) { |
|
104 | + $context['info_center'][] = array( |
|
101 | 105 | 'tpl' => 'stats', |
102 | 106 | 'txt' => 'forum_stats', |
103 | 107 | ); |
108 | + } |
|
104 | 109 | |
105 | 110 | // Now the online stuff |
106 | 111 | require_once($sourcedir . '/Subs-MembersOnline.php'); |
@@ -118,12 +123,14 @@ discard block |
||
118 | 123 | ); |
119 | 124 | |
120 | 125 | // Track most online statistics? (Subs-MembersOnline.php) |
121 | - if (!empty($modSettings['trackStats'])) |
|
122 | - trackStatsUsersOnline($context['num_guests'] + $context['num_spiders'] + $context['num_users_online']); |
|
126 | + if (!empty($modSettings['trackStats'])) { |
|
127 | + trackStatsUsersOnline($context['num_guests'] + $context['num_spiders'] + $context['num_users_online']); |
|
128 | + } |
|
123 | 129 | |
124 | 130 | // Are we showing all membergroups on the board index? |
125 | - if (!empty($settings['show_group_key'])) |
|
126 | - $context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array()); |
|
131 | + if (!empty($settings['show_group_key'])) { |
|
132 | + $context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array()); |
|
133 | + } |
|
127 | 134 | |
128 | 135 | // And back to normality. |
129 | 136 | $context['page_title'] = sprintf($txt['forum_index'], $context['forum_name']); |
@@ -14,8 +14,9 @@ discard block |
||
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 | * Mark a board or multiple boards read. |
@@ -28,14 +29,16 @@ discard block |
||
28 | 29 | global $user_info, $modSettings, $smcFunc; |
29 | 30 | |
30 | 31 | // Force $boards to be an array. |
31 | - if (!is_array($boards)) |
|
32 | - $boards = array($boards); |
|
33 | - else |
|
34 | - $boards = array_unique($boards); |
|
32 | + if (!is_array($boards)) { |
|
33 | + $boards = array($boards); |
|
34 | + } else { |
|
35 | + $boards = array_unique($boards); |
|
36 | + } |
|
35 | 37 | |
36 | 38 | // No boards, nothing to mark as read. |
37 | - if (empty($boards)) |
|
38 | - return; |
|
39 | + if (empty($boards)) { |
|
40 | + return; |
|
41 | + } |
|
39 | 42 | |
40 | 43 | // Allow the user to mark a board as unread. |
41 | 44 | if ($unread) |
@@ -65,8 +68,9 @@ discard block |
||
65 | 68 | else |
66 | 69 | { |
67 | 70 | $markRead = array(); |
68 | - foreach ($boards as $board) |
|
69 | - $markRead[] = array($modSettings['maxMsgID'], $user_info['id'], $board); |
|
71 | + foreach ($boards as $board) { |
|
72 | + $markRead[] = array($modSettings['maxMsgID'], $user_info['id'], $board); |
|
73 | + } |
|
70 | 74 | |
71 | 75 | // Update log_mark_read and log_boards. |
72 | 76 | $smcFunc['db_insert']('replace', |
@@ -99,8 +103,9 @@ discard block |
||
99 | 103 | list ($lowest_topic) = $smcFunc['db_fetch_row']($result); |
100 | 104 | $smcFunc['db_free_result']($result); |
101 | 105 | |
102 | - if (empty($lowest_topic)) |
|
103 | - return; |
|
106 | + if (empty($lowest_topic)) { |
|
107 | + return; |
|
108 | + } |
|
104 | 109 | |
105 | 110 | // @todo SLOW This query seems to eat it sometimes. |
106 | 111 | $result = $smcFunc['db_query']('', ' |
@@ -118,12 +123,13 @@ discard block |
||
118 | 123 | ) |
119 | 124 | ); |
120 | 125 | $topics = array(); |
121 | - while ($row = $smcFunc['db_fetch_assoc']($result)) |
|
122 | - $topics[] = $row['id_topic']; |
|
126 | + while ($row = $smcFunc['db_fetch_assoc']($result)) { |
|
127 | + $topics[] = $row['id_topic']; |
|
128 | + } |
|
123 | 129 | $smcFunc['db_free_result']($result); |
124 | 130 | |
125 | - if (!empty($topics)) |
|
126 | - $smcFunc['db_query']('', ' |
|
131 | + if (!empty($topics)) { |
|
132 | + $smcFunc['db_query']('', ' |
|
127 | 133 | DELETE FROM {db_prefix}log_topics |
128 | 134 | WHERE id_member = {int:current_member} |
129 | 135 | AND id_topic IN ({array_int:topic_list})', |
@@ -132,7 +138,8 @@ discard block |
||
132 | 138 | 'topic_list' => $topics, |
133 | 139 | ) |
134 | 140 | ); |
135 | -} |
|
141 | + } |
|
142 | + } |
|
136 | 143 | |
137 | 144 | /** |
138 | 145 | * Mark one or more boards as read. |
@@ -157,23 +164,26 @@ discard block |
||
157 | 164 | ) |
158 | 165 | ); |
159 | 166 | $boards = array(); |
160 | - while ($row = $smcFunc['db_fetch_assoc']($result)) |
|
161 | - $boards[] = $row['id_board']; |
|
167 | + while ($row = $smcFunc['db_fetch_assoc']($result)) { |
|
168 | + $boards[] = $row['id_board']; |
|
169 | + } |
|
162 | 170 | $smcFunc['db_free_result']($result); |
163 | 171 | |
164 | - if (!empty($boards)) |
|
165 | - markBoardsRead($boards, isset($_REQUEST['unread'])); |
|
172 | + if (!empty($boards)) { |
|
173 | + markBoardsRead($boards, isset($_REQUEST['unread'])); |
|
174 | + } |
|
166 | 175 | |
167 | 176 | $_SESSION['id_msg_last_visit'] = $modSettings['maxMsgID']; |
168 | - if (!empty($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'action=unread') !== false) |
|
169 | - redirectexit('action=unread'); |
|
177 | + if (!empty($_SESSION['old_url']) && strpos($_SESSION['old_url'], 'action=unread') !== false) { |
|
178 | + redirectexit('action=unread'); |
|
179 | + } |
|
170 | 180 | |
171 | - if (isset($_SESSION['topicseen_cache'])) |
|
172 | - $_SESSION['topicseen_cache'] = array(); |
|
181 | + if (isset($_SESSION['topicseen_cache'])) { |
|
182 | + $_SESSION['topicseen_cache'] = array(); |
|
183 | + } |
|
173 | 184 | |
174 | 185 | redirectexit(); |
175 | - } |
|
176 | - elseif (isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'unreadreplies') |
|
186 | + } elseif (isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'unreadreplies') |
|
177 | 187 | { |
178 | 188 | // Make sure all the topics are integers! |
179 | 189 | $topics = array_map('intval', explode('-', $_REQUEST['topics'])); |
@@ -189,13 +199,15 @@ discard block |
||
189 | 199 | ) |
190 | 200 | ); |
191 | 201 | $logged_topics = array(); |
192 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
193 | - $logged_topics[$row['id_topic']] = $row['unwatched']; |
|
202 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
203 | + $logged_topics[$row['id_topic']] = $row['unwatched']; |
|
204 | + } |
|
194 | 205 | $smcFunc['db_free_result']($request); |
195 | 206 | |
196 | 207 | $markRead = array(); |
197 | - foreach ($topics as $id_topic) |
|
198 | - $markRead[] = array($modSettings['maxMsgID'], $user_info['id'], $id_topic, (isset($logged_topics[$topic]) ? $logged_topics[$topic] : 0)); |
|
208 | + foreach ($topics as $id_topic) { |
|
209 | + $markRead[] = array($modSettings['maxMsgID'], $user_info['id'], $id_topic, (isset($logged_topics[$topic]) ? $logged_topics[$topic] : 0)); |
|
210 | + } |
|
199 | 211 | |
200 | 212 | $smcFunc['db_insert']('replace', |
201 | 213 | '{db_prefix}log_topics', |
@@ -204,8 +216,9 @@ discard block |
||
204 | 216 | array('id_member', 'id_topic') |
205 | 217 | ); |
206 | 218 | |
207 | - if (isset($_SESSION['topicseen_cache'])) |
|
208 | - $_SESSION['topicseen_cache'] = array(); |
|
219 | + if (isset($_SESSION['topicseen_cache'])) { |
|
220 | + $_SESSION['topicseen_cache'] = array(); |
|
221 | + } |
|
209 | 222 | |
210 | 223 | redirectexit('action=unreadreplies'); |
211 | 224 | } |
@@ -230,11 +243,13 @@ discard block |
||
230 | 243 | if (!empty($_GET['t'])) |
231 | 244 | { |
232 | 245 | // If they read the whole topic, go back to the beginning. |
233 | - if ($_GET['t'] >= $topicinfo['id_last_msg']) |
|
234 | - $earlyMsg = 0; |
|
246 | + if ($_GET['t'] >= $topicinfo['id_last_msg']) { |
|
247 | + $earlyMsg = 0; |
|
248 | + } |
|
235 | 249 | // If they want to mark the whole thing read, same. |
236 | - elseif ($_GET['t'] <= $topicinfo['id_first_msg']) |
|
237 | - $earlyMsg = 0; |
|
250 | + elseif ($_GET['t'] <= $topicinfo['id_first_msg']) { |
|
251 | + $earlyMsg = 0; |
|
252 | + } |
|
238 | 253 | // Otherwise, get the latest message before the named one. |
239 | 254 | else |
240 | 255 | { |
@@ -255,9 +270,9 @@ discard block |
||
255 | 270 | } |
256 | 271 | } |
257 | 272 | // Marking read from first page? That's the whole topic. |
258 | - elseif ($_REQUEST['start'] == 0) |
|
259 | - $earlyMsg = 0; |
|
260 | - else |
|
273 | + elseif ($_REQUEST['start'] == 0) { |
|
274 | + $earlyMsg = 0; |
|
275 | + } else |
|
261 | 276 | { |
262 | 277 | $result = $smcFunc['db_query']('', ' |
263 | 278 | SELECT id_msg |
@@ -285,8 +300,7 @@ discard block |
||
285 | 300 | ); |
286 | 301 | |
287 | 302 | redirectexit('board=' . $board . '.0'); |
288 | - } |
|
289 | - else |
|
303 | + } else |
|
290 | 304 | { |
291 | 305 | $categories = array(); |
292 | 306 | $boards = array(); |
@@ -294,17 +308,20 @@ discard block |
||
294 | 308 | if (isset($_REQUEST['c'])) |
295 | 309 | { |
296 | 310 | $_REQUEST['c'] = explode(',', $_REQUEST['c']); |
297 | - foreach ($_REQUEST['c'] as $c) |
|
298 | - $categories[] = (int) $c; |
|
311 | + foreach ($_REQUEST['c'] as $c) { |
|
312 | + $categories[] = (int) $c; |
|
313 | + } |
|
299 | 314 | } |
300 | 315 | if (isset($_REQUEST['boards'])) |
301 | 316 | { |
302 | 317 | $_REQUEST['boards'] = explode(',', $_REQUEST['boards']); |
303 | - foreach ($_REQUEST['boards'] as $b) |
|
304 | - $boards[] = (int) $b; |
|
318 | + foreach ($_REQUEST['boards'] as $b) { |
|
319 | + $boards[] = (int) $b; |
|
320 | + } |
|
321 | + } |
|
322 | + if (!empty($board)) { |
|
323 | + $boards[] = (int) $board; |
|
305 | 324 | } |
306 | - if (!empty($board)) |
|
307 | - $boards[] = (int) $board; |
|
308 | 325 | |
309 | 326 | if (isset($_REQUEST['children']) && !empty($boards)) |
310 | 327 | { |
@@ -324,9 +341,10 @@ discard block |
||
324 | 341 | 'board_list' => $boards, |
325 | 342 | ) |
326 | 343 | ); |
327 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
328 | - if (in_array($row['id_parent'], $boards)) |
|
344 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
345 | + if (in_array($row['id_parent'], $boards)) |
|
329 | 346 | $boards[] = $row['id_board']; |
347 | + } |
|
330 | 348 | $smcFunc['db_free_result']($request); |
331 | 349 | } |
332 | 350 | |
@@ -343,8 +361,9 @@ discard block |
||
343 | 361 | $clauseParameters['board_list'] = $boards; |
344 | 362 | } |
345 | 363 | |
346 | - if (empty($clauses)) |
|
347 | - redirectexit(); |
|
364 | + if (empty($clauses)) { |
|
365 | + redirectexit(); |
|
366 | + } |
|
348 | 367 | |
349 | 368 | $request = $smcFunc['db_query']('', ' |
350 | 369 | SELECT b.id_board |
@@ -355,19 +374,22 @@ discard block |
||
355 | 374 | )) |
356 | 375 | ); |
357 | 376 | $boards = array(); |
358 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
359 | - $boards[] = $row['id_board']; |
|
377 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
378 | + $boards[] = $row['id_board']; |
|
379 | + } |
|
360 | 380 | $smcFunc['db_free_result']($request); |
361 | 381 | |
362 | - if (empty($boards)) |
|
363 | - redirectexit(); |
|
382 | + if (empty($boards)) { |
|
383 | + redirectexit(); |
|
384 | + } |
|
364 | 385 | |
365 | 386 | markBoardsRead($boards, isset($_REQUEST['unread'])); |
366 | 387 | |
367 | 388 | foreach ($boards as $b) |
368 | 389 | { |
369 | - if (isset($_SESSION['topicseen_cache'][$b])) |
|
370 | - $_SESSION['topicseen_cache'][$b] = array(); |
|
390 | + if (isset($_SESSION['topicseen_cache'][$b])) { |
|
391 | + $_SESSION['topicseen_cache'][$b] = array(); |
|
392 | + } |
|
371 | 393 | } |
372 | 394 | |
373 | 395 | if (!isset($_REQUEST['unread'])) |
@@ -385,8 +407,9 @@ discard block |
||
385 | 407 | if ($smcFunc['db_num_rows']($result) > 0) |
386 | 408 | { |
387 | 409 | $logBoardInserts = array(); |
388 | - while ($row = $smcFunc['db_fetch_assoc']($result)) |
|
389 | - $logBoardInserts[] = array($modSettings['maxMsgID'], $user_info['id'], $row['id_board']); |
|
410 | + while ($row = $smcFunc['db_fetch_assoc']($result)) { |
|
411 | + $logBoardInserts[] = array($modSettings['maxMsgID'], $user_info['id'], $row['id_board']); |
|
412 | + } |
|
390 | 413 | |
391 | 414 | $smcFunc['db_insert']('replace', |
392 | 415 | '{db_prefix}log_boards', |
@@ -397,17 +420,18 @@ discard block |
||
397 | 420 | } |
398 | 421 | $smcFunc['db_free_result']($result); |
399 | 422 | |
400 | - if (empty($board)) |
|
401 | - redirectexit(); |
|
402 | - else |
|
403 | - redirectexit('board=' . $board . '.0'); |
|
404 | - } |
|
405 | - else |
|
423 | + if (empty($board)) { |
|
424 | + redirectexit(); |
|
425 | + } else { |
|
426 | + redirectexit('board=' . $board . '.0'); |
|
427 | + } |
|
428 | + } else |
|
406 | 429 | { |
407 | - if (empty($board_info['parent'])) |
|
408 | - redirectexit(); |
|
409 | - else |
|
410 | - redirectexit('board=' . $board_info['parent'] . '.0'); |
|
430 | + if (empty($board_info['parent'])) { |
|
431 | + redirectexit(); |
|
432 | + } else { |
|
433 | + redirectexit('board=' . $board_info['parent'] . '.0'); |
|
434 | + } |
|
411 | 435 | } |
412 | 436 | } |
413 | 437 | } |
@@ -432,11 +456,13 @@ discard block |
||
432 | 456 | 'selected_message' => (int) $messageID, |
433 | 457 | ) |
434 | 458 | ); |
435 | - if ($smcFunc['db_num_rows']($result) > 0) |
|
436 | - list ($memberID) = $smcFunc['db_fetch_row']($result); |
|
459 | + if ($smcFunc['db_num_rows']($result) > 0) { |
|
460 | + list ($memberID) = $smcFunc['db_fetch_row']($result); |
|
461 | + } |
|
437 | 462 | // The message doesn't even exist. |
438 | - else |
|
439 | - $memberID = 0; |
|
463 | + else { |
|
464 | + $memberID = 0; |
|
465 | + } |
|
440 | 466 | $smcFunc['db_free_result']($result); |
441 | 467 | |
442 | 468 | return (int) $memberID; |
@@ -457,8 +483,9 @@ discard block |
||
457 | 483 | getBoardTree(); |
458 | 484 | |
459 | 485 | // Make sure given boards and categories exist. |
460 | - if (!isset($boards[$board_id]) || (isset($boardOptions['target_board']) && !isset($boards[$boardOptions['target_board']])) || (isset($boardOptions['target_category']) && !isset($cat_tree[$boardOptions['target_category']]))) |
|
461 | - fatal_lang_error('no_board'); |
|
486 | + if (!isset($boards[$board_id]) || (isset($boardOptions['target_board']) && !isset($boards[$boardOptions['target_board']])) || (isset($boardOptions['target_category']) && !isset($cat_tree[$boardOptions['target_category']]))) { |
|
487 | + fatal_lang_error('no_board'); |
|
488 | + } |
|
462 | 489 | |
463 | 490 | $id = $board_id; |
464 | 491 | call_integration_hook('integrate_pre_modify_board', array($id, &$boardOptions)); |
@@ -486,8 +513,9 @@ discard block |
||
486 | 513 | $child_level = 0; |
487 | 514 | $id_parent = 0; |
488 | 515 | $after = 0; |
489 | - foreach ($cat_tree[$id_cat]['children'] as $id_board => $dummy) |
|
490 | - $after = max($after, $boards[$id_board]['order']); |
|
516 | + foreach ($cat_tree[$id_cat]['children'] as $id_board => $dummy) { |
|
517 | + $after = max($after, $boards[$id_board]['order']); |
|
518 | + } |
|
491 | 519 | } |
492 | 520 | |
493 | 521 | // Make the board a child of a given board. |
@@ -498,17 +526,19 @@ discard block |
||
498 | 526 | $id_parent = $boardOptions['target_board']; |
499 | 527 | |
500 | 528 | // People can be creative, in many ways... |
501 | - if (isChildOf($id_parent, $board_id)) |
|
502 | - fatal_lang_error('mboards_parent_own_child_error', false); |
|
503 | - elseif ($id_parent == $board_id) |
|
504 | - fatal_lang_error('mboards_board_own_child_error', false); |
|
529 | + if (isChildOf($id_parent, $board_id)) { |
|
530 | + fatal_lang_error('mboards_parent_own_child_error', false); |
|
531 | + } elseif ($id_parent == $board_id) { |
|
532 | + fatal_lang_error('mboards_board_own_child_error', false); |
|
533 | + } |
|
505 | 534 | |
506 | 535 | $after = $boards[$boardOptions['target_board']]['order']; |
507 | 536 | |
508 | 537 | // Check if there are already children and (if so) get the max board order. |
509 | - if (!empty($boards[$id_parent]['tree']['children']) && empty($boardOptions['move_first_child'])) |
|
510 | - foreach ($boards[$id_parent]['tree']['children'] as $childBoard_id => $dummy) |
|
538 | + if (!empty($boards[$id_parent]['tree']['children']) && empty($boardOptions['move_first_child'])) { |
|
539 | + foreach ($boards[$id_parent]['tree']['children'] as $childBoard_id => $dummy) |
|
511 | 540 | $after = max($after, $boards[$childBoard_id]['order']); |
541 | + } |
|
512 | 542 | } |
513 | 543 | |
514 | 544 | // Place a board before or after another board, on the same child level. |
@@ -521,8 +551,9 @@ discard block |
||
521 | 551 | } |
522 | 552 | |
523 | 553 | // Oops...? |
524 | - else |
|
525 | - trigger_error('modifyBoard(): The move_to value \'' . $boardOptions['move_to'] . '\' is incorrect', E_USER_ERROR); |
|
554 | + else { |
|
555 | + trigger_error('modifyBoard(): The move_to value \'' . $boardOptions['move_to'] . '\' is incorrect', E_USER_ERROR); |
|
556 | + } |
|
526 | 557 | |
527 | 558 | // Get a list of children of this board. |
528 | 559 | $childList = array(); |
@@ -531,14 +562,16 @@ discard block |
||
531 | 562 | // See if there are changes that affect children. |
532 | 563 | $childUpdates = array(); |
533 | 564 | $levelDiff = $child_level - $boards[$board_id]['level']; |
534 | - if ($levelDiff != 0) |
|
535 | - $childUpdates[] = 'child_level = child_level ' . ($levelDiff > 0 ? '+ ' : '') . '{int:level_diff}'; |
|
536 | - if ($id_cat != $boards[$board_id]['category']) |
|
537 | - $childUpdates[] = 'id_cat = {int:category}'; |
|
565 | + if ($levelDiff != 0) { |
|
566 | + $childUpdates[] = 'child_level = child_level ' . ($levelDiff > 0 ? '+ ' : '') . '{int:level_diff}'; |
|
567 | + } |
|
568 | + if ($id_cat != $boards[$board_id]['category']) { |
|
569 | + $childUpdates[] = 'id_cat = {int:category}'; |
|
570 | + } |
|
538 | 571 | |
539 | 572 | // Fix the children of this board. |
540 | - if (!empty($childList) && !empty($childUpdates)) |
|
541 | - $smcFunc['db_query']('', ' |
|
573 | + if (!empty($childList) && !empty($childUpdates)) { |
|
574 | + $smcFunc['db_query']('', ' |
|
542 | 575 | UPDATE {db_prefix}boards |
543 | 576 | SET ' . implode(', |
544 | 577 | ', $childUpdates) . ' |
@@ -549,6 +582,7 @@ discard block |
||
549 | 582 | 'level_diff' => $levelDiff, |
550 | 583 | ) |
551 | 584 | ); |
585 | + } |
|
552 | 586 | |
553 | 587 | // Make some room for this spot. |
554 | 588 | $smcFunc['db_query']('', ' |
@@ -644,8 +678,8 @@ discard block |
||
644 | 678 | call_integration_hook('integrate_modify_board', array($id, $boardOptions, &$boardUpdates, &$boardUpdateParameters)); |
645 | 679 | |
646 | 680 | // Do the updates (if any). |
647 | - if (!empty($boardUpdates)) |
|
648 | - $smcFunc['db_query']('', ' |
|
681 | + if (!empty($boardUpdates)) { |
|
682 | + $smcFunc['db_query']('', ' |
|
649 | 683 | UPDATE {db_prefix}boards |
650 | 684 | SET |
651 | 685 | ' . implode(', |
@@ -655,6 +689,7 @@ discard block |
||
655 | 689 | 'selected_board' => $board_id, |
656 | 690 | )) |
657 | 691 | ); |
692 | + } |
|
658 | 693 | |
659 | 694 | // Set moderators of this board. |
660 | 695 | if (isset($boardOptions['moderators']) || isset($boardOptions['moderator_string']) || isset($boardOptions['moderator_groups']) || isset($boardOptions['moderator_group_string'])) |
@@ -679,13 +714,15 @@ discard block |
||
679 | 714 | { |
680 | 715 | $moderators[$k] = trim($moderators[$k]); |
681 | 716 | |
682 | - if (strlen($moderators[$k]) == 0) |
|
683 | - unset($moderators[$k]); |
|
717 | + if (strlen($moderators[$k]) == 0) { |
|
718 | + unset($moderators[$k]); |
|
719 | + } |
|
684 | 720 | } |
685 | 721 | |
686 | 722 | // Find all the id_member's for the member_name's in the list. |
687 | - if (empty($boardOptions['moderators'])) |
|
688 | - $boardOptions['moderators'] = array(); |
|
723 | + if (empty($boardOptions['moderators'])) { |
|
724 | + $boardOptions['moderators'] = array(); |
|
725 | + } |
|
689 | 726 | if (!empty($moderators)) |
690 | 727 | { |
691 | 728 | $request = $smcFunc['db_query']('', ' |
@@ -698,8 +735,9 @@ discard block |
||
698 | 735 | 'limit' => count($moderators), |
699 | 736 | ) |
700 | 737 | ); |
701 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
702 | - $boardOptions['moderators'][] = $row['id_member']; |
|
738 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
739 | + $boardOptions['moderators'][] = $row['id_member']; |
|
740 | + } |
|
703 | 741 | $smcFunc['db_free_result']($request); |
704 | 742 | } |
705 | 743 | } |
@@ -708,8 +746,9 @@ discard block |
||
708 | 746 | if (!empty($boardOptions['moderators'])) |
709 | 747 | { |
710 | 748 | $inserts = array(); |
711 | - foreach ($boardOptions['moderators'] as $moderator) |
|
712 | - $inserts[] = array($board_id, $moderator); |
|
749 | + foreach ($boardOptions['moderators'] as $moderator) { |
|
750 | + $inserts[] = array($board_id, $moderator); |
|
751 | + } |
|
713 | 752 | |
714 | 753 | $smcFunc['db_insert']('insert', |
715 | 754 | '{db_prefix}moderators', |
@@ -739,14 +778,16 @@ discard block |
||
739 | 778 | { |
740 | 779 | $moderator_groups[$k] = trim($moderator_groups[$k]); |
741 | 780 | |
742 | - if (strlen($moderator_groups[$k]) == 0) |
|
743 | - unset($moderator_groups[$k]); |
|
781 | + if (strlen($moderator_groups[$k]) == 0) { |
|
782 | + unset($moderator_groups[$k]); |
|
783 | + } |
|
744 | 784 | } |
745 | 785 | |
746 | 786 | /* Find all the id_group's for all the group names in the list |
747 | 787 | But skip any invalid ones (invisible/post groups/Administrator/Moderator) */ |
748 | - if (empty($boardOptions['moderator_groups'])) |
|
749 | - $boardOptions['moderator_groups'] = array(); |
|
788 | + if (empty($boardOptions['moderator_groups'])) { |
|
789 | + $boardOptions['moderator_groups'] = array(); |
|
790 | + } |
|
750 | 791 | if (!empty($moderator_groups)) |
751 | 792 | { |
752 | 793 | $request = $smcFunc['db_query']('', ' |
@@ -777,8 +818,9 @@ discard block |
||
777 | 818 | if (!empty($boardOptions['moderator_groups'])) |
778 | 819 | { |
779 | 820 | $inserts = array(); |
780 | - foreach ($boardOptions['moderator_groups'] as $moderator_group) |
|
781 | - $inserts[] = array($board_id, $moderator_group); |
|
821 | + foreach ($boardOptions['moderator_groups'] as $moderator_group) { |
|
822 | + $inserts[] = array($board_id, $moderator_group); |
|
823 | + } |
|
782 | 824 | |
783 | 825 | $smcFunc['db_insert']('insert', |
784 | 826 | '{db_prefix}moderator_groups', |
@@ -792,14 +834,16 @@ discard block |
||
792 | 834 | updateSettings(array('settings_updated' => time())); |
793 | 835 | } |
794 | 836 | |
795 | - if (isset($boardOptions['move_to'])) |
|
796 | - reorderBoards(); |
|
837 | + if (isset($boardOptions['move_to'])) { |
|
838 | + reorderBoards(); |
|
839 | + } |
|
797 | 840 | |
798 | 841 | clean_cache('data'); |
799 | 842 | |
800 | - if (empty($boardOptions['dont_log'])) |
|
801 | - logAction('edit_board', array('board' => $board_id), 'admin'); |
|
802 | -} |
|
843 | + if (empty($boardOptions['dont_log'])) { |
|
844 | + logAction('edit_board', array('board' => $board_id), 'admin'); |
|
845 | + } |
|
846 | + } |
|
803 | 847 | |
804 | 848 | /** |
805 | 849 | * Create a new board and set its properties and position. |
@@ -815,11 +859,13 @@ discard block |
||
815 | 859 | global $boards, $smcFunc; |
816 | 860 | |
817 | 861 | // Trigger an error if one of the required values is not set. |
818 | - if (!isset($boardOptions['board_name']) || trim($boardOptions['board_name']) == '' || !isset($boardOptions['move_to']) || !isset($boardOptions['target_category'])) |
|
819 | - trigger_error('createBoard(): One or more of the required options is not set', E_USER_ERROR); |
|
862 | + if (!isset($boardOptions['board_name']) || trim($boardOptions['board_name']) == '' || !isset($boardOptions['move_to']) || !isset($boardOptions['target_category'])) { |
|
863 | + trigger_error('createBoard(): One or more of the required options is not set', E_USER_ERROR); |
|
864 | + } |
|
820 | 865 | |
821 | - if (in_array($boardOptions['move_to'], array('child', 'before', 'after')) && !isset($boardOptions['target_board'])) |
|
822 | - trigger_error('createBoard(): Target board is not set', E_USER_ERROR); |
|
866 | + if (in_array($boardOptions['move_to'], array('child', 'before', 'after')) && !isset($boardOptions['target_board'])) { |
|
867 | + trigger_error('createBoard(): Target board is not set', E_USER_ERROR); |
|
868 | + } |
|
823 | 869 | |
824 | 870 | // Set every optional value to its default value. |
825 | 871 | $boardOptions += array( |
@@ -853,8 +899,9 @@ discard block |
||
853 | 899 | 1 |
854 | 900 | ); |
855 | 901 | |
856 | - if (empty($board_id)) |
|
857 | - return 0; |
|
902 | + if (empty($board_id)) { |
|
903 | + return 0; |
|
904 | + } |
|
858 | 905 | |
859 | 906 | // Change the board according to the given specifications. |
860 | 907 | modifyBoard($board_id, $boardOptions); |
@@ -917,8 +964,9 @@ discard block |
||
917 | 964 | global $sourcedir, $boards, $smcFunc; |
918 | 965 | |
919 | 966 | // No boards to delete? Return! |
920 | - if (empty($boards_to_remove)) |
|
921 | - return; |
|
967 | + if (empty($boards_to_remove)) { |
|
968 | + return; |
|
969 | + } |
|
922 | 970 | |
923 | 971 | getBoardTree(); |
924 | 972 | |
@@ -929,12 +977,14 @@ discard block |
||
929 | 977 | { |
930 | 978 | // Get a list of the child boards that will also be removed. |
931 | 979 | $child_boards_to_remove = array(); |
932 | - foreach ($boards_to_remove as $board_to_remove) |
|
933 | - recursiveBoards($child_boards_to_remove, $boards[$board_to_remove]['tree']); |
|
980 | + foreach ($boards_to_remove as $board_to_remove) { |
|
981 | + recursiveBoards($child_boards_to_remove, $boards[$board_to_remove]['tree']); |
|
982 | + } |
|
934 | 983 | |
935 | 984 | // Merge the children with their parents. |
936 | - if (!empty($child_boards_to_remove)) |
|
937 | - $boards_to_remove = array_unique(array_merge($boards_to_remove, $child_boards_to_remove)); |
|
985 | + if (!empty($child_boards_to_remove)) { |
|
986 | + $boards_to_remove = array_unique(array_merge($boards_to_remove, $child_boards_to_remove)); |
|
987 | + } |
|
938 | 988 | } |
939 | 989 | // Move the children to a safe home. |
940 | 990 | else |
@@ -942,10 +992,11 @@ discard block |
||
942 | 992 | foreach ($boards_to_remove as $id_board) |
943 | 993 | { |
944 | 994 | // @todo Separate category? |
945 | - if ($moveChildrenTo === 0) |
|
946 | - fixChildren($id_board, 0, 0); |
|
947 | - else |
|
948 | - fixChildren($id_board, $boards[$moveChildrenTo]['level'] + 1, $moveChildrenTo); |
|
995 | + if ($moveChildrenTo === 0) { |
|
996 | + fixChildren($id_board, 0, 0); |
|
997 | + } else { |
|
998 | + fixChildren($id_board, $boards[$moveChildrenTo]['level'] + 1, $moveChildrenTo); |
|
999 | + } |
|
949 | 1000 | } |
950 | 1001 | } |
951 | 1002 | |
@@ -959,8 +1010,9 @@ discard block |
||
959 | 1010 | ) |
960 | 1011 | ); |
961 | 1012 | $topics = array(); |
962 | - while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
963 | - $topics[] = $row['id_topic']; |
|
1013 | + while ($row = $smcFunc['db_fetch_assoc']($request)) { |
|
1014 | + $topics[] = $row['id_topic']; |
|
1015 | + } |
|
964 | 1016 | $smcFunc['db_free_result']($request); |
965 | 1017 | |
966 | 1018 | require_once($sourcedir . '/RemoveTopic.php'); |
@@ -1048,8 +1100,9 @@ discard block |
||
1048 | 1100 | clean_cache('data'); |
1049 | 1101 | |
1050 | 1102 | // Let's do some serious logging. |
1051 | - foreach ($boards_to_remove as $id_board) |
|
1052 | - logAction('delete_board', array('boardname' => $boards[$id_board]['name']), 'admin'); |
|
1103 | + foreach ($boards_to_remove as $id_board) { |
|
1104 | + logAction('delete_board', array('boardname' => $boards[$id_board]['name']), 'admin'); |
|
1105 | + } |
|
1053 | 1106 | |
1054 | 1107 | reorderBoards(); |
1055 | 1108 | } |
@@ -1068,8 +1121,8 @@ discard block |
||
1068 | 1121 | $board_order = 0; |
1069 | 1122 | foreach ($cat_tree as $catID => $dummy) |
1070 | 1123 | { |
1071 | - foreach ($boardList[$catID] as $boardID) |
|
1072 | - if ($boards[$boardID]['order'] != ++$board_order) |
|
1124 | + foreach ($boardList[$catID] as $boardID) { |
|
1125 | + if ($boards[$boardID]['order'] != ++$board_order) |
|
1073 | 1126 | $smcFunc['db_query']('', ' |
1074 | 1127 | UPDATE {db_prefix}boards |
1075 | 1128 | SET board_order = {int:new_order} |
@@ -1079,6 +1132,7 @@ discard block |
||
1079 | 1132 | 'selected_board' => $boardID, |
1080 | 1133 | ) |
1081 | 1134 | ); |
1135 | + } |
|
1082 | 1136 | } |
1083 | 1137 | |
1084 | 1138 | // Empty the board order cache |
@@ -1107,8 +1161,9 @@ discard block |
||
1107 | 1161 | ) |
1108 | 1162 | ); |
1109 | 1163 | $children = array(); |
1110 | - while ($row = $smcFunc['db_fetch_assoc']($result)) |
|
1111 | - $children[] = $row['id_board']; |
|
1164 | + while ($row = $smcFunc['db_fetch_assoc']($result)) { |
|
1165 | + $children[] = $row['id_board']; |
|
1166 | + } |
|
1112 | 1167 | $smcFunc['db_free_result']($result); |
1113 | 1168 | |
1114 | 1169 | // ...and set it to a new parent and child_level. |
@@ -1124,9 +1179,10 @@ discard block |
||
1124 | 1179 | ); |
1125 | 1180 | |
1126 | 1181 | // Recursively fix the children of the children. |
1127 | - foreach ($children as $child) |
|
1128 | - fixChildren($child, $newLevel + 1, $child); |
|
1129 | -} |
|
1182 | + foreach ($children as $child) { |
|
1183 | + fixChildren($child, $newLevel + 1, $child); |
|
1184 | + } |
|
1185 | + } |
|
1130 | 1186 | |
1131 | 1187 | /** |
1132 | 1188 | * Tries to load up the entire board order and category very very quickly |
@@ -1143,8 +1199,9 @@ discard block |
||
1143 | 1199 | 'boards' => array(), |
1144 | 1200 | ); |
1145 | 1201 | |
1146 | - if (!empty($tree_order['boards'])) |
|
1147 | - return $tree_order; |
|
1202 | + if (!empty($tree_order['boards'])) { |
|
1203 | + return $tree_order; |
|
1204 | + } |
|
1148 | 1205 | |
1149 | 1206 | if (($cached = cache_get_data('board_order', 86400)) !== null) |
1150 | 1207 | { |
@@ -1160,8 +1217,9 @@ discard block |
||
1160 | 1217 | ); |
1161 | 1218 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
1162 | 1219 | { |
1163 | - if (!in_array($row['id_cat'], $tree_order['cats'])) |
|
1164 | - $tree_order['cats'][] = $row['id_cat']; |
|
1220 | + if (!in_array($row['id_cat'], $tree_order['cats'])) { |
|
1221 | + $tree_order['cats'][] = $row['id_cat']; |
|
1222 | + } |
|
1165 | 1223 | $tree_order['boards'][] = $row['id_board']; |
1166 | 1224 | } |
1167 | 1225 | $smcFunc['db_free_result']($request); |
@@ -1181,16 +1239,19 @@ discard block |
||
1181 | 1239 | $tree = getTreeOrder(); |
1182 | 1240 | |
1183 | 1241 | $ordered = array(); |
1184 | - foreach ($tree['boards'] as $board) |
|
1185 | - if (!empty($boards[$board])) |
|
1242 | + foreach ($tree['boards'] as $board) { |
|
1243 | + if (!empty($boards[$board])) |
|
1186 | 1244 | { |
1187 | 1245 | $ordered[$board] = $boards[$board]; |
1246 | + } |
|
1188 | 1247 | |
1189 | - if (is_array($ordered[$board]) && !empty($ordered[$board]['boards'])) |
|
1190 | - sortBoards($ordered[$board]['boards']); |
|
1248 | + if (is_array($ordered[$board]) && !empty($ordered[$board]['boards'])) { |
|
1249 | + sortBoards($ordered[$board]['boards']); |
|
1250 | + } |
|
1191 | 1251 | |
1192 | - if (is_array($ordered[$board]) && !empty($ordered[$board]['children'])) |
|
1193 | - sortBoards($ordered[$board]['children']); |
|
1252 | + if (is_array($ordered[$board]) && !empty($ordered[$board]['children'])) { |
|
1253 | + sortBoards($ordered[$board]['children']); |
|
1254 | + } |
|
1194 | 1255 | } |
1195 | 1256 | |
1196 | 1257 | $boards = $ordered; |
@@ -1206,12 +1267,14 @@ discard block |
||
1206 | 1267 | $tree = getTreeOrder(); |
1207 | 1268 | |
1208 | 1269 | $ordered = array(); |
1209 | - foreach ($tree['cats'] as $cat) |
|
1210 | - if (!empty($categories[$cat])) |
|
1270 | + foreach ($tree['cats'] as $cat) { |
|
1271 | + if (!empty($categories[$cat])) |
|
1211 | 1272 | { |
1212 | 1273 | $ordered[$cat] = $categories[$cat]; |
1213 | - if (!empty($ordered[$cat]['boards'])) |
|
1214 | - sortBoards($ordered[$cat]['boards']); |
|
1274 | + } |
|
1275 | + if (!empty($ordered[$cat]['boards'])) { |
|
1276 | + sortBoards($ordered[$cat]['boards']); |
|
1277 | + } |
|
1215 | 1278 | } |
1216 | 1279 | |
1217 | 1280 | $categories = $ordered; |
@@ -1227,8 +1290,9 @@ discard block |
||
1227 | 1290 | { |
1228 | 1291 | global $smcFunc, $scripturl, $txt; |
1229 | 1292 | |
1230 | - if (empty($boards)) |
|
1231 | - return array(); |
|
1293 | + if (empty($boards)) { |
|
1294 | + return array(); |
|
1295 | + } |
|
1232 | 1296 | |
1233 | 1297 | $request = $smcFunc['db_query']('', ' |
1234 | 1298 | SELECT mem.id_member, mem.real_name, mo.id_board |
@@ -1242,8 +1306,9 @@ discard block |
||
1242 | 1306 | $moderators = array(); |
1243 | 1307 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
1244 | 1308 | { |
1245 | - if (empty($moderators[$row['id_board']])) |
|
1246 | - $moderators[$row['id_board']] = array(); |
|
1309 | + if (empty($moderators[$row['id_board']])) { |
|
1310 | + $moderators[$row['id_board']] = array(); |
|
1311 | + } |
|
1247 | 1312 | |
1248 | 1313 | $moderators[$row['id_board']][] = array( |
1249 | 1314 | 'id' => $row['id_member'], |
@@ -1267,8 +1332,9 @@ discard block |
||
1267 | 1332 | { |
1268 | 1333 | global $smcFunc, $scripturl, $txt; |
1269 | 1334 | |
1270 | - if (empty($boards)) |
|
1271 | - return array(); |
|
1335 | + if (empty($boards)) { |
|
1336 | + return array(); |
|
1337 | + } |
|
1272 | 1338 | |
1273 | 1339 | $request = $smcFunc['db_query']('', ' |
1274 | 1340 | SELECT mg.id_group, mg.group_name, bg.id_board |
@@ -1282,8 +1348,9 @@ discard block |
||
1282 | 1348 | $groups = array(); |
1283 | 1349 | while ($row = $smcFunc['db_fetch_assoc']($request)) |
1284 | 1350 | { |
1285 | - if (empty($groups[$row['id_board']])) |
|
1286 | - $groups[$row['id_board']] = array(); |
|
1351 | + if (empty($groups[$row['id_board']])) { |
|
1352 | + $groups[$row['id_board']] = array(); |
|
1353 | + } |
|
1287 | 1354 | |
1288 | 1355 | $groups[$row['id_board']][] = array( |
1289 | 1356 | 'id' => $row['id_group'], |
@@ -1358,8 +1425,9 @@ discard block |
||
1358 | 1425 | |
1359 | 1426 | if (!empty($row['id_board'])) |
1360 | 1427 | { |
1361 | - if ($row['child_level'] != $curLevel) |
|
1362 | - $prevBoard = 0; |
|
1428 | + if ($row['child_level'] != $curLevel) { |
|
1429 | + $prevBoard = 0; |
|
1430 | + } |
|
1363 | 1431 | |
1364 | 1432 | $boards[$row['id_board']] = array( |
1365 | 1433 | 'id' => $row['id_board'], |
@@ -1391,16 +1459,16 @@ discard block |
||
1391 | 1459 | 'children' => array() |
1392 | 1460 | ); |
1393 | 1461 | $boards[$row['id_board']]['tree'] = &$cat_tree[$row['id_cat']]['children'][$row['id_board']]; |
1394 | - } |
|
1395 | - else |
|
1462 | + } else |
|
1396 | 1463 | { |
1397 | 1464 | // Parent doesn't exist! |
1398 | - if (!isset($boards[$row['id_parent']]['tree'])) |
|
1399 | - fatal_lang_error('no_valid_parent', false, array($row['board_name'])); |
|
1465 | + if (!isset($boards[$row['id_parent']]['tree'])) { |
|
1466 | + fatal_lang_error('no_valid_parent', false, array($row['board_name'])); |
|
1467 | + } |
|
1400 | 1468 | |
1401 | 1469 | // Wrong childlevel...we can silently fix this... |
1402 | - if ($boards[$row['id_parent']]['tree']['node']['level'] != $row['child_level'] - 1) |
|
1403 | - $smcFunc['db_query']('', ' |
|
1470 | + if ($boards[$row['id_parent']]['tree']['node']['level'] != $row['child_level'] - 1) { |
|
1471 | + $smcFunc['db_query']('', ' |
|
1404 | 1472 | UPDATE {db_prefix}boards |
1405 | 1473 | SET child_level = {int:new_child_level} |
1406 | 1474 | WHERE id_board = {int:selected_board}', |
@@ -1409,6 +1477,7 @@ discard block |
||
1409 | 1477 | 'selected_board' => $row['id_board'], |
1410 | 1478 | ) |
1411 | 1479 | ); |
1480 | + } |
|
1412 | 1481 | |
1413 | 1482 | $boards[$row['id_parent']]['tree']['children'][$row['id_board']] = array( |
1414 | 1483 | 'node' => &$boards[$row['id_board']], |
@@ -1442,8 +1511,9 @@ discard block |
||
1442 | 1511 | */ |
1443 | 1512 | function recursiveBoards(&$_boardList, &$_tree) |
1444 | 1513 | { |
1445 | - if (empty($_tree['children'])) |
|
1446 | - return; |
|
1514 | + if (empty($_tree['children'])) { |
|
1515 | + return; |
|
1516 | + } |
|
1447 | 1517 | |
1448 | 1518 | foreach ($_tree['children'] as $id => $node) |
1449 | 1519 | { |
@@ -1462,11 +1532,13 @@ discard block |
||
1462 | 1532 | { |
1463 | 1533 | global $boards; |
1464 | 1534 | |
1465 | - if (empty($boards[$child]['parent'])) |
|
1466 | - return false; |
|
1535 | + if (empty($boards[$child]['parent'])) { |
|
1536 | + return false; |
|
1537 | + } |
|
1467 | 1538 | |
1468 | - if ($boards[$child]['parent'] == $parent) |
|
1469 | - return true; |
|
1539 | + if ($boards[$child]['parent'] == $parent) { |
|
1540 | + return true; |
|
1541 | + } |
|
1470 | 1542 | |
1471 | 1543 | return isChildOf($boards[$child]['parent'], $parent); |
1472 | 1544 | } |
@@ -14,8 +14,9 @@ discard block |
||
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 | * Prepares the information from the moderation log for viewing. |
@@ -32,14 +33,16 @@ discard block |
||
32 | 33 | |
33 | 34 | // Are we looking at the moderation log or the administration log. |
34 | 35 | $context['log_type'] = isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'adminlog' ? 3 : 1; |
35 | - if ($context['log_type'] == 3) |
|
36 | - isAllowedTo('admin_forum'); |
|
36 | + if ($context['log_type'] == 3) { |
|
37 | + isAllowedTo('admin_forum'); |
|
38 | + } |
|
37 | 39 | |
38 | 40 | // These change dependant on whether we are viewing the moderation or admin log. |
39 | - if ($context['log_type'] == 3 || $_REQUEST['action'] == 'admin') |
|
40 | - $context['url_start'] = '?action=admin;area=logs;sa=' . ($context['log_type'] == 3 ? 'adminlog' : 'modlog') . ';type=' . $context['log_type']; |
|
41 | - else |
|
42 | - $context['url_start'] = '?action=moderate;area=modlog;type=' . $context['log_type']; |
|
41 | + if ($context['log_type'] == 3 || $_REQUEST['action'] == 'admin') { |
|
42 | + $context['url_start'] = '?action=admin;area=logs;sa=' . ($context['log_type'] == 3 ? 'adminlog' : 'modlog') . ';type=' . $context['log_type']; |
|
43 | + } else { |
|
44 | + $context['url_start'] = '?action=moderate;area=modlog;type=' . $context['log_type']; |
|
45 | + } |
|
43 | 46 | |
44 | 47 | $context['can_delete'] = allowedTo('admin_forum'); |
45 | 48 | |
@@ -67,8 +70,7 @@ discard block |
||
67 | 70 | $log_type = isset($_REQUEST['sa']) && $_REQUEST['sa'] == 'adminlog' ? 'admin' : 'moderate'; |
68 | 71 | logAction('clearlog_' . $log_type, array(), $log_type); |
69 | 72 | |
70 | - } |
|
71 | - elseif (!empty($_POST['remove']) && isset($_POST['delete']) && $context['can_delete']) |
|
73 | + } elseif (!empty($_POST['remove']) && isset($_POST['delete']) && $context['can_delete']) |
|
72 | 74 | { |
73 | 75 | checkSession(); |
74 | 76 | validateToken('mod-ml'); |
@@ -114,15 +116,17 @@ discard block |
||
114 | 116 | 'ip' => array('sql' => 'lm.ip', 'label' => $txt['modlog_ip']) |
115 | 117 | ); |
116 | 118 | |
117 | - if (!isset($search_params['string']) || (!empty($_REQUEST['search']) && $search_params['string'] != $_REQUEST['search'])) |
|
118 | - $search_params_string = empty($_REQUEST['search']) ? '' : $_REQUEST['search']; |
|
119 | - else |
|
120 | - $search_params_string = $search_params['string']; |
|
119 | + if (!isset($search_params['string']) || (!empty($_REQUEST['search']) && $search_params['string'] != $_REQUEST['search'])) { |
|
120 | + $search_params_string = empty($_REQUEST['search']) ? '' : $_REQUEST['search']; |
|
121 | + } else { |
|
122 | + $search_params_string = $search_params['string']; |
|
123 | + } |
|
121 | 124 | |
122 | - if (isset($_REQUEST['search_type']) || empty($search_params['type']) || !isset($searchTypes[$search_params['type']])) |
|
123 | - $search_params_type = isset($_REQUEST['search_type']) && isset($searchTypes[$_REQUEST['search_type']]) ? $_REQUEST['search_type'] : (isset($searchTypes[$context['order']]) ? $context['order'] : 'member'); |
|
124 | - else |
|
125 | - $search_params_type = $search_params['type']; |
|
125 | + if (isset($_REQUEST['search_type']) || empty($search_params['type']) || !isset($searchTypes[$search_params['type']])) { |
|
126 | + $search_params_type = isset($_REQUEST['search_type']) && isset($searchTypes[$_REQUEST['search_type']]) ? $_REQUEST['search_type'] : (isset($searchTypes[$context['order']]) ? $context['order'] : 'member'); |
|
127 | + } else { |
|
128 | + $search_params_type = $search_params['type']; |
|
129 | + } |
|
126 | 130 | |
127 | 131 | $search_params_column = $searchTypes[$search_params_type]['sql']; |
128 | 132 | $search_params = array( |
@@ -297,13 +301,14 @@ discard block |
||
297 | 301 | $context['sub_template'] = 'show_list'; |
298 | 302 | $context['default_list'] = 'moderation_log_list'; |
299 | 303 | |
300 | - if (isset($context['moderation_menu_name'])) |
|
301 | - $context[$context['moderation_menu_name']]['tab_data'] = array( |
|
304 | + if (isset($context['moderation_menu_name'])) { |
|
305 | + $context[$context['moderation_menu_name']]['tab_data'] = array( |
|
302 | 306 | 'title' => $txt['modlog_' . ($context['log_type'] == 3 ? 'admin' : 'moderation') . '_log'], |
303 | 307 | 'help' => $context['log_type'] == 3 ? 'adminlog' : 'modlog', |
304 | 308 | 'description' => $txt['modlog_' . ($context['log_type'] == 3 ? 'admin' : 'moderation') . '_log_desc'] |
305 | 309 | ); |
306 | -} |
|
310 | + } |
|
311 | + } |
|
307 | 312 | |
308 | 313 | /** |
309 | 314 | * Get the number of mod log entries. |
@@ -407,30 +412,35 @@ discard block |
||
407 | 412 | // Add on some of the column stuff info |
408 | 413 | if (!empty($row['id_board'])) |
409 | 414 | { |
410 | - if ($row['action'] == 'move') |
|
411 | - $row['extra']['board_to'] = $row['id_board']; |
|
412 | - else |
|
413 | - $row['extra']['board'] = $row['id_board']; |
|
415 | + if ($row['action'] == 'move') { |
|
416 | + $row['extra']['board_to'] = $row['id_board']; |
|
417 | + } else { |
|
418 | + $row['extra']['board'] = $row['id_board']; |
|
419 | + } |
|
414 | 420 | } |
415 | 421 | |
416 | - if (!empty($row['id_topic'])) |
|
417 | - $row['extra']['topic'] = $row['id_topic']; |
|
418 | - if (!empty($row['id_msg'])) |
|
419 | - $row['extra']['message'] = $row['id_msg']; |
|
422 | + if (!empty($row['id_topic'])) { |
|
423 | + $row['extra']['topic'] = $row['id_topic']; |
|
424 | + } |
|
425 | + if (!empty($row['id_msg'])) { |
|
426 | + $row['extra']['message'] = $row['id_msg']; |
|
427 | + } |
|
420 | 428 | |
421 | 429 | // Is this associated with a topic? |
422 | - if (isset($row['extra']['topic'])) |
|
423 | - $topics[(int) $row['extra']['topic']][] = $row['id_action']; |
|
424 | - if (isset($row['extra']['new_topic'])) |
|
425 | - $topics[(int) $row['extra']['new_topic']][] = $row['id_action']; |
|
430 | + if (isset($row['extra']['topic'])) { |
|
431 | + $topics[(int) $row['extra']['topic']][] = $row['id_action']; |
|
432 | + } |
|
433 | + if (isset($row['extra']['new_topic'])) { |
|
434 | + $topics[(int) $row['extra']['new_topic']][] = $row['id_action']; |
|
435 | + } |
|
426 | 436 | |
427 | 437 | // How about a member? |
428 | 438 | if (isset($row['extra']['member'])) |
429 | 439 | { |
430 | 440 | // Guests don't have names! |
431 | - if (empty($row['extra']['member'])) |
|
432 | - $row['extra']['member'] = $txt['modlog_parameter_guest']; |
|
433 | - else |
|
441 | + if (empty($row['extra']['member'])) { |
|
442 | + $row['extra']['member'] = $txt['modlog_parameter_guest']; |
|
443 | + } else |
|
434 | 444 | { |
435 | 445 | // Try to find it... |
436 | 446 | $members[(int) $row['extra']['member']][] = $row['id_action']; |
@@ -438,35 +448,42 @@ discard block |
||
438 | 448 | } |
439 | 449 | |
440 | 450 | // Associated with a board? |
441 | - if (isset($row['extra']['board_to'])) |
|
442 | - $boards[(int) $row['extra']['board_to']][] = $row['id_action']; |
|
443 | - if (isset($row['extra']['board_from'])) |
|
444 | - $boards[(int) $row['extra']['board_from']][] = $row['id_action']; |
|
445 | - if (isset($row['extra']['board'])) |
|
446 | - $boards[(int) $row['extra']['board']][] = $row['id_action']; |
|
451 | + if (isset($row['extra']['board_to'])) { |
|
452 | + $boards[(int) $row['extra']['board_to']][] = $row['id_action']; |
|
453 | + } |
|
454 | + if (isset($row['extra']['board_from'])) { |
|
455 | + $boards[(int) $row['extra']['board_from']][] = $row['id_action']; |
|
456 | + } |
|
457 | + if (isset($row['extra']['board'])) { |
|
458 | + $boards[(int) $row['extra']['board']][] = $row['id_action']; |
|
459 | + } |
|
447 | 460 | |
448 | 461 | // A message? |
449 | - if (isset($row['extra']['message'])) |
|
450 | - $messages[(int) $row['extra']['message']][] = $row['id_action']; |
|
462 | + if (isset($row['extra']['message'])) { |
|
463 | + $messages[(int) $row['extra']['message']][] = $row['id_action']; |
|
464 | + } |
|
451 | 465 | |
452 | 466 | // IP Info? |
453 | - if (isset($row['extra']['ip_range'])) |
|
454 | - if ($seeIP) |
|
467 | + if (isset($row['extra']['ip_range'])) { |
|
468 | + if ($seeIP) |
|
455 | 469 | $row['extra']['ip_range'] = '<a href="' . $scripturl . '?action=trackip;searchip=' . $row['extra']['ip_range'] . '">' . $row['extra']['ip_range'] . '</a>'; |
456 | - else |
|
457 | - $row['extra']['ip_range'] = $txt['logged']; |
|
470 | + } else { |
|
471 | + $row['extra']['ip_range'] = $txt['logged']; |
|
472 | + } |
|
458 | 473 | |
459 | 474 | // Email? |
460 | - if (isset($row['extra']['email'])) |
|
461 | - $row['extra']['email'] = '<a href="mailto:' . $row['extra']['email'] . '">' . $row['extra']['email'] . '</a>'; |
|
475 | + if (isset($row['extra']['email'])) { |
|
476 | + $row['extra']['email'] = '<a href="mailto:' . $row['extra']['email'] . '">' . $row['extra']['email'] . '</a>'; |
|
477 | + } |
|
462 | 478 | |
463 | 479 | // Bans are complex. |
464 | 480 | if ($row['action'] == 'ban' || $row['action'] == 'banremove') |
465 | 481 | { |
466 | 482 | $row['action_text'] = $txt['modlog_ac_ban' . ($row['action'] == 'banremove' ? '_remove' : '')]; |
467 | - foreach (array('member', 'email', 'ip_range', 'hostname') as $type) |
|
468 | - if (isset($row['extra'][$type])) |
|
483 | + foreach (array('member', 'email', 'ip_range', 'hostname') as $type) { |
|
484 | + if (isset($row['extra'][$type])) |
|
469 | 485 | $row['action_text'] .= $txt['modlog_ac_ban_trigger_' . $type]; |
486 | + } |
|
470 | 487 | } |
471 | 488 | |
472 | 489 | // The array to go to the template. Note here that action is set to a "default" value of the action doesn't match anything in the descriptions. Allows easy adding of logging events with basic details. |
@@ -502,12 +519,13 @@ discard block |
||
502 | 519 | foreach ($boards[$row['id_board']] as $action) |
503 | 520 | { |
504 | 521 | // Make the board number into a link - dealing with moving too. |
505 | - if (isset($entries[$action]['extra']['board_to']) && $entries[$action]['extra']['board_to'] == $row['id_board']) |
|
506 | - $entries[$action]['extra']['board_to'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
507 | - elseif (isset($entries[$action]['extra']['board_from']) && $entries[$action]['extra']['board_from'] == $row['id_board']) |
|
508 | - $entries[$action]['extra']['board_from'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
509 | - elseif (isset($entries[$action]['extra']['board']) && $entries[$action]['extra']['board'] == $row['id_board']) |
|
510 | - $entries[$action]['extra']['board'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
522 | + if (isset($entries[$action]['extra']['board_to']) && $entries[$action]['extra']['board_to'] == $row['id_board']) { |
|
523 | + $entries[$action]['extra']['board_to'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
524 | + } elseif (isset($entries[$action]['extra']['board_from']) && $entries[$action]['extra']['board_from'] == $row['id_board']) { |
|
525 | + $entries[$action]['extra']['board_from'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
526 | + } elseif (isset($entries[$action]['extra']['board']) && $entries[$action]['extra']['board'] == $row['id_board']) { |
|
527 | + $entries[$action]['extra']['board'] = '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['name'] . '</a>'; |
|
528 | + } |
|
511 | 529 | } |
512 | 530 | } |
513 | 531 | $smcFunc['db_free_result']($request); |
@@ -541,10 +559,11 @@ discard block |
||
541 | 559 | ); |
542 | 560 | |
543 | 561 | // Make the topic number into a link - dealing with splitting too. |
544 | - if (isset($this_action['extra']['topic']) && $this_action['extra']['topic'] == $row['id_topic']) |
|
545 | - $this_action['extra']['topic'] = '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.' . (isset($this_action['extra']['message']) ? 'msg' . $this_action['extra']['message'] . '#msg' . $this_action['extra']['message'] : '0') . '">' . $row['subject'] . '</a>'; |
|
546 | - elseif (isset($this_action['extra']['new_topic']) && $this_action['extra']['new_topic'] == $row['id_topic']) |
|
547 | - $this_action['extra']['new_topic'] = '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.' . (isset($this_action['extra']['message']) ? 'msg' . $this_action['extra']['message'] . '#msg' . $this_action['extra']['message'] : '0') . '">' . $row['subject'] . '</a>'; |
|
562 | + if (isset($this_action['extra']['topic']) && $this_action['extra']['topic'] == $row['id_topic']) { |
|
563 | + $this_action['extra']['topic'] = '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.' . (isset($this_action['extra']['message']) ? 'msg' . $this_action['extra']['message'] . '#msg' . $this_action['extra']['message'] : '0') . '">' . $row['subject'] . '</a>'; |
|
564 | + } elseif (isset($this_action['extra']['new_topic']) && $this_action['extra']['new_topic'] == $row['id_topic']) { |
|
565 | + $this_action['extra']['new_topic'] = '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.' . (isset($this_action['extra']['message']) ? 'msg' . $this_action['extra']['message'] . '#msg' . $this_action['extra']['message'] : '0') . '">' . $row['subject'] . '</a>'; |
|
566 | + } |
|
548 | 567 | } |
549 | 568 | } |
550 | 569 | $smcFunc['db_free_result']($request); |
@@ -577,8 +596,9 @@ discard block |
||
577 | 596 | ); |
578 | 597 | |
579 | 598 | // Make the message number into a link. |
580 | - if (isset($this_action['extra']['message']) && $this_action['extra']['message'] == $row['id_msg']) |
|
581 | - $this_action['extra']['message'] = '<a href="' . $scripturl . '?msg=' . $row['id_msg'] . '">' . $row['subject'] . '</a>'; |
|
599 | + if (isset($this_action['extra']['message']) && $this_action['extra']['message'] == $row['id_msg']) { |
|
600 | + $this_action['extra']['message'] = '<a href="' . $scripturl . '?msg=' . $row['id_msg'] . '">' . $row['subject'] . '</a>'; |
|
601 | + } |
|
582 | 602 | } |
583 | 603 | } |
584 | 604 | $smcFunc['db_free_result']($request); |
@@ -618,25 +638,29 @@ discard block |
||
618 | 638 | foreach ($entries as $k => $entry) |
619 | 639 | { |
620 | 640 | // Make any message info links so its easier to go find that message. |
621 | - if (isset($entry['extra']['message']) && (empty($entry['message']) || empty($entry['message']['id']))) |
|
622 | - $entries[$k]['extra']['message'] = '<a href="' . $scripturl . '?msg=' . $entry['extra']['message'] . '">' . $entry['extra']['message'] . '</a>'; |
|
641 | + if (isset($entry['extra']['message']) && (empty($entry['message']) || empty($entry['message']['id']))) { |
|
642 | + $entries[$k]['extra']['message'] = '<a href="' . $scripturl . '?msg=' . $entry['extra']['message'] . '">' . $entry['extra']['message'] . '</a>'; |
|
643 | + } |
|
623 | 644 | |
624 | 645 | // Mark up any deleted members, topics and boards. |
625 | - foreach (array('board', 'board_from', 'board_to', 'member', 'topic', 'new_topic') as $type) |
|
626 | - if (!empty($entry['extra'][$type]) && is_numeric($entry['extra'][$type])) |
|
646 | + foreach (array('board', 'board_from', 'board_to', 'member', 'topic', 'new_topic') as $type) { |
|
647 | + if (!empty($entry['extra'][$type]) && is_numeric($entry['extra'][$type])) |
|
627 | 648 | $entries[$k]['extra'][$type] = sprintf($txt['modlog_id'], $entry['extra'][$type]); |
649 | + } |
|
628 | 650 | |
629 | 651 | if (isset($entry['extra']['report'])) |
630 | 652 | { |
631 | 653 | // Member profile reports go in a different area |
632 | - if (stristr($entry['action'], 'user_report')) |
|
633 | - $entries[$k]['extra']['report'] = '<a href="' . $scripturl . '?action=moderate;area=reportedmembers;sa=details;rid=' . $entry['extra']['report'] . '">' . $txt['modlog_report'] . '</a>'; |
|
634 | - else |
|
635 | - $entries[$k]['extra']['report'] = '<a href="' . $scripturl . '?action=moderate;area=reportedposts;sa=details;rid=' . $entry['extra']['report'] . '">' . $txt['modlog_report'] . '</a>'; |
|
654 | + if (stristr($entry['action'], 'user_report')) { |
|
655 | + $entries[$k]['extra']['report'] = '<a href="' . $scripturl . '?action=moderate;area=reportedmembers;sa=details;rid=' . $entry['extra']['report'] . '">' . $txt['modlog_report'] . '</a>'; |
|
656 | + } else { |
|
657 | + $entries[$k]['extra']['report'] = '<a href="' . $scripturl . '?action=moderate;area=reportedposts;sa=details;rid=' . $entry['extra']['report'] . '">' . $txt['modlog_report'] . '</a>'; |
|
658 | + } |
|
636 | 659 | } |
637 | 660 | |
638 | - if (empty($entries[$k]['action_text'])) |
|
639 | - $entries[$k]['action_text'] = isset($txt['modlog_ac_' . $entry['action']]) ? $txt['modlog_ac_' . $entry['action']] : $entry['action']; |
|
661 | + if (empty($entries[$k]['action_text'])) { |
|
662 | + $entries[$k]['action_text'] = isset($txt['modlog_ac_' . $entry['action']]) ? $txt['modlog_ac_' . $entry['action']] : $entry['action']; |
|
663 | + } |
|
640 | 664 | $entries[$k]['action_text'] = preg_replace_callback('~\{([A-Za-z\d_]+)\}~i', |
641 | 665 | function ($matches) use ($entries, $k) |
642 | 666 | { |
@@ -256,7 +256,7 @@ discard block |
||
256 | 256 | 'class' => 'centercol', |
257 | 257 | ), |
258 | 258 | 'data' => array( |
259 | - 'function' => function ($entry) |
|
259 | + 'function' => function($entry) |
|
260 | 260 | { |
261 | 261 | return '<input type="checkbox" name="delete[]" value="' . $entry['id'] . '"' . ($entry['editable'] ? '' : ' disabled') . '>'; |
262 | 262 | }, |
@@ -638,7 +638,7 @@ discard block |
||
638 | 638 | if (empty($entries[$k]['action_text'])) |
639 | 639 | $entries[$k]['action_text'] = isset($txt['modlog_ac_' . $entry['action']]) ? $txt['modlog_ac_' . $entry['action']] : $entry['action']; |
640 | 640 | $entries[$k]['action_text'] = preg_replace_callback('~\{([A-Za-z\d_]+)\}~i', |
641 | - function ($matches) use ($entries, $k) |
|
641 | + function($matches) use ($entries, $k) |
|
642 | 642 | { |
643 | 643 | return isset($entries[$k]['extra'][$matches[1]]) ? $entries[$k]['extra'][$matches[1]] : ''; |
644 | 644 | }, $entries[$k]['action_text']); |
@@ -16,8 +16,9 @@ discard block |
||
16 | 16 | * @version 2.1 Beta 4 |
17 | 17 | */ |
18 | 18 | |
19 | -if (!defined('SMF')) |
|
19 | +if (!defined('SMF')) { |
|
20 | 20 | die('No direct access...'); |
21 | +} |
|
21 | 22 | |
22 | 23 | |
23 | 24 | /** |
@@ -28,14 +29,16 @@ discard block |
||
28 | 29 | function sha1_smf($str) |
29 | 30 | { |
30 | 31 | // If we have mhash loaded in, use it instead! |
31 | - if (function_exists('mhash') && defined('MHASH_SHA1')) |
|
32 | - return bin2hex(mhash(MHASH_SHA1, $str)); |
|
32 | + if (function_exists('mhash') && defined('MHASH_SHA1')) { |
|
33 | + return bin2hex(mhash(MHASH_SHA1, $str)); |
|
34 | + } |
|
33 | 35 | |
34 | 36 | $nblk = (strlen($str) + 8 >> 6) + 1; |
35 | 37 | $blks = array_pad(array(), $nblk * 16, 0); |
36 | 38 | |
37 | - for ($i = 0; $i < strlen($str); $i++) |
|
38 | - $blks[$i >> 2] |= ord($str{$i}) << (24 - ($i % 4) * 8); |
|
39 | + for ($i = 0; $i < strlen($str); $i++) { |
|
40 | + $blks[$i >> 2] |= ord($str{$i}) << (24 - ($i % 4) * 8); |
|
41 | + } |
|
39 | 42 | |
40 | 43 | $blks[$i >> 2] |= 0x80 << (24 - ($i % 4) * 8); |
41 | 44 | |
@@ -70,10 +73,11 @@ discard block |
||
70 | 73 | |
71 | 74 | for ($j = 0; $j < 80; $j++) |
72 | 75 | { |
73 | - if ($j < 16) |
|
74 | - $w[$j] = isset($x[$i + $j]) ? $x[$i + $j] : 0; |
|
75 | - else |
|
76 | - $w[$j] = sha1_rol($w[$j - 3] ^ $w[$j - 8] ^ $w[$j - 14] ^ $w[$j - 16], 1); |
|
76 | + if ($j < 16) { |
|
77 | + $w[$j] = isset($x[$i + $j]) ? $x[$i + $j] : 0; |
|
78 | + } else { |
|
79 | + $w[$j] = sha1_rol($w[$j - 3] ^ $w[$j - 8] ^ $w[$j - 14] ^ $w[$j - 16], 1); |
|
80 | + } |
|
77 | 81 | |
78 | 82 | $t = sha1_rol($a, 5) + sha1_ft($j, $b, $c, $d) + $e + $w[$j] + sha1_kt($j); |
79 | 83 | $e = $d; |
@@ -103,12 +107,15 @@ discard block |
||
103 | 107 | */ |
104 | 108 | function sha1_ft($t, $b, $c, $d) |
105 | 109 | { |
106 | - if ($t < 20) |
|
107 | - return ($b & $c) | ((~$b) & $d); |
|
108 | - if ($t < 40) |
|
109 | - return $b ^ $c ^ $d; |
|
110 | - if ($t < 60) |
|
111 | - return ($b & $c) | ($b & $d) | ($c & $d); |
|
110 | + if ($t < 20) { |
|
111 | + return ($b & $c) | ((~$b) & $d); |
|
112 | + } |
|
113 | + if ($t < 40) { |
|
114 | + return $b ^ $c ^ $d; |
|
115 | + } |
|
116 | + if ($t < 60) { |
|
117 | + return ($b & $c) | ($b & $d) | ($c & $d); |
|
118 | + } |
|
112 | 119 | |
113 | 120 | return $b ^ $c ^ $d; |
114 | 121 | } |
@@ -132,10 +139,11 @@ discard block |
||
132 | 139 | function sha1_rol($num, $cnt) |
133 | 140 | { |
134 | 141 | // Unfortunately, PHP uses unsigned 32-bit longs only. So we have to kludge it a bit. |
135 | - if ($num & 0x80000000) |
|
136 | - $a = ($num >> 1 & 0x7fffffff) >> (31 - $cnt); |
|
137 | - else |
|
138 | - $a = $num >> (32 - $cnt); |
|
142 | + if ($num & 0x80000000) { |
|
143 | + $a = ($num >> 1 & 0x7fffffff) >> (31 - $cnt); |
|
144 | + } else { |
|
145 | + $a = $num >> (32 - $cnt); |
|
146 | + } |
|
139 | 147 | |
140 | 148 | return ($num << $cnt) | $a; |
141 | 149 | } |