@@ -279,7 +279,6 @@ discard block |
||
279 | 279 | $condition = 'id_member IN ({array_int:members})'; |
280 | 280 | $parameters['members'] = $members; |
281 | 281 | } |
282 | - |
|
283 | 282 | elseif ($members === null) |
284 | 283 | $condition = '1=1'; |
285 | 284 | |
@@ -382,11 +381,9 @@ discard block |
||
382 | 381 | $val = $val . ' END'; |
383 | 382 | $type = 'raw'; |
384 | 383 | } |
385 | - |
|
386 | 384 | else |
387 | 385 | $val = alert_count($members, true); |
388 | 386 | } |
389 | - |
|
390 | 387 | elseif ($type == 'int' && ($val === '+' || $val === '-')) |
391 | 388 | { |
392 | 389 | $val = $var . ' ' . $val . ' 1'; |
@@ -2178,12 +2175,12 @@ discard block |
||
2178 | 2175 | 'tag' => 'cowsay', |
2179 | 2176 | 'parameters' => array( |
2180 | 2177 | 'e' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => 'oo', 'validate' => function ($eyes) use ($smcFunc) |
2181 | - { |
|
2178 | + { |
|
2182 | 2179 | return $smcFunc['substr']($eyes . 'oo', 0, 2); |
2183 | 2180 | }, |
2184 | 2181 | ), |
2185 | 2182 | 't' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => ' ', 'validate' => function ($tongue) use ($smcFunc) |
2186 | - { |
|
2183 | + { |
|
2187 | 2184 | return $smcFunc['substr']($tongue . ' ', 0, 2); |
2188 | 2185 | }, |
2189 | 2186 | ), |
@@ -3290,7 +3287,7 @@ discard block |
||
3290 | 3287 | |
3291 | 3288 | // Replace away! |
3292 | 3289 | $message = preg_replace_callback($smileyPregSearch, function($matches) use ($smileyPregReplacements) |
3293 | - { |
|
3290 | + { |
|
3294 | 3291 | return $smileyPregReplacements[$matches[1]]; |
3295 | 3292 | }, $message); |
3296 | 3293 | } |
@@ -4085,7 +4082,6 @@ discard block |
||
4085 | 4082 | if (!isset($minSeed) && isset($js_file['options']['seed'])) |
4086 | 4083 | $minSeed = $js_file['options']['seed']; |
4087 | 4084 | } |
4088 | - |
|
4089 | 4085 | else |
4090 | 4086 | { |
4091 | 4087 | echo ' |
@@ -6005,7 +6001,8 @@ discard block |
||
6005 | 6001 | $zones[$tzkey]['tzid'] = $tzid; |
6006 | 6002 | $zones[$tzkey]['dst_type'] = count($tzinfo) > 1 ? 1 : ($tzinfo[0]['isdst'] ? 2 : 0); |
6007 | 6003 | |
6008 | - foreach ($tzinfo as $transition) { |
|
6004 | + foreach ($tzinfo as $transition) |
|
6005 | + { |
|
6009 | 6006 | $zones[$tzkey]['abbrs'][] = $transition['abbr']; |
6010 | 6007 | } |
6011 | 6008 | |
@@ -6090,7 +6087,8 @@ discard block |
||
6090 | 6087 | $desc = implode(', ', array_slice(array_unique($tzvalue['locations']), 0, 5)) . (count($tzvalue['locations']) > 5 ? ', ' . $txt['etc'] : ''); |
6091 | 6088 | |
6092 | 6089 | // We don't want abbreviations like '+03' or '-11'. |
6093 | - $abbrs = array_filter($tzvalue['abbrs'], function ($abbr) { |
|
6090 | + $abbrs = array_filter($tzvalue['abbrs'], function ($abbr) |
|
6091 | + { |
|
6094 | 6092 | return !strspn($abbr, '+-'); |
6095 | 6093 | }); |
6096 | 6094 | $abbrs = count($abbrs) == count($tzvalue['abbrs']) ? array_unique($abbrs) : array(); |
@@ -6491,7 +6489,6 @@ discard block |
||
6491 | 6489 | $isWritable = true; |
6492 | 6490 | break; |
6493 | 6491 | } |
6494 | - |
|
6495 | 6492 | else |
6496 | 6493 | @chmod($file, $val); |
6497 | 6494 | } |
@@ -377,7 +377,7 @@ discard block |
||
377 | 377 | { |
378 | 378 | $val = 'CASE '; |
379 | 379 | foreach ($members as $k => $v) |
380 | - $val .= 'WHEN id_member = ' . $v . ' THEN '. alert_count($v, true) . ' '; |
|
380 | + $val .= 'WHEN id_member = ' . $v . ' THEN ' . alert_count($v, true) . ' '; |
|
381 | 381 | |
382 | 382 | $val = $val . ' END'; |
383 | 383 | $type = 'raw'; |
@@ -1039,11 +1039,11 @@ discard block |
||
1039 | 1039 | // Anything that isn't a specification, punctuation mark, or whitespace. |
1040 | 1040 | '~(?<!%)\p{L}|[^\p{L}\p{P}\s]~u', |
1041 | 1041 | // A series of punctuation marks (except %), possibly separated by whitespace. |
1042 | - '~([^%\P{P}])(\s*)(?'.'>(\1|[^%\P{Po}])\s*(?!$))*~u', |
|
1042 | + '~([^%\P{P}])(\s*)(?' . '>(\1|[^%\P{Po}])\s*(?!$))*~u', |
|
1043 | 1043 | // Unwanted trailing punctuation and whitespace. |
1044 | - '~(?'.'>([\p{Pd}\p{Ps}\p{Pi}\p{Pc}]|[^%\P{Po}])\s*)*$~u', |
|
1044 | + '~(?' . '>([\p{Pd}\p{Ps}\p{Pi}\p{Pc}]|[^%\P{Po}])\s*)*$~u', |
|
1045 | 1045 | // Unwanted opening punctuation and whitespace. |
1046 | - '~^\s*(?'.'>([\p{Pd}\p{Pe}\p{Pf}\p{Pc}]|[^%\P{Po}])\s*)*~u', |
|
1046 | + '~^\s*(?' . '>([\p{Pd}\p{Pe}\p{Pf}\p{Pc}]|[^%\P{Po}])\s*)*~u', |
|
1047 | 1047 | ), |
1048 | 1048 | array( |
1049 | 1049 | '', |
@@ -1441,7 +1441,7 @@ discard block |
||
1441 | 1441 | $returnContext .= '<img src="' . $currentAttachment['href'] . '"' . $alt . $title . ' class="bbc_img"></a>'; |
1442 | 1442 | else |
1443 | 1443 | { |
1444 | - $width = !empty($params['{width}']) ? ' width="' . $params['{width}'] . '"': ''; |
|
1444 | + $width = !empty($params['{width}']) ? ' width="' . $params['{width}'] . '"' : ''; |
|
1445 | 1445 | $height = !empty($params['{height}']) ? 'height="' . $params['{height}'] . '"' : ''; |
1446 | 1446 | $returnContext .= '<img src="' . $currentAttachment['href'] . ';image"' . $alt . $title . $width . $height . ' class="bbc_img resized"/>'; |
1447 | 1447 | } |
@@ -1452,7 +1452,7 @@ discard block |
||
1452 | 1452 | $width = !empty($width) ? ' width="' . $width . '"' : ''; |
1453 | 1453 | $height = !empty($height) ? ' height="' . $height . '"' : ''; |
1454 | 1454 | |
1455 | - $returnContext .= '<div class="videocontainer"><video controls preload="metadata" src="'. $currentAttachment['href'] . '" playsinline' . $width . $height . '><a href="' . $currentAttachment['href'] . '" class="bbc_link">' . $smcFunc['htmlspecialchars'](!empty($data) ? $data : $currentAttachment['name']) . '</a></video></div>' . (!empty($data) && $data != $currentAttachment['name'] ? '<div class="smalltext">' . $data . '</div>' : ''); |
|
1455 | + $returnContext .= '<div class="videocontainer"><video controls preload="metadata" src="' . $currentAttachment['href'] . '" playsinline' . $width . $height . '><a href="' . $currentAttachment['href'] . '" class="bbc_link">' . $smcFunc['htmlspecialchars'](!empty($data) ? $data : $currentAttachment['name']) . '</a></video></div>' . (!empty($data) && $data != $currentAttachment['name'] ? '<div class="smalltext">' . $data . '</div>' : ''); |
|
1456 | 1456 | } |
1457 | 1457 | // Audio. |
1458 | 1458 | elseif (strpos($currentAttachment['mime_type'], 'audio/') === 0) |
@@ -1460,7 +1460,7 @@ discard block |
||
1460 | 1460 | $width = 'max-width:100%; width: ' . (!empty($width) ? $width : '400') . 'px;'; |
1461 | 1461 | $height = !empty($height) ? 'height: ' . $height . 'px;' : ''; |
1462 | 1462 | |
1463 | - $returnContext .= (!empty($data) && $data != $currentAttachment['name'] ? $data . ' ' : '') . '<audio controls preload="none" src="'. $currentAttachment['href'] . '" class="bbc_audio" style="vertical-align:middle;' . $width . $height . '"><a href="' . $currentAttachment['href'] . '" class="bbc_link">' . $smcFunc['htmlspecialchars'](!empty($data) ? $data : $currentAttachment['name']) . '</a></audio>'; |
|
1463 | + $returnContext .= (!empty($data) && $data != $currentAttachment['name'] ? $data . ' ' : '') . '<audio controls preload="none" src="' . $currentAttachment['href'] . '" class="bbc_audio" style="vertical-align:middle;' . $width . $height . '"><a href="' . $currentAttachment['href'] . '" class="bbc_link">' . $smcFunc['htmlspecialchars'](!empty($data) ? $data : $currentAttachment['name']) . '</a></audio>'; |
|
1464 | 1464 | } |
1465 | 1465 | // Anything else. |
1466 | 1466 | else |
@@ -1629,7 +1629,7 @@ discard block |
||
1629 | 1629 | 'type' => 'unparsed_commas_content', |
1630 | 1630 | 'test' => '\d+,\d+\]', |
1631 | 1631 | 'content' => '<a href="$1" target="_blank" rel="noopener">$1</a>', |
1632 | - 'validate' => function (&$tag, &$data, $disabled) |
|
1632 | + 'validate' => function(&$tag, &$data, $disabled) |
|
1633 | 1633 | { |
1634 | 1634 | $scheme = parse_url($data[0], PHP_URL_SCHEME); |
1635 | 1635 | if (empty($scheme)) |
@@ -2171,12 +2171,12 @@ discard block |
||
2171 | 2171 | $codes[] = array( |
2172 | 2172 | 'tag' => 'cowsay', |
2173 | 2173 | 'parameters' => array( |
2174 | - 'e' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => 'oo', 'validate' => function ($eyes) use ($smcFunc) |
|
2174 | + 'e' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => 'oo', 'validate' => function($eyes) use ($smcFunc) |
|
2175 | 2175 | { |
2176 | 2176 | return $smcFunc['substr']($eyes . 'oo', 0, 2); |
2177 | 2177 | }, |
2178 | 2178 | ), |
2179 | - 't' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => ' ', 'validate' => function ($tongue) use ($smcFunc) |
|
2179 | + 't' => array('optional' => true, 'quoted' => true, 'match' => '(.*?)', 'default' => ' ', 'validate' => function($tongue) use ($smcFunc) |
|
2180 | 2180 | { |
2181 | 2181 | return $smcFunc['substr']($tongue . ' ', 0, 2); |
2182 | 2182 | }, |
@@ -3557,7 +3557,7 @@ discard block |
||
3557 | 3557 | if ($fp != false) |
3558 | 3558 | { |
3559 | 3559 | // Send the HEAD request (since we don't have to worry about chunked, HTTP/1.1 is fine here.) |
3560 | - fwrite($fp, 'HEAD /' . $match[2] . ' HTTP/1.1' . "\r\n" . 'Host: ' . $match[1] . "\r\n" . 'user-agent: '. SMF_USER_AGENT . "\r\n" . 'Connection: close' . "\r\n\r\n"); |
|
3560 | + fwrite($fp, 'HEAD /' . $match[2] . ' HTTP/1.1' . "\r\n" . 'Host: ' . $match[1] . "\r\n" . 'user-agent: ' . SMF_USER_AGENT . "\r\n" . 'Connection: close' . "\r\n\r\n"); |
|
3561 | 3561 | |
3562 | 3562 | // Read in the HTTP/1.1 or whatever. |
3563 | 3563 | $test = substr(fgets($fp, 11), -1); |
@@ -4174,7 +4174,7 @@ discard block |
||
4174 | 4174 | $toMinify = array(); |
4175 | 4175 | $normal = array(); |
4176 | 4176 | |
4177 | - uasort($context['css_files'], function ($a, $b) |
|
4177 | + uasort($context['css_files'], function($a, $b) |
|
4178 | 4178 | { |
4179 | 4179 | return $a['options']['order_pos'] < $b['options']['order_pos'] ? -1 : ($a['options']['order_pos'] > $b['options']['order_pos'] ? 1 : 0); |
4180 | 4180 | }); |
@@ -5471,7 +5471,7 @@ discard block |
||
5471 | 5471 | { |
5472 | 5472 | fwrite($fp, 'GET ' . ($match[6] !== '/' ? str_replace(' ', '%20', $match[6]) : '') . ' HTTP/1.0' . "\r\n"); |
5473 | 5473 | fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n"); |
5474 | - fwrite($fp, 'user-agent: '. SMF_USER_AGENT . "\r\n"); |
|
5474 | + fwrite($fp, 'user-agent: ' . SMF_USER_AGENT . "\r\n"); |
|
5475 | 5475 | if ($keep_alive) |
5476 | 5476 | fwrite($fp, 'connection: Keep-Alive' . "\r\n\r\n"); |
5477 | 5477 | else |
@@ -5481,7 +5481,7 @@ discard block |
||
5481 | 5481 | { |
5482 | 5482 | fwrite($fp, 'POST ' . ($match[6] !== '/' ? $match[6] : '') . ' HTTP/1.0' . "\r\n"); |
5483 | 5483 | fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n"); |
5484 | - fwrite($fp, 'user-agent: '. SMF_USER_AGENT . "\r\n"); |
|
5484 | + fwrite($fp, 'user-agent: ' . SMF_USER_AGENT . "\r\n"); |
|
5485 | 5485 | if ($keep_alive) |
5486 | 5486 | fwrite($fp, 'connection: Keep-Alive' . "\r\n"); |
5487 | 5487 | else |
@@ -5729,13 +5729,13 @@ discard block |
||
5729 | 5729 | |
5730 | 5730 | // UTF-8 occurences of MS special characters |
5731 | 5731 | $findchars_utf8 = array( |
5732 | - "\xe2\x80\x9a", // single low-9 quotation mark |
|
5733 | - "\xe2\x80\x9e", // double low-9 quotation mark |
|
5734 | - "\xe2\x80\xa6", // horizontal ellipsis |
|
5735 | - "\xe2\x80\x98", // left single curly quote |
|
5736 | - "\xe2\x80\x99", // right single curly quote |
|
5737 | - "\xe2\x80\x9c", // left double curly quote |
|
5738 | - "\xe2\x80\x9d", // right double curly quote |
|
5732 | + "\xe2\x80\x9a", // single low-9 quotation mark |
|
5733 | + "\xe2\x80\x9e", // double low-9 quotation mark |
|
5734 | + "\xe2\x80\xa6", // horizontal ellipsis |
|
5735 | + "\xe2\x80\x98", // left single curly quote |
|
5736 | + "\xe2\x80\x99", // right single curly quote |
|
5737 | + "\xe2\x80\x9c", // left double curly quote |
|
5738 | + "\xe2\x80\x9d", // right double curly quote |
|
5739 | 5739 | ); |
5740 | 5740 | |
5741 | 5741 | // windows 1252 / iso equivalents |
@@ -5751,13 +5751,13 @@ discard block |
||
5751 | 5751 | |
5752 | 5752 | // safe replacements |
5753 | 5753 | $replacechars = array( |
5754 | - ',', // ‚ |
|
5755 | - ',,', // „ |
|
5756 | - '...', // … |
|
5757 | - "'", // ‘ |
|
5758 | - "'", // ’ |
|
5759 | - '"', // “ |
|
5760 | - '"', // ” |
|
5754 | + ',', // ‚ |
|
5755 | + ',,', // „ |
|
5756 | + '...', // … |
|
5757 | + "'", // ‘ |
|
5758 | + "'", // ’ |
|
5759 | + '"', // “ |
|
5760 | + '"', // ” |
|
5761 | 5761 | ); |
5762 | 5762 | |
5763 | 5763 | if ($context['utf8']) |
@@ -6102,7 +6102,7 @@ discard block |
||
6102 | 6102 | $desc = implode(', ', array_slice(array_unique($tzvalue['locations']), 0, 5)) . (count($tzvalue['locations']) > 5 ? ', ' . $txt['etc'] : ''); |
6103 | 6103 | |
6104 | 6104 | // We don't want abbreviations like '+03' or '-11'. |
6105 | - $abbrs = array_filter($tzvalue['abbrs'], function ($abbr) { |
|
6105 | + $abbrs = array_filter($tzvalue['abbrs'], function($abbr) { |
|
6106 | 6106 | return !strspn($abbr, '+-'); |
6107 | 6107 | }); |
6108 | 6108 | $abbrs = count($abbrs) == count($tzvalue['abbrs']) ? array_unique($abbrs) : array(); |
@@ -7066,7 +7066,7 @@ discard block |
||
7066 | 7066 | EXISTS ( |
7067 | 7067 | SELECT bpv.id_board |
7068 | 7068 | FROM ' . $db_prefix . 'board_permissions_view AS bpv |
7069 | - WHERE bpv.id_group IN ('. implode(',', $groups) .') |
|
7069 | + WHERE bpv.id_group IN ('. implode(',', $groups) . ') |
|
7070 | 7070 | AND bpv.deny = 0 |
7071 | 7071 | AND bpv.id_board = b.id_board |
7072 | 7072 | )'; |
@@ -7076,7 +7076,7 @@ discard block |
||
7076 | 7076 | AND NOT EXISTS ( |
7077 | 7077 | SELECT bpv.id_board |
7078 | 7078 | FROM ' . $db_prefix . 'board_permissions_view AS bpv |
7079 | - WHERE bpv.id_group IN ( '. implode(',', $groups) .') |
|
7079 | + WHERE bpv.id_group IN ( '. implode(',', $groups) . ') |
|
7080 | 7080 | AND bpv.deny = 1 |
7081 | 7081 | AND bpv.id_board = b.id_board |
7082 | 7082 | )'; |
@@ -7347,8 +7347,8 @@ discard block |
||
7347 | 7347 | $i = 0; |
7348 | 7348 | while (empty($done)) |
7349 | 7349 | { |
7350 | - if (strpos($format, '{'. --$i . '}') !== false) |
|
7351 | - $replacements['{'. $i . '}'] = array_pop($list); |
|
7350 | + if (strpos($format, '{' . --$i . '}') !== false) |
|
7351 | + $replacements['{' . $i . '}'] = array_pop($list); |
|
7352 | 7352 | else |
7353 | 7353 | $done = true; |
7354 | 7354 | } |
@@ -7358,8 +7358,8 @@ discard block |
||
7358 | 7358 | $i = 0; |
7359 | 7359 | while (empty($done)) |
7360 | 7360 | { |
7361 | - if (strpos($format, '{'. ++$i . '}') !== false) |
|
7362 | - $replacements['{'. $i . '}'] = array_shift($list); |
|
7361 | + if (strpos($format, '{' . ++$i . '}') !== false) |
|
7362 | + $replacements['{' . $i . '}'] = array_shift($list); |
|
7363 | 7363 | else |
7364 | 7364 | $done = true; |
7365 | 7365 | } |
@@ -393,18 +393,18 @@ discard block |
||
393 | 393 | $quickbuttons = array( |
394 | 394 | 'approve' => array( |
395 | 395 | 'label' => $txt['approve'], |
396 | - 'href' => $scripturl.'?action=moderate;area=postmod;sa='.$context['current_view'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'].';approve='.$item['id'], |
|
396 | + 'href' => $scripturl . '?action=moderate;area=postmod;sa=' . $context['current_view'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'] . ';approve=' . $item['id'], |
|
397 | 397 | 'icon' => 'approve', |
398 | 398 | ), |
399 | 399 | 'delete' => array( |
400 | 400 | 'label' => $txt['remove'], |
401 | - 'href' => $scripturl.'?action=moderate;area=postmod;sa='.$context['current_view'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'].';delete='.$item['id'], |
|
401 | + 'href' => $scripturl . '?action=moderate;area=postmod;sa=' . $context['current_view'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'] . ';delete=' . $item['id'], |
|
402 | 402 | 'icon' => 'remove_button', |
403 | 403 | 'show' => $item['can_delete'] |
404 | 404 | ), |
405 | 405 | 'quickmod' => array( |
406 | 406 | 'class' => 'inline_mod_check', |
407 | - 'content' => '<input type="checkbox" name="item[]" value="'.$item['id'].'" checked>', |
|
407 | + 'content' => '<input type="checkbox" name="item[]" value="' . $item['id'] . '" checked>', |
|
408 | 408 | 'show' => !empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1 |
409 | 409 | ), |
410 | 410 | ); |
@@ -469,7 +469,7 @@ discard block |
||
469 | 469 | $quickbuttons = array( |
470 | 470 | 'delete' => array( |
471 | 471 | 'label' => $txt['remove_message'], |
472 | - 'href' => $scripturl.'?action=moderate;area=userwatch;sa=post;delete='.$post['id'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'], |
|
472 | + 'href' => $scripturl . '?action=moderate;area=userwatch;sa=post;delete=' . $post['id'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
473 | 473 | 'javascript' => 'data-confirm="' . $txt['mc_watched_users_delete_post'] . '"', |
474 | 474 | 'class' => 'you_sure', |
475 | 475 | 'icon' => 'remove_button', |
@@ -742,7 +742,7 @@ |
||
742 | 742 | 'icon' => 'move', |
743 | 743 | ), |
744 | 744 | 'quickmod' => array( |
745 | - 'class' => 'inline_mod_check', |
|
745 | + 'class' => 'inline_mod_check', |
|
746 | 746 | 'content' => '<input type="checkbox" name="mark[' . $id . ']" value="' . $id . '">', |
747 | 747 | 'show' => $context['showCheckboxes'] |
748 | 748 | ) |
@@ -261,7 +261,7 @@ discard block |
||
261 | 261 | AND a.is_read = 0' : '') . (!empty($alertIDs) ? ' |
262 | 262 | AND a.id_alert IN ({array_int:alertIDs})' : '') . ' |
263 | 263 | ORDER BY id_alert DESC' . (!empty($limit) ? ' |
264 | - LIMIT {int:limit}' : '') . (!empty($offset) ?' |
|
264 | + LIMIT {int:limit}' : '') . (!empty($offset) ? ' |
|
265 | 265 | OFFSET {int:offset}' : ''), |
266 | 266 | array( |
267 | 267 | 'id_member' => $memID, |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | call_integration_hook('integrate_fetch_alerts', array(&$alerts, &$formats)); |
360 | 360 | |
361 | 361 | // Substitute $scripturl into the link formats. (Done here to make life easier for hooked mods.) |
362 | - $formats = array_map(function ($format) use ($scripturl) { |
|
362 | + $formats = array_map(function($format) use ($scripturl) { |
|
363 | 363 | $format['link'] = str_replace('{scripturl}', $scripturl, $format['link']); |
364 | 364 | $format['text'] = str_replace('{scripturl}', $scripturl, $format['text']); |
365 | 365 | |
@@ -1167,20 +1167,20 @@ discard block |
||
1167 | 1167 | $context['posts'][$key]['quickbuttons'] = array( |
1168 | 1168 | 'reply' => array( |
1169 | 1169 | 'label' => $txt['reply'], |
1170 | - 'href' => $scripturl.'?action=post;topic='.$post['topic'].'.'.$post['start'], |
|
1170 | + 'href' => $scripturl . '?action=post;topic=' . $post['topic'] . '.' . $post['start'], |
|
1171 | 1171 | 'icon' => 'reply_button', |
1172 | 1172 | 'show' => $post['can_reply'] |
1173 | 1173 | ), |
1174 | 1174 | 'quote' => array( |
1175 | 1175 | 'label' => $txt['quote_action'], |
1176 | - 'href' => $scripturl.'?action=post;topic='.$post['topic'].'.'.$post['start'].';quote='.$post['id'], |
|
1176 | + 'href' => $scripturl . '?action=post;topic=' . $post['topic'] . '.' . $post['start'] . ';quote=' . $post['id'], |
|
1177 | 1177 | 'icon' => 'quote', |
1178 | 1178 | 'show' => $post['can_quote'] |
1179 | 1179 | ), |
1180 | 1180 | 'remove' => array( |
1181 | 1181 | 'label' => $txt['remove'], |
1182 | - 'href' => $scripturl.'?action=deletemsg;msg='.$post['id'].';topic='.$post['topic'].';profile;u='.$context['member']['id'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'], |
|
1183 | - 'javascript' => 'data-confirm="'.$txt['remove_message'].'"', |
|
1182 | + 'href' => $scripturl . '?action=deletemsg;msg=' . $post['id'] . ';topic=' . $post['topic'] . ';profile;u=' . $context['member']['id'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1183 | + 'javascript' => 'data-confirm="' . $txt['remove_message'] . '"', |
|
1184 | 1184 | 'class' => 'you_sure', |
1185 | 1185 | 'icon' => 'remove_button', |
1186 | 1186 | 'show' => $post['can_delete'] |
@@ -359,7 +359,8 @@ |
||
359 | 359 | call_integration_hook('integrate_fetch_alerts', array(&$alerts, &$formats)); |
360 | 360 | |
361 | 361 | // Substitute $scripturl into the link formats. (Done here to make life easier for hooked mods.) |
362 | - $formats = array_map(function ($format) use ($scripturl) { |
|
362 | + $formats = array_map(function ($format) use ($scripturl) |
|
363 | + { |
|
363 | 364 | $format['link'] = str_replace('{scripturl}', $scripturl, $format['link']); |
364 | 365 | $format['text'] = str_replace('{scripturl}', $scripturl, $format['text']); |
365 | 366 |
@@ -93,14 +93,14 @@ discard block |
||
93 | 93 | ), |
94 | 94 | 'ignore' => array( |
95 | 95 | 'label' => $report['ignore'] ? $txt['mc_reportedp_unignore'] : $txt['mc_reportedp_ignore'], |
96 | - 'href' => $scripturl.'?action=moderate;area=reported'.$context['report_type'].';sa=handle;ignore='.(int)!$report['ignore'].';rid='.$report['id'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'].';'.$context['mod-report-ignore_token_var'].'='.$context['mod-report-ignore_token'], |
|
96 | + 'href' => $scripturl . '?action=moderate;area=reported' . $context['report_type'] . ';sa=handle;ignore=' . (int) !$report['ignore'] . ';rid=' . $report['id'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'] . ';' . $context['mod-report-ignore_token_var'] . '=' . $context['mod-report-ignore_token'], |
|
97 | 97 | 'javascript' => !$report['ignore'] ? ' data-confirm="' . $txt['mc_reportedp_ignore_confirm'] . '"' : '', |
98 | 98 | 'class' => 'you_sure', |
99 | 99 | 'icon' => 'ignore' |
100 | 100 | ), |
101 | 101 | 'close' => array( |
102 | 102 | 'label' => $context['view_closed'] ? $txt['mc_reportedp_open'] : $txt['mc_reportedp_close'], |
103 | - 'href' => $scripturl.'?action=moderate;area=reported'.$context['report_type'].';sa=handle;closed='.(int)!$report['closed'].';rid='.$report['id'].';start='.$context['start'].';'.$context['session_var'].'='.$context['session_id'].';'.$context['mod-report-closed_token_var'].'='.$context['mod-report-closed_token'], |
|
103 | + 'href' => $scripturl . '?action=moderate;area=reported' . $context['report_type'] . ';sa=handle;closed=' . (int) !$report['closed'] . ';rid=' . $report['id'] . ';start=' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'] . ';' . $context['mod-report-closed_token_var'] . '=' . $context['mod-report-closed_token'], |
|
104 | 104 | 'icon' => $context['view_closed'] ? 'folder' : 'close', |
105 | 105 | ), |
106 | 106 | ); |
@@ -109,8 +109,8 @@ discard block |
||
109 | 109 | if ($context['report_type'] == 'posts') |
110 | 110 | $context['reports'][$key]['quickbuttons']['delete'] = array( |
111 | 111 | 'label' => $txt['mc_reportedp_delete'], |
112 | - 'href' => $scripturl.'?action=deletemsg;topic='.$report['topic']['id'].'.0;msg='.$report['topic']['id_msg'].';modcenter;'.$context['session_var'].'='.$context['session_id'], |
|
113 | - 'javascript' => 'data-confirm="'.$txt['mc_reportedp_delete_confirm'].'"', |
|
112 | + 'href' => $scripturl . '?action=deletemsg;topic=' . $report['topic']['id'] . '.0;msg=' . $report['topic']['id_msg'] . ';modcenter;' . $context['session_var'] . '=' . $context['session_id'], |
|
113 | + 'javascript' => 'data-confirm="' . $txt['mc_reportedp_delete_confirm'] . '"', |
|
114 | 114 | 'class' => 'you_sure', |
115 | 115 | 'icon' => 'delete', |
116 | 116 | 'show' => !$report['closed'] && (is_array($context['report_remove_any_boards']) && in_array($report['topic']['id_board'], $context['report_remove_any_boards'])) |
@@ -118,9 +118,9 @@ discard block |
||
118 | 118 | |
119 | 119 | // Ban reported member/post author link |
120 | 120 | if ($context['report_type'] == 'members') |
121 | - $ban_link = $scripturl.'?action=admin;area=ban;sa=add;u='.$report['user']['id'].';'.$context['session_var'].'='.$context['session_id']; |
|
121 | + $ban_link = $scripturl . '?action=admin;area=ban;sa=add;u=' . $report['user']['id'] . ';' . $context['session_var'] . '=' . $context['session_id']; |
|
122 | 122 | else |
123 | - $ban_link = $scripturl.'?action=admin;area=ban;sa=add'.(!empty($report['author']['id']) ? ';u='.$report['author']['id'] : ';msg='.$report['topic']['id_msg']).';'.$context['session_var'].'='.$context['session_id']; |
|
123 | + $ban_link = $scripturl . '?action=admin;area=ban;sa=add' . (!empty($report['author']['id']) ? ';u=' . $report['author']['id'] : ';msg=' . $report['topic']['id_msg']) . ';' . $context['session_var'] . '=' . $context['session_id']; |
|
124 | 124 | |
125 | 125 | $context['reports'][$key]['quickbuttons'] += array( |
126 | 126 | 'ban' => array( |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | ), |
132 | 132 | 'quickmod' => array( |
133 | 133 | 'class' => 'inline_mod_check', |
134 | - 'content' => '<input type="checkbox" name="close[]" value="'.$report['id'].'">', |
|
134 | + 'content' => '<input type="checkbox" name="close[]" value="' . $report['id'] . '">', |
|
135 | 135 | 'show' => !$context['view_closed'] |
136 | 136 | ) |
137 | 137 | ); |
@@ -1704,7 +1704,7 @@ |
||
1704 | 1704 | // Missing, but we have a fallback. |
1705 | 1705 | else |
1706 | 1706 | { |
1707 | - usort($fallbacks[$tzid], function ($a, $b) { |
|
1707 | + usort($fallbacks[$tzid], function($a, $b) { |
|
1708 | 1708 | return $a['ts'] > $b['ts']; |
1709 | 1709 | }); |
1710 | 1710 |
@@ -1704,7 +1704,8 @@ |
||
1704 | 1704 | // Missing, but we have a fallback. |
1705 | 1705 | else |
1706 | 1706 | { |
1707 | - usort($fallbacks[$tzid], function ($a, $b) { |
|
1707 | + usort($fallbacks[$tzid], function ($a, $b) |
|
1708 | + { |
|
1708 | 1709 | return $a['ts'] > $b['ts']; |
1709 | 1710 | }); |
1710 | 1711 |
@@ -353,8 +353,8 @@ discard block |
||
353 | 353 | } |
354 | 354 | |
355 | 355 | // Clean up tags with children |
356 | - foreach($bbcTagsChildren as $parent_tag => $children) |
|
357 | - foreach($children as $index => $child_tag) |
|
356 | + foreach ($bbcTagsChildren as $parent_tag => $children) |
|
357 | + foreach ($children as $index => $child_tag) |
|
358 | 358 | { |
359 | 359 | // Remove entries where parent and child tag is the same |
360 | 360 | if ($child_tag == $parent_tag) |
@@ -1877,25 +1877,25 @@ discard block |
||
1877 | 1877 | $fields = array(); |
1878 | 1878 | $new_sort = array(); |
1879 | 1879 | |
1880 | - while($row = $smcFunc['db_fetch_assoc']($request)) |
|
1880 | + while ($row = $smcFunc['db_fetch_assoc']($request)) |
|
1881 | 1881 | $fields[] = $row['id_field']; |
1882 | 1882 | $smcFunc['db_free_result']($request); |
1883 | 1883 | |
1884 | 1884 | $idx = array_search($context['fid'], $fields); |
1885 | 1885 | |
1886 | - if ($_GET['move'] == 'down' && count($fields) - 1 > $idx ) |
|
1886 | + if ($_GET['move'] == 'down' && count($fields) - 1 > $idx) |
|
1887 | 1887 | { |
1888 | - $new_sort = array_slice($fields ,0 ,$idx ,true); |
|
1888 | + $new_sort = array_slice($fields, 0, $idx, true); |
|
1889 | 1889 | $new_sort[] = $fields[$idx + 1]; |
1890 | 1890 | $new_sort[] = $fields[$idx]; |
1891 | - $new_sort += array_slice($fields ,$idx + 2 ,count($fields) ,true); |
|
1891 | + $new_sort += array_slice($fields, $idx + 2, count($fields), true); |
|
1892 | 1892 | } |
1893 | 1893 | elseif ($context['fid'] > 0 and $idx < count($fields)) |
1894 | 1894 | { |
1895 | - $new_sort = array_slice($fields ,0 ,($idx - 1) ,true); |
|
1895 | + $new_sort = array_slice($fields, 0, ($idx - 1), true); |
|
1896 | 1896 | $new_sort[] = $fields[$idx]; |
1897 | 1897 | $new_sort[] = $fields[$idx - 1]; |
1898 | - $new_sort += array_slice($fields ,($idx + 1) ,count($fields) ,true); |
|
1898 | + $new_sort += array_slice($fields, ($idx + 1), count($fields), true); |
|
1899 | 1899 | } |
1900 | 1900 | else |
1901 | 1901 | redirectexit('action=admin;area=featuresettings;sa=profile'); // @todo implement an error handler |
@@ -169,16 +169,16 @@ discard block |
||
169 | 169 | { |
170 | 170 | global $context, $txt; |
171 | 171 | |
172 | - if (!in_array($txt[self::CLASS_KEY .'_settings'], $config_vars)) |
|
172 | + if (!in_array($txt[self::CLASS_KEY . '_settings'], $config_vars)) |
|
173 | 173 | { |
174 | - $config_vars[] = $txt[self::CLASS_KEY .'_settings']; |
|
174 | + $config_vars[] = $txt[self::CLASS_KEY . '_settings']; |
|
175 | 175 | $config_vars[] = array( |
176 | 176 | self::CLASS_KEY, |
177 | - $txt[self::CLASS_KEY .'_servers'], |
|
177 | + $txt[self::CLASS_KEY . '_servers'], |
|
178 | 178 | 'file', |
179 | 179 | 'text', |
180 | 180 | 0, |
181 | - 'subtext' => $txt[self::CLASS_KEY .'_servers_subtext']); |
|
181 | + 'subtext' => $txt[self::CLASS_KEY . '_servers_subtext']); |
|
182 | 182 | } |
183 | 183 | |
184 | 184 | if (!isset($context['settings_post_javascript'])) |
@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | $context['settings_post_javascript'] .= ' |
188 | 188 | $("#cache_accelerator").change(function (e) { |
189 | 189 | var cache_type = e.currentTarget.value; |
190 | - $("#'. self::CLASS_KEY .'").prop("disabled", cache_type != "MemcacheImplementation" && cache_type != "MemcachedImplementation"); |
|
190 | + $("#'. self::CLASS_KEY . '").prop("disabled", cache_type != "MemcacheImplementation" && cache_type != "MemcachedImplementation"); |
|
191 | 191 | });'; |
192 | 192 | } |
193 | 193 |
@@ -1535,14 +1535,14 @@ discard block |
||
1535 | 1535 | $output['quickbuttons'] = array( |
1536 | 1536 | 'quote' => array( |
1537 | 1537 | 'label' => $txt['quote_action'], |
1538 | - 'href' => $scripturl.'?action=post;quote='.$output['id'].';topic='.$context['current_topic'], '.'.$context['start'].';last_msg='.$context['topic_last_message'], |
|
1539 | - 'javascript' => 'onclick="return oQuickReply.quote('.$output['id'].');"', |
|
1538 | + 'href' => $scripturl . '?action=post;quote=' . $output['id'] . ';topic=' . $context['current_topic'], '.' . $context['start'] . ';last_msg=' . $context['topic_last_message'], |
|
1539 | + 'javascript' => 'onclick="return oQuickReply.quote(' . $output['id'] . ');"', |
|
1540 | 1540 | 'icon' => 'quote', |
1541 | 1541 | 'show' => $context['can_quote'] |
1542 | 1542 | ), |
1543 | 1543 | 'quote_selected' => array( |
1544 | 1544 | 'label' => $txt['quote_selected_action'], |
1545 | - 'id' => 'quoteSelected_'. $output['id'], |
|
1545 | + 'id' => 'quoteSelected_' . $output['id'], |
|
1546 | 1546 | 'href' => 'javascript:void(0)', |
1547 | 1547 | 'custom' => 'style="display:none"', |
1548 | 1548 | 'icon' => 'quote_selected', |
@@ -1551,74 +1551,74 @@ discard block |
||
1551 | 1551 | 'quick_edit' => array( |
1552 | 1552 | 'label' => $txt['quick_edit'], |
1553 | 1553 | 'class' => 'quick_edit', |
1554 | - 'id' => 'modify_button_'. $output['id'], |
|
1555 | - 'custom' => 'onclick="oQuickModify.modifyMsg(\''.$output['id'].'\', \''.!empty($modSettings['toggle_subject']).'\')"', |
|
1554 | + 'id' => 'modify_button_' . $output['id'], |
|
1555 | + 'custom' => 'onclick="oQuickModify.modifyMsg(\'' . $output['id'] . '\', \'' . !empty($modSettings['toggle_subject']) . '\')"', |
|
1556 | 1556 | 'icon' => 'quick_edit_button', |
1557 | 1557 | 'show' => $output['can_modify'] |
1558 | 1558 | ), |
1559 | 1559 | 'more' => array( |
1560 | 1560 | 'modify' => array( |
1561 | 1561 | 'label' => $txt['modify'], |
1562 | - 'href' => $scripturl.'?action=post;msg='.$output['id'].';topic='.$context['current_topic'].'.'.$context['start'], |
|
1562 | + 'href' => $scripturl . '?action=post;msg=' . $output['id'] . ';topic=' . $context['current_topic'] . '.' . $context['start'], |
|
1563 | 1563 | 'icon' => 'modify_button', |
1564 | 1564 | 'show' => $output['can_modify'] |
1565 | 1565 | ), |
1566 | 1566 | 'remove_topic' => array( |
1567 | 1567 | 'label' => $txt['remove_topic'], |
1568 | - 'href' => $scripturl.'?action=removetopic2;topic='.$context['current_topic'].'.'.$context['start'].';'.$context['session_var'].'='.$context['session_id'], |
|
1569 | - 'javascript' => 'data-confirm="'.$txt['are_sure_remove_topic'].'"', |
|
1568 | + 'href' => $scripturl . '?action=removetopic2;topic=' . $context['current_topic'] . '.' . $context['start'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1569 | + 'javascript' => 'data-confirm="' . $txt['are_sure_remove_topic'] . '"', |
|
1570 | 1570 | 'class' => 'you_sure', |
1571 | 1571 | 'icon' => 'remove_button', |
1572 | 1572 | 'show' => $context['can_delete'] && ($context['topic_first_message'] == $output['id']) |
1573 | 1573 | ), |
1574 | 1574 | 'remove' => array( |
1575 | 1575 | 'label' => $txt['remove'], |
1576 | - 'href' => $scripturl.'?action=deletemsg;topic='.$context['current_topic'].'.'.$context['start'].';msg='.$output['id'].';'.$context['session_var'].'='.$context['session_id'], |
|
1577 | - 'javascript' => 'data-confirm="'.$txt['remove_message_question'].'"', |
|
1576 | + 'href' => $scripturl . '?action=deletemsg;topic=' . $context['current_topic'] . '.' . $context['start'] . ';msg=' . $output['id'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1577 | + 'javascript' => 'data-confirm="' . $txt['remove_message_question'] . '"', |
|
1578 | 1578 | 'class' => 'you_sure', |
1579 | 1579 | 'icon' => 'remove_button', |
1580 | 1580 | 'show' => $output['can_remove'] && ($context['topic_first_message'] != $output['id']) |
1581 | 1581 | ), |
1582 | 1582 | 'split' => array( |
1583 | 1583 | 'label' => $txt['split'], |
1584 | - 'href' => $scripturl.'?action=splittopics;topic='.$context['current_topic'].'.0;at='.$output['id'], |
|
1584 | + 'href' => $scripturl . '?action=splittopics;topic=' . $context['current_topic'] . '.0;at=' . $output['id'], |
|
1585 | 1585 | 'icon' => 'split_button', |
1586 | 1586 | 'show' => $context['can_split'] && !empty($context['real_num_replies']) |
1587 | 1587 | ), |
1588 | 1588 | 'report' => array( |
1589 | 1589 | 'label' => $txt['report_to_mod'], |
1590 | - 'href' => $scripturl.'?action=reporttm;topic='.$context['current_topic'].'.'.$output['counter'].';msg='.$output['id'], |
|
1590 | + 'href' => $scripturl . '?action=reporttm;topic=' . $context['current_topic'] . '.' . $output['counter'] . ';msg=' . $output['id'], |
|
1591 | 1591 | 'icon' => 'error', |
1592 | 1592 | 'show' => $context['can_report_moderator'] |
1593 | 1593 | ), |
1594 | 1594 | 'warn' => array( |
1595 | 1595 | 'label' => $txt['issue_warning'], |
1596 | - 'href' => $scripturl.'?action=profile;area=issuewarning;u='.$output['member']['id'].';msg='.$output['id'], |
|
1596 | + 'href' => $scripturl . '?action=profile;area=issuewarning;u=' . $output['member']['id'] . ';msg=' . $output['id'], |
|
1597 | 1597 | 'icon' => 'warn_button', |
1598 | 1598 | 'show' => $context['can_issue_warning'] && !$output['is_message_author'] && !$output['member']['is_guest'] |
1599 | 1599 | ), |
1600 | 1600 | 'restore' => array( |
1601 | 1601 | 'label' => $txt['restore_message'], |
1602 | - 'href' => $scripturl.'?action=restoretopic;msgs='.$output['id'].';'.$context['session_var'].'='.$context['session_id'], |
|
1602 | + 'href' => $scripturl . '?action=restoretopic;msgs=' . $output['id'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1603 | 1603 | 'icon' => 'restore_button', |
1604 | 1604 | 'show' => $context['can_restore_msg'] |
1605 | 1605 | ), |
1606 | 1606 | 'approve' => array( |
1607 | 1607 | 'label' => $txt['approve'], |
1608 | - 'href' => $scripturl.'?action=moderate;area=postmod;sa=approve;topic='.$context['current_topic'].'.'.$context['start'].';msg='.$output['id'].';'.$context['session_var'].'='.$context['session_id'], |
|
1608 | + 'href' => $scripturl . '?action=moderate;area=postmod;sa=approve;topic=' . $context['current_topic'] . '.' . $context['start'] . ';msg=' . $output['id'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1609 | 1609 | 'icon' => 'approve_button', |
1610 | 1610 | 'show' => $output['can_approve'] |
1611 | 1611 | ), |
1612 | 1612 | 'unapprove' => array( |
1613 | 1613 | 'label' => $txt['unapprove'], |
1614 | - 'href' => $scripturl.'?action=moderate;area=postmod;sa=approve;topic='.$context['current_topic'].'.'.$context['start'].';msg='.$output['id'].';'.$context['session_var'].'='.$context['session_id'], |
|
1614 | + 'href' => $scripturl . '?action=moderate;area=postmod;sa=approve;topic=' . $context['current_topic'] . '.' . $context['start'] . ';msg=' . $output['id'] . ';' . $context['session_var'] . '=' . $context['session_id'], |
|
1615 | 1615 | 'icon' => 'unapprove_button', |
1616 | 1616 | 'show' => $output['can_unapprove'] |
1617 | 1617 | ), |
1618 | 1618 | ), |
1619 | 1619 | 'quickmod' => array( |
1620 | 1620 | 'class' => 'inline_mod_check', |
1621 | - 'id' => 'in_topic_mod_check_'. $output['id'], |
|
1621 | + 'id' => 'in_topic_mod_check_' . $output['id'], |
|
1622 | 1622 | 'custom' => 'style="display: none;"', |
1623 | 1623 | 'content' => '', |
1624 | 1624 | 'show' => !empty($options['display_quick_mod']) && $options['display_quick_mod'] == 1 && $output['can_remove'] |
@@ -169,16 +169,16 @@ discard block |
||
169 | 169 | { |
170 | 170 | global $context, $txt; |
171 | 171 | |
172 | - if (!in_array($txt[self::CLASS_KEY .'_settings'], $config_vars)) |
|
172 | + if (!in_array($txt[self::CLASS_KEY . '_settings'], $config_vars)) |
|
173 | 173 | { |
174 | - $config_vars[] = $txt[self::CLASS_KEY .'_settings']; |
|
174 | + $config_vars[] = $txt[self::CLASS_KEY . '_settings']; |
|
175 | 175 | $config_vars[] = array( |
176 | 176 | self::CLASS_KEY, |
177 | - $txt[self::CLASS_KEY .'_servers'], |
|
177 | + $txt[self::CLASS_KEY . '_servers'], |
|
178 | 178 | 'file', |
179 | 179 | 'text', |
180 | 180 | 0, |
181 | - 'subtext' => $txt[self::CLASS_KEY .'_servers_subtext']); |
|
181 | + 'subtext' => $txt[self::CLASS_KEY . '_servers_subtext']); |
|
182 | 182 | } |
183 | 183 | |
184 | 184 | if (!isset($context['settings_post_javascript'])) |
@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | $context['settings_post_javascript'] .= ' |
188 | 188 | $("#cache_accelerator").change(function (e) { |
189 | 189 | var cache_type = e.currentTarget.value; |
190 | - $("#'. self::CLASS_KEY .'").prop("disabled", cache_type != "MemcacheImplementation" && cache_type != "MemcachedImplementation"); |
|
190 | + $("#'. self::CLASS_KEY . '").prop("disabled", cache_type != "MemcacheImplementation" && cache_type != "MemcachedImplementation"); |
|
191 | 191 | });'; |
192 | 192 | } |
193 | 193 |