@@ -12,7 +12,8 @@ |
||
12 | 12 | header('location: ' . $boardurl); |
13 | 13 | } |
14 | 14 | // Can't find it... just forget it. |
15 | -else |
|
15 | +else { |
|
16 | 16 | exit; |
17 | +} |
|
17 | 18 | |
18 | 19 | ?> |
19 | 20 | \ No newline at end of file |
@@ -12,7 +12,8 @@ |
||
12 | 12 | header('location: ' . $boardurl); |
13 | 13 | } |
14 | 14 | // Can't find it... just forget it. |
15 | -else |
|
15 | +else { |
|
16 | 16 | exit; |
17 | +} |
|
17 | 18 | |
18 | 19 | ?> |
19 | 20 | \ No newline at end of file |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | |
232 | 232 | foreach ($message['custom_fields']['above_member'] as $custom) |
233 | 233 | echo ' |
234 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
234 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
235 | 235 | |
236 | 236 | echo ' |
237 | 237 | </ul> |
@@ -280,7 +280,7 @@ discard block |
||
280 | 280 | if (!empty($message['custom_fields']['below_avatar'])) |
281 | 281 | foreach ($message['custom_fields']['below_avatar'] as $custom) |
282 | 282 | echo ' |
283 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
283 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
284 | 284 | |
285 | 285 | if (!$message['member']['is_guest']) |
286 | 286 | echo ' |
@@ -322,7 +322,7 @@ discard block |
||
322 | 322 | |
323 | 323 | foreach ($message['custom_fields']['icons'] as $custom) |
324 | 324 | echo ' |
325 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
325 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
326 | 326 | |
327 | 327 | echo ' |
328 | 328 | </ol> |
@@ -386,7 +386,7 @@ discard block |
||
386 | 386 | if (!empty($message['custom_fields']['standard'])) |
387 | 387 | foreach ($message['custom_fields']['standard'] as $custom) |
388 | 388 | echo ' |
389 | - <li class="custom ', $custom['col_name'] ,'">', $custom['title'], ': ', $custom['value'], '</li>'; |
|
389 | + <li class="custom ', $custom['col_name'], '">', $custom['title'], ': ', $custom['value'], '</li>'; |
|
390 | 390 | |
391 | 391 | // Are we showing the warning status? |
392 | 392 | if ($message['member']['can_see_warning']) |
@@ -397,7 +397,7 @@ discard block |
||
397 | 397 | if (!empty($message['custom_fields']['bottom_poster'])) |
398 | 398 | foreach ($message['custom_fields']['bottom_poster'] as $custom) |
399 | 399 | echo ' |
400 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
400 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
401 | 401 | } |
402 | 402 | |
403 | 403 | // Done with the information about the poster... on to the post itself. |
@@ -498,7 +498,7 @@ discard block |
||
498 | 498 | |
499 | 499 | foreach ($message['custom_fields']['above_signature'] as $custom) |
500 | 500 | echo ' |
501 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
501 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
502 | 502 | |
503 | 503 | echo ' |
504 | 504 | </ul> |
@@ -521,7 +521,7 @@ discard block |
||
521 | 521 | |
522 | 522 | foreach ($message['custom_fields']['below_signature'] as $custom) |
523 | 523 | echo ' |
524 | - <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
|
524 | + <li class="custom ', $custom['col_name'], '">', $custom['value'], '</li>'; |
|
525 | 525 | |
526 | 526 | echo ' |
527 | 527 | </ul> |
@@ -657,7 +657,7 @@ discard block |
||
657 | 657 | while ($message = $context['get_pmessage']('subject')) |
658 | 658 | { |
659 | 659 | echo ' |
660 | - <tr class="windowbg', $message['is_unread'] ? ' unread_pm' : '','"> |
|
660 | + <tr class="windowbg', $message['is_unread'] ? ' unread_pm' : '', '"> |
|
661 | 661 | <td class="table_icon"> |
662 | 662 | <script> |
663 | 663 | currentLabels[', $message['id'], '] = {'; |
@@ -946,13 +946,13 @@ discard block |
||
946 | 946 | // You can only reply if they are not a guest... |
947 | 947 | if (!$message['member']['is_guest']) |
948 | 948 | echo ' |
949 | - <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote;u=', $context['folder'] == 'sent' ? '' : $message['member']['id'], '">', $quote_button , '</a>', $context['menu_separator'], ' |
|
950 | - <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';u=', $message['member']['id'], '">', $reply_button , '</a> ', $context['menu_separator']; |
|
949 | + <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote;u=', $context['folder'] == 'sent' ? '' : $message['member']['id'], '">', $quote_button, '</a>', $context['menu_separator'], ' |
|
950 | + <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';u=', $message['member']['id'], '">', $reply_button, '</a> ', $context['menu_separator']; |
|
951 | 951 | |
952 | 952 | // This is for "forwarding" - even if the member is gone. |
953 | 953 | else |
954 | 954 | echo ' |
955 | - <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote">', $quote_button , '</a>', $context['menu_separator']; |
|
955 | + <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote">', $quote_button, '</a>', $context['menu_separator']; |
|
956 | 956 | } |
957 | 957 | |
958 | 958 | echo ' |
@@ -1054,7 +1054,7 @@ discard block |
||
1054 | 1054 | <div class="', empty($context['error_type']) || $context['error_type'] != 'serious' ? 'noticebox' : 'errorbox', '"', empty($context['post_error']['messages']) ? ' style="display: none"' : '', ' id="errors"> |
1055 | 1055 | <dl> |
1056 | 1056 | <dt> |
1057 | - <strong id="error_serious">', $txt['error_while_submitting'] , '</strong> |
|
1057 | + <strong id="error_serious">', $txt['error_while_submitting'], '</strong> |
|
1058 | 1058 | </dt> |
1059 | 1059 | <dd class="error" id="error_list"> |
1060 | 1060 | ', empty($context['post_error']['messages']) ? '' : implode('<br>', $context['post_error']['messages']), ' |
@@ -1110,7 +1110,7 @@ discard block |
||
1110 | 1110 | <span', (isset($context['post_error']['no_subject']) ? ' class="error"' : ''), ' id="caption_subject">', $txt['subject'], ':</span> |
1111 | 1111 | </dt> |
1112 | 1112 | <dd id="pm_subject"> |
1113 | - <input type="text" name="subject" value="', $context['subject'], '" tabindex="', $context['tabindex']++, '" size="80" maxlength="80"',isset($context['post_error']['no_subject']) ? ' class="error"' : '', '> |
|
1113 | + <input type="text" name="subject" value="', $context['subject'], '" tabindex="', $context['tabindex']++, '" size="80" maxlength="80"', isset($context['post_error']['no_subject']) ? ' class="error"' : '', '> |
|
1114 | 1114 | </dd> |
1115 | 1115 | </dl>'; |
1116 | 1116 | |
@@ -1463,7 +1463,7 @@ discard block |
||
1463 | 1463 | echo ' |
1464 | 1464 | <div class="padding"> |
1465 | 1465 | <input type="submit" name="save" value="', $txt['save'], '" class="button"> |
1466 | - <input type="submit" name="delete" value="', $txt['quickmod_delete_selected'], '" data-confirm="', $txt['pm_labels_delete'] ,'" class="button you_sure"> |
|
1466 | + <input type="submit" name="delete" value="', $txt['quickmod_delete_selected'], '" data-confirm="', $txt['pm_labels_delete'], '" class="button you_sure"> |
|
1467 | 1467 | </div>'; |
1468 | 1468 | |
1469 | 1469 | echo ' |
@@ -1628,7 +1628,7 @@ discard block |
||
1628 | 1628 | if (!empty($context['rules'])) |
1629 | 1629 | echo ' |
1630 | 1630 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
1631 | - <input type="submit" name="delselected" value="', $txt['pm_delete_selected_rule'], '" data-confirm="', $txt['pm_js_delete_rule_confirm'] ,'" class="button smalltext you_sure">'; |
|
1631 | + <input type="submit" name="delselected" value="', $txt['pm_delete_selected_rule'], '" data-confirm="', $txt['pm_js_delete_rule_confirm'], '" class="button smalltext you_sure">'; |
|
1632 | 1632 | |
1633 | 1633 | echo ' |
1634 | 1634 | </div> |
@@ -1871,9 +1871,9 @@ discard block |
||
1871 | 1871 | |
1872 | 1872 | echo ' |
1873 | 1873 | <select name="acttype[', $k, ']" id="acttype', $k, '" onchange="updateActionDef(', $k, '); rebuildRuleDesc();"> |
1874 | - <option value="">', $txt['pm_rule_sel_action'] , ':</option> |
|
1875 | - <option value="lab"', $action['t'] == 'lab' ? ' selected' : '', '>', $txt['pm_rule_label'] , '</option> |
|
1876 | - <option value="del"', $action['t'] == 'del' ? ' selected' : '', '>', $txt['pm_rule_delete'] , '</option> |
|
1874 | + <option value="">', $txt['pm_rule_sel_action'], ':</option> |
|
1875 | + <option value="lab"', $action['t'] == 'lab' ? ' selected' : '', '>', $txt['pm_rule_label'], '</option> |
|
1876 | + <option value="del"', $action['t'] == 'del' ? ' selected' : '', '>', $txt['pm_rule_delete'], '</option> |
|
1877 | 1877 | </select> |
1878 | 1878 | <span id="labdiv', $k, '"> |
1879 | 1879 | <select name="labdef[', $k, ']" id="labdef', $k, '" onchange="rebuildRuleDesc();"> |
@@ -1985,7 +1985,7 @@ discard block |
||
1985 | 1985 | </div> |
1986 | 1986 | <ul class="quickbuttons"> |
1987 | 1987 | <li><a href="', $scripturl, '?action=pm;sa=showpmdrafts;id_draft=', $draft['id_draft'], ';', $context['session_var'], '=', $context['session_id'], '"><span class="generic_icons modifybutton"></span>', $txt['draft_edit'], '</a></li> |
1988 | - <li><a href="', $scripturl, '?action=pm;sa=showpmdrafts;delete=', $draft['id_draft'], ';', $context['session_var'], '=', $context['session_id'], '" data-confirm="', $txt['draft_remove'] ,'?" class="you_sure"><span class="generic_icons remove_button"></span>', $txt['draft_delete'], '</a></li> |
|
1988 | + <li><a href="', $scripturl, '?action=pm;sa=showpmdrafts;delete=', $draft['id_draft'], ';', $context['session_var'], '=', $context['session_id'], '" data-confirm="', $txt['draft_remove'], '?" class="you_sure"><span class="generic_icons remove_button"></span>', $txt['draft_delete'], '</a></li> |
|
1989 | 1989 | </ul> |
1990 | 1990 | </div><!-- .windowbg -->'; |
1991 | 1991 | } |
@@ -21,8 +21,8 @@ discard block |
||
21 | 21 | <div id="personal_messages">'; |
22 | 22 | |
23 | 23 | // Show the capacity bar, if available. |
24 | - if (!empty($context['limit_bar'])) |
|
25 | - echo ' |
|
24 | + if (!empty($context['limit_bar'])) { |
|
25 | + echo ' |
|
26 | 26 | <div class="cat_bar"> |
27 | 27 | <h3 class="catbg"> |
28 | 28 | <span class="floatleft">', $txt['pm_capacity'], ':</span> |
@@ -32,14 +32,16 @@ discard block |
||
32 | 32 | <span class="floatright', $context['limit_bar']['percent'] > 90 ? ' alert' : '', '">', $context['limit_bar']['text'], '</span> |
33 | 33 | </h3> |
34 | 34 | </div>'; |
35 | + } |
|
35 | 36 | |
36 | 37 | // Message sent? Show a small indication. |
37 | - if (isset($context['pm_sent'])) |
|
38 | - echo ' |
|
38 | + if (isset($context['pm_sent'])) { |
|
39 | + echo ' |
|
39 | 40 | <div class="infobox"> |
40 | 41 | ', $txt['pm_sent'], ' |
41 | 42 | </div>'; |
42 | -} |
|
43 | + } |
|
44 | + } |
|
43 | 45 | |
44 | 46 | /** |
45 | 47 | * Just the end of the index bar, nothing special. |
@@ -68,13 +70,13 @@ discard block |
||
68 | 70 | </div> |
69 | 71 | <div class="pm_unread">'; |
70 | 72 | |
71 | - if (empty($context['unread_pms'])) |
|
72 | - echo ' |
|
73 | + if (empty($context['unread_pms'])) { |
|
74 | + echo ' |
|
73 | 75 | <div class="no_unread">', $txt['pm_no_unread'], '</div>'; |
74 | - else |
|
76 | + } else |
|
75 | 77 | { |
76 | - foreach ($context['unread_pms'] as $id_pm => $pm_details) |
|
77 | - echo ' |
|
78 | + foreach ($context['unread_pms'] as $id_pm => $pm_details) { |
|
79 | + echo ' |
|
78 | 80 | <div class="unread"> |
79 | 81 | ', !empty($pm_details['member']) ? $pm_details['member']['avatar']['image'] : '', ' |
80 | 82 | <div class="details"> |
@@ -85,6 +87,7 @@ discard block |
||
85 | 87 | </div> |
86 | 88 | </div> |
87 | 89 | </div>'; |
90 | + } |
|
88 | 91 | } |
89 | 92 | |
90 | 93 | echo ' |
@@ -193,14 +196,15 @@ discard block |
||
193 | 196 | if ($context['get_pmessage']('message', true)) |
194 | 197 | { |
195 | 198 | // Show the helpful titlebar - generally. |
196 | - if ($context['display_mode'] != 1) |
|
197 | - echo ' |
|
199 | + if ($context['display_mode'] != 1) { |
|
200 | + echo ' |
|
198 | 201 | <div class="cat_bar"> |
199 | 202 | <h3 class="catbg"> |
200 | 203 | <span id="author">', $txt['author'], '</span> |
201 | 204 | <span id="topic_title">', $txt[$context['display_mode'] == 0 ? 'messages' : 'conversation'], '</span> |
202 | 205 | </h3> |
203 | 206 | </div>'; |
207 | + } |
|
204 | 208 | |
205 | 209 | // Show a few buttons if we are in conversation mode and outputting the first message. |
206 | 210 | if ($context['display_mode'] == 2) |
@@ -229,9 +233,10 @@ discard block |
||
229 | 233 | <div class="custom_fields_above_member"> |
230 | 234 | <ul class="nolist">'; |
231 | 235 | |
232 | - foreach ($message['custom_fields']['above_member'] as $custom) |
|
233 | - echo ' |
|
236 | + foreach ($message['custom_fields']['above_member'] as $custom) { |
|
237 | + echo ' |
|
234 | 238 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
239 | + } |
|
235 | 240 | |
236 | 241 | echo ' |
237 | 242 | </ul> |
@@ -243,25 +248,28 @@ discard block |
||
243 | 248 | <a id="msg', $message['id'], '"></a>'; |
244 | 249 | |
245 | 250 | // Show online and offline buttons? |
246 | - if (!empty($modSettings['onlineEnable']) && !$message['member']['is_guest']) |
|
247 | - echo ' |
|
251 | + if (!empty($modSettings['onlineEnable']) && !$message['member']['is_guest']) { |
|
252 | + echo ' |
|
248 | 253 | <span class="' . ($message['member']['online']['is_online'] == 1 ? 'on' : 'off') . '" title="' . $message['member']['online']['text'] . '"></span>'; |
254 | + } |
|
249 | 255 | |
250 | 256 | // Custom fields BEFORE the username? |
251 | - if (!empty($message['custom_fields']['before_member'])) |
|
252 | - foreach ($message['custom_fields']['before_member'] as $custom) |
|
257 | + if (!empty($message['custom_fields']['before_member'])) { |
|
258 | + foreach ($message['custom_fields']['before_member'] as $custom) |
|
253 | 259 | echo ' |
254 | 260 | <span class="custom ', $custom['col_name'], '">', $custom['value'], '</span>'; |
261 | + } |
|
255 | 262 | |
256 | 263 | // Show a link to the member's profile. |
257 | 264 | echo ' |
258 | 265 | ', $message['member']['link']; |
259 | 266 | |
260 | 267 | // Custom fields AFTER the username? |
261 | - if (!empty($message['custom_fields']['after_member'])) |
|
262 | - foreach ($message['custom_fields']['after_member'] as $custom) |
|
268 | + if (!empty($message['custom_fields']['after_member'])) { |
|
269 | + foreach ($message['custom_fields']['after_member'] as $custom) |
|
263 | 270 | echo ' |
264 | 271 | <span class="custom ', $custom['col_name'], '">', $custom['value'], '</span>'; |
272 | + } |
|
265 | 273 | |
266 | 274 | echo ' |
267 | 275 | </h4>'; |
@@ -270,48 +278,56 @@ discard block |
||
270 | 278 | <ul class="user_info">'; |
271 | 279 | |
272 | 280 | // Show the user's avatar. |
273 | - if (!empty($modSettings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image'])) |
|
274 | - echo ' |
|
281 | + if (!empty($modSettings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image'])) { |
|
282 | + echo ' |
|
275 | 283 | <li class="avatar"> |
276 | 284 | <a href="', $scripturl, '?action=profile;u=', $message['member']['id'], '">', $message['member']['avatar']['image'], '</a> |
277 | 285 | </li>'; |
286 | + } |
|
278 | 287 | |
279 | 288 | // Are there any custom fields below the avatar? |
280 | - if (!empty($message['custom_fields']['below_avatar'])) |
|
281 | - foreach ($message['custom_fields']['below_avatar'] as $custom) |
|
289 | + if (!empty($message['custom_fields']['below_avatar'])) { |
|
290 | + foreach ($message['custom_fields']['below_avatar'] as $custom) |
|
282 | 291 | echo ' |
283 | 292 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
293 | + } |
|
284 | 294 | |
285 | - if (!$message['member']['is_guest']) |
|
286 | - echo ' |
|
295 | + if (!$message['member']['is_guest']) { |
|
296 | + echo ' |
|
287 | 297 | <li class="icons">', $message['member']['group_icons'], '</li>'; |
298 | + } |
|
288 | 299 | // Show the member's primary group (like 'Administrator') if they have one. |
289 | - if (isset($message['member']['group']) && $message['member']['group'] != '') |
|
290 | - echo ' |
|
300 | + if (isset($message['member']['group']) && $message['member']['group'] != '') { |
|
301 | + echo ' |
|
291 | 302 | <li class="membergroup">', $message['member']['group'], '</li>'; |
303 | + } |
|
292 | 304 | |
293 | 305 | // Show the member's custom title, if they have one. |
294 | - if (isset($message['member']['title']) && $message['member']['title'] != '') |
|
295 | - echo ' |
|
306 | + if (isset($message['member']['title']) && $message['member']['title'] != '') { |
|
307 | + echo ' |
|
296 | 308 | <li class="title">', $message['member']['title'], '</li>'; |
309 | + } |
|
297 | 310 | |
298 | 311 | // Don't show these things for guests. |
299 | 312 | if (!$message['member']['is_guest']) |
300 | 313 | { |
301 | 314 | // Show the post group if and only if they have no other group or the option is on, and they are in a post group. |
302 | - if ((empty($modSettings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '') |
|
303 | - echo ' |
|
315 | + if ((empty($modSettings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '') { |
|
316 | + echo ' |
|
304 | 317 | <li class="postgroup">', $message['member']['post_group'], '</li>'; |
318 | + } |
|
305 | 319 | |
306 | 320 | // Show how many posts they have made. |
307 | - if (!isset($context['disabled_fields']['posts'])) |
|
308 | - echo ' |
|
321 | + if (!isset($context['disabled_fields']['posts'])) { |
|
322 | + echo ' |
|
309 | 323 | <li class="postcount">', $txt['member_postcount'], ': ', $message['member']['posts'], '</li>'; |
324 | + } |
|
310 | 325 | |
311 | 326 | // Show their personal text? |
312 | - if (!empty($modSettings['show_blurb']) && $message['member']['blurb'] != '') |
|
313 | - echo ' |
|
327 | + if (!empty($modSettings['show_blurb']) && $message['member']['blurb'] != '') { |
|
328 | + echo ' |
|
314 | 329 | <li class="blurb">', $message['member']['blurb'], '</li>'; |
330 | + } |
|
315 | 331 | |
316 | 332 | // Any custom fields to show as icons? |
317 | 333 | if (!empty($message['custom_fields']['icons'])) |
@@ -320,9 +336,10 @@ discard block |
||
320 | 336 | <li class="im_icons"> |
321 | 337 | <ol>'; |
322 | 338 | |
323 | - foreach ($message['custom_fields']['icons'] as $custom) |
|
324 | - echo ' |
|
339 | + foreach ($message['custom_fields']['icons'] as $custom) { |
|
340 | + echo ' |
|
325 | 341 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
342 | + } |
|
326 | 343 | |
327 | 344 | echo ' |
328 | 345 | </ol> |
@@ -330,25 +347,28 @@ discard block |
||
330 | 347 | } |
331 | 348 | |
332 | 349 | // Show the IP to this user for this post - because you can moderate? |
333 | - if (!empty($context['can_moderate_forum']) && !empty($message['member']['ip'])) |
|
334 | - echo ' |
|
350 | + if (!empty($context['can_moderate_forum']) && !empty($message['member']['ip'])) { |
|
351 | + echo ' |
|
335 | 352 | <li class="poster_ip"> |
336 | 353 | <a href="', $scripturl, '?action=', !empty($message['member']['is_guest']) ? 'trackip' : 'profile;area=tracking;sa=ip;u=' . $message['member']['id'], ';searchip=', $message['member']['ip'], '">', $message['member']['ip'], '</a> <a href="', $scripturl, '?action=helpadmin;help=see_admin_ip" onclick="return reqOverlayDiv(this.href);" class="help">(?)</a> |
337 | 354 | </li>'; |
355 | + } |
|
338 | 356 | |
339 | 357 | // Or, should we show it because this is you? |
340 | - elseif ($message['can_see_ip']) |
|
341 | - echo ' |
|
358 | + elseif ($message['can_see_ip']) { |
|
359 | + echo ' |
|
342 | 360 | <li class="poster_ip"> |
343 | 361 | <a href="', $scripturl, '?action=helpadmin;help=see_member_ip" onclick="return reqOverlayDiv(this.href);" class="help">', $message['member']['ip'], '</a> |
344 | 362 | </li>'; |
363 | + } |
|
345 | 364 | |
346 | 365 | // Okay, you are logged in, then we can show something about why IPs are logged... |
347 | - else |
|
348 | - echo ' |
|
366 | + else { |
|
367 | + echo ' |
|
349 | 368 | <li class="poster_ip"> |
350 | 369 | <a href="', $scripturl, '?action=helpadmin;help=see_member_ip" onclick="return reqOverlayDiv(this.href);" class="help">', $txt['logged'], '</a> |
351 | 370 | </li>'; |
371 | + } |
|
352 | 372 | |
353 | 373 | // Show the profile, website, email address, and personal message buttons. |
354 | 374 | if ($message['member']['show_profile_buttons']) |
@@ -358,24 +378,28 @@ discard block |
||
358 | 378 | <ol class="profile_icons">'; |
359 | 379 | |
360 | 380 | // Show the profile button |
361 | - if ($message['member']['can_view_profile']) |
|
362 | - echo ' |
|
381 | + if ($message['member']['can_view_profile']) { |
|
382 | + echo ' |
|
363 | 383 | <li><a href="', $message['member']['href'], '">', ($settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/icons/profile_sm.png" alt="' . $txt['view_profile'] . '" title="' . $txt['view_profile'] . '">' : $txt['view_profile']), '</a></li>'; |
384 | + } |
|
364 | 385 | |
365 | 386 | // Don't show an icon if they haven't specified a website. |
366 | - if ($message['member']['website']['url'] != '' && !isset($context['disabled_fields']['website'])) |
|
367 | - echo ' |
|
387 | + if ($message['member']['website']['url'] != '' && !isset($context['disabled_fields']['website'])) { |
|
388 | + echo ' |
|
368 | 389 | <li><a href="', $message['member']['website']['url'], '" title="' . $message['member']['website']['title'] . '" target="_blank" rel="noopener">', ($settings['use_image_buttons'] ? '<span class="generic_icons www centericon" title="' . $message['member']['website']['title'] . '"></span>' : $txt['www']), '</a></li>'; |
390 | + } |
|
369 | 391 | |
370 | 392 | // Don't show the email address if they want it hidden. |
371 | - if ($message['member']['show_email']) |
|
372 | - echo ' |
|
393 | + if ($message['member']['show_email']) { |
|
394 | + echo ' |
|
373 | 395 | <li><a href="mailto:', $message['member']['email'], '" rel="nofollow">', ($settings['use_image_buttons'] ? '<span class="generic_icons mail centericon" title="' . $txt['email'] . '"></span>' : $txt['email']), '</a></li>'; |
396 | + } |
|
374 | 397 | |
375 | 398 | // Since we know this person isn't a guest, you *can* message them. |
376 | - if ($context['can_send_pm']) |
|
377 | - echo ' |
|
399 | + if ($context['can_send_pm']) { |
|
400 | + echo ' |
|
378 | 401 | <li><a href="', $scripturl, '?action=pm;sa=send;u=', $message['member']['id'], '" title="', $message['member']['online']['is_online'] ? $txt['pm_online'] : $txt['pm_offline'], '">', $settings['use_image_buttons'] ? '<span class="generic_icons im_' . ($message['member']['online']['is_online'] ? 'on' : 'off') . ' centericon" title="' . ($message['member']['online']['is_online'] ? $txt['pm_online'] : $txt['pm_offline']) . '"></span> ' : ($message['member']['online']['is_online'] ? $txt['pm_online'] : $txt['pm_offline']), '</a></li>'; |
402 | + } |
|
379 | 403 | |
380 | 404 | echo ' |
381 | 405 | </ol> |
@@ -383,21 +407,24 @@ discard block |
||
383 | 407 | } |
384 | 408 | |
385 | 409 | // Any custom fields for standard placement? |
386 | - if (!empty($message['custom_fields']['standard'])) |
|
387 | - foreach ($message['custom_fields']['standard'] as $custom) |
|
410 | + if (!empty($message['custom_fields']['standard'])) { |
|
411 | + foreach ($message['custom_fields']['standard'] as $custom) |
|
388 | 412 | echo ' |
389 | 413 | <li class="custom ', $custom['col_name'] ,'">', $custom['title'], ': ', $custom['value'], '</li>'; |
414 | + } |
|
390 | 415 | |
391 | 416 | // Are we showing the warning status? |
392 | - if ($message['member']['can_see_warning']) |
|
393 | - echo ' |
|
417 | + if ($message['member']['can_see_warning']) { |
|
418 | + echo ' |
|
394 | 419 | <li class="warning">', $context['can_issue_warning'] ? '<a href="' . $scripturl . '?action=profile;area=issuewarning;u=' . $message['member']['id'] . '">' : '', '<span class="generic_icons warning_', $message['member']['warning_status'], '"></span>', $context['can_issue_warning'] ? '</a>' : '', '<span class="warn_', $message['member']['warning_status'], '">', $txt['warn_' . $message['member']['warning_status']], '</span></li>'; |
420 | + } |
|
395 | 421 | |
396 | 422 | // Are there any custom fields to show at the bottom of the poster info? |
397 | - if (!empty($message['custom_fields']['bottom_poster'])) |
|
398 | - foreach ($message['custom_fields']['bottom_poster'] as $custom) |
|
423 | + if (!empty($message['custom_fields']['bottom_poster'])) { |
|
424 | + foreach ($message['custom_fields']['bottom_poster'] as $custom) |
|
399 | 425 | echo ' |
400 | 426 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
427 | + } |
|
401 | 428 | } |
402 | 429 | |
403 | 430 | // Done with the information about the poster... on to the post itself. |
@@ -416,25 +443,29 @@ discard block |
||
416 | 443 | <span class="smalltext">« <strong> ', $txt['sent_to'], ':</strong> '; |
417 | 444 | |
418 | 445 | // People it was sent directly to.... |
419 | - if (!empty($message['recipients']['to'])) |
|
420 | - echo implode(', ', $message['recipients']['to']); |
|
446 | + if (!empty($message['recipients']['to'])) { |
|
447 | + echo implode(', ', $message['recipients']['to']); |
|
448 | + } |
|
421 | 449 | |
422 | 450 | // Otherwise, we're just going to say "some people"... |
423 | - elseif ($context['folder'] != 'sent') |
|
424 | - echo '(', $txt['pm_undisclosed_recipients'], ')'; |
|
451 | + elseif ($context['folder'] != 'sent') { |
|
452 | + echo '(', $txt['pm_undisclosed_recipients'], ')'; |
|
453 | + } |
|
425 | 454 | |
426 | 455 | echo ' |
427 | 456 | <strong> ', $txt['on'], ':</strong> ', $message['time'], ' » |
428 | 457 | </span>'; |
429 | 458 | |
430 | 459 | // If we're in the sent items, show who it was sent to besides the "To:" people. |
431 | - if (!empty($message['recipients']['bcc'])) |
|
432 | - echo '<br> |
|
460 | + if (!empty($message['recipients']['bcc'])) { |
|
461 | + echo '<br> |
|
433 | 462 | <span class="smalltext">« <strong> ', $txt['pm_bcc'], ':</strong> ', implode(', ', $message['recipients']['bcc']), ' »</span>'; |
463 | + } |
|
434 | 464 | |
435 | - if (!empty($message['is_replied_to'])) |
|
436 | - echo '<br> |
|
465 | + if (!empty($message['is_replied_to'])) { |
|
466 | + echo '<br> |
|
437 | 467 | <span class="smalltext">« ', $context['folder'] == 'sent' ? $txt['pm_sent_is_replied_to'] : $txt['pm_is_replied_to'], ' »</span>'; |
468 | + } |
|
438 | 469 | |
439 | 470 | echo ' |
440 | 471 | </div><!-- .keyinfo --> |
@@ -444,13 +475,15 @@ discard block |
||
444 | 475 | ', $message['body'], ' |
445 | 476 | </div>'; |
446 | 477 | |
447 | - if ($message['can_report'] || $context['can_send_pm']) |
|
448 | - echo ' |
|
478 | + if ($message['can_report'] || $context['can_send_pm']) { |
|
479 | + echo ' |
|
449 | 480 | <div class="under_message">'; |
481 | + } |
|
450 | 482 | |
451 | - if ($message['can_report']) |
|
452 | - echo ' |
|
483 | + if ($message['can_report']) { |
|
484 | + echo ' |
|
453 | 485 | <a href="' . $scripturl . '?action=pm;sa=report;l=' . $context['current_label_id'] . ';pmsg=' . $message['id'] . '" class="floatright">' . $txt['pm_report_to_admin'] . '</a>'; |
486 | + } |
|
454 | 487 | |
455 | 488 | echo ' |
456 | 489 | <ul class="quickbuttons">'; |
@@ -462,32 +495,36 @@ discard block |
||
462 | 495 | if (!$message['member']['is_guest']) |
463 | 496 | { |
464 | 497 | // Is there than more than one recipient you can reply to? |
465 | - if ($message['number_recipients'] > 1) |
|
466 | - echo ' |
|
498 | + if ($message['number_recipients'] > 1) { |
|
499 | + echo ' |
|
467 | 500 | <li><a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote;u=all"><span class="generic_icons reply_all_button"></span>', $txt['reply_to_all'], '</a></li>'; |
501 | + } |
|
468 | 502 | |
469 | 503 | echo ' |
470 | 504 | <li><a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';u=', $message['member']['id'], '"><span class="generic_icons reply_button"></span>', $txt['reply'], '</a></li> |
471 | 505 | <li><a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote', $context['folder'] == 'sent' ? '' : ';u=' . $message['member']['id'], '"><span class="generic_icons quote"></span>', $txt['quote_action'], '</a></li>'; |
472 | 506 | } |
473 | 507 | // This is for "forwarding" - even if the member is gone. |
474 | - else |
|
475 | - echo ' |
|
508 | + else { |
|
509 | + echo ' |
|
476 | 510 | <li><a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote"><span class="generic_icons quote"></span>', $txt['reply_quote'], '</a></li>'; |
511 | + } |
|
477 | 512 | } |
478 | 513 | echo ' |
479 | 514 | <li><a href="', $scripturl, '?action=pm;sa=pmactions;pm_actions%5b', $message['id'], '%5D=delete;f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';', $context['session_var'], '=', $context['session_id'], '" data-confirm="', addslashes($txt['remove_message_question']), '" class="you_sure"><span class="generic_icons remove_button"></span>', $txt['delete'], '</a></li>'; |
480 | 515 | |
481 | - if (empty($context['display_mode'])) |
|
482 | - echo ' |
|
516 | + if (empty($context['display_mode'])) { |
|
517 | + echo ' |
|
483 | 518 | <li><input type="checkbox" name="pms[]" id="deletedisplay', $message['id'], '" value="', $message['id'], '" onclick="document.getElementById(\'deletelisting', $message['id'], '\').checked = this.checked;"></li>'; |
519 | + } |
|
484 | 520 | |
485 | 521 | echo ' |
486 | 522 | </ul>'; |
487 | 523 | |
488 | - if ($message['can_report'] || $context['can_send_pm']) |
|
489 | - echo ' |
|
524 | + if ($message['can_report'] || $context['can_send_pm']) { |
|
525 | + echo ' |
|
490 | 526 | </div><!-- .under_message -->'; |
527 | + } |
|
491 | 528 | |
492 | 529 | // Are there any custom profile fields for above the signature? |
493 | 530 | if (!empty($message['custom_fields']['above_signature'])) |
@@ -496,9 +533,10 @@ discard block |
||
496 | 533 | <div class="custom_fields_above_signature"> |
497 | 534 | <ul class="nolist">'; |
498 | 535 | |
499 | - foreach ($message['custom_fields']['above_signature'] as $custom) |
|
500 | - echo ' |
|
536 | + foreach ($message['custom_fields']['above_signature'] as $custom) { |
|
537 | + echo ' |
|
501 | 538 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
539 | + } |
|
502 | 540 | |
503 | 541 | echo ' |
504 | 542 | </ul> |
@@ -506,11 +544,12 @@ discard block |
||
506 | 544 | } |
507 | 545 | |
508 | 546 | // Show the member's signature? |
509 | - if (!empty($message['member']['signature']) && empty($options['show_no_signatures']) && $context['signature_enabled']) |
|
510 | - echo ' |
|
547 | + if (!empty($message['member']['signature']) && empty($options['show_no_signatures']) && $context['signature_enabled']) { |
|
548 | + echo ' |
|
511 | 549 | <div class="signature"> |
512 | 550 | ', $message['member']['signature'], ' |
513 | 551 | </div>'; |
552 | + } |
|
514 | 553 | |
515 | 554 | // Are there any custom profile fields for below the signature? |
516 | 555 | if (!empty($message['custom_fields']['below_signature'])) |
@@ -519,9 +558,10 @@ discard block |
||
519 | 558 | <div class="custom_fields_below_signature"> |
520 | 559 | <ul class="nolist">'; |
521 | 560 | |
522 | - foreach ($message['custom_fields']['below_signature'] as $custom) |
|
523 | - echo ' |
|
561 | + foreach ($message['custom_fields']['below_signature'] as $custom) { |
|
562 | + echo ' |
|
524 | 563 | <li class="custom ', $custom['col_name'] ,'">', $custom['value'], '</li>'; |
564 | + } |
|
525 | 565 | |
526 | 566 | echo ' |
527 | 567 | </ul> |
@@ -548,10 +588,11 @@ discard block |
||
548 | 588 | echo ' |
549 | 589 | <option value="" disabled>', $txt['pm_msg_label_apply'], ':</option>'; |
550 | 590 | |
551 | - foreach ($context['labels'] as $label) |
|
552 | - if (!isset($message['labels'][$label['id']])) |
|
591 | + foreach ($context['labels'] as $label) { |
|
592 | + if (!isset($message['labels'][$label['id']])) |
|
553 | 593 | echo ' |
554 | 594 | <option value="', $label['id'], '">', $label['name'], '</option>'; |
595 | + } |
|
555 | 596 | } |
556 | 597 | |
557 | 598 | // ... and are there any that can be removed? |
@@ -560,9 +601,10 @@ discard block |
||
560 | 601 | echo ' |
561 | 602 | <option value="" disabled>', $txt['pm_msg_label_remove'], ':</option>'; |
562 | 603 | |
563 | - foreach ($message['labels'] as $label) |
|
564 | - echo ' |
|
604 | + foreach ($message['labels'] as $label) { |
|
605 | + echo ' |
|
565 | 606 | <option value="', $label['id'], '"> ', $label['name'], '</option>'; |
607 | + } |
|
566 | 608 | } |
567 | 609 | echo ' |
568 | 610 | </select> |
@@ -581,14 +623,15 @@ discard block |
||
581 | 623 | </div><!-- .windowbg -->'; |
582 | 624 | } |
583 | 625 | |
584 | - if (empty($context['display_mode'])) |
|
585 | - echo ' |
|
626 | + if (empty($context['display_mode'])) { |
|
627 | + echo ' |
|
586 | 628 | <div class="pagesection"> |
587 | 629 | <div class="floatleft">', $context['page_index'], '</div> |
588 | 630 | <div class="floatright"> |
589 | 631 | <input type="submit" name="del_selected" value="', $txt['quickmod_delete_selected'], '" onclick="if (!confirm(\'', $txt['delete_selected_confirm'], '\')) return false;" class="button"> |
590 | 632 | </div> |
591 | 633 | </div>'; |
634 | + } |
|
592 | 635 | |
593 | 636 | // Show a few buttons if we are in conversation mode and outputting the first message. |
594 | 637 | elseif ($context['display_mode'] == 2 && isset($context['conversation_buttons'])) |
@@ -648,11 +691,12 @@ discard block |
||
648 | 691 | </thead> |
649 | 692 | <tbody>'; |
650 | 693 | |
651 | - if (!$context['show_delete']) |
|
652 | - echo ' |
|
694 | + if (!$context['show_delete']) { |
|
695 | + echo ' |
|
653 | 696 | <tr class="windowbg"> |
654 | 697 | <td colspan="5">', $txt['pm_alert_none'], '</td> |
655 | 698 | </tr>'; |
699 | + } |
|
656 | 700 | |
657 | 701 | while ($message = $context['get_pmessage']('subject')) |
658 | 702 | { |
@@ -710,17 +754,19 @@ discard block |
||
710 | 754 | |
711 | 755 | foreach ($context['labels'] as $label) |
712 | 756 | { |
713 | - if ($label['id'] != $context['current_label_id']) |
|
714 | - echo ' |
|
757 | + if ($label['id'] != $context['current_label_id']) { |
|
758 | + echo ' |
|
715 | 759 | <option value="add_', $label['id'], '"> ', $label['name'], '</option>'; |
760 | + } |
|
716 | 761 | } |
717 | 762 | |
718 | 763 | echo ' |
719 | 764 | <option value="" disabled>', $txt['pm_msg_label_remove'], ':</option>'; |
720 | 765 | |
721 | - foreach ($context['labels'] as $label) |
|
722 | - echo ' |
|
766 | + foreach ($context['labels'] as $label) { |
|
767 | + echo ' |
|
723 | 768 | <option value="rem_', $label['id'], '"> ', $label['name'], '</option>'; |
769 | + } |
|
724 | 770 | |
725 | 771 | echo ' |
726 | 772 | </select> |
@@ -751,11 +797,12 @@ discard block |
||
751 | 797 | <h3 class="catbg">', $txt['pm_search_title'], '</h3> |
752 | 798 | </div>'; |
753 | 799 | |
754 | - if (!empty($context['search_errors'])) |
|
755 | - echo ' |
|
800 | + if (!empty($context['search_errors'])) { |
|
801 | + echo ' |
|
756 | 802 | <div class="errorbox"> |
757 | 803 | ', implode('<br>', $context['search_errors']['messages']), ' |
758 | 804 | </div>'; |
805 | + } |
|
759 | 806 | |
760 | 807 | |
761 | 808 | echo ' |
@@ -804,9 +851,10 @@ discard block |
||
804 | 851 | </dd> |
805 | 852 | </dl>'; |
806 | 853 | |
807 | - if (!$context['currently_using_labels']) |
|
808 | - echo ' |
|
854 | + if (!$context['currently_using_labels']) { |
|
855 | + echo ' |
|
809 | 856 | <input type="submit" name="pm_search" value="', $txt['pm_search_go'], '" class="button">'; |
857 | + } |
|
810 | 858 | |
811 | 859 | echo ' |
812 | 860 | <br class="clear_right"> |
@@ -827,12 +875,13 @@ discard block |
||
827 | 875 | <div id="advanced_panel_div"> |
828 | 876 | <ul id="searchLabelsExpand">'; |
829 | 877 | |
830 | - foreach ($context['search_labels'] as $label) |
|
831 | - echo ' |
|
878 | + foreach ($context['search_labels'] as $label) { |
|
879 | + echo ' |
|
832 | 880 | <li> |
833 | 881 | <label for="searchlabel_', $label['id'], '"><input type="checkbox" id="searchlabel_', $label['id'], '" name="searchlabel[', $label['id'], ']" value="', $label['id'], '"', $label['checked'] ? ' checked' : '', '> |
834 | 882 | ', $label['name'], '</label> |
835 | 883 | </li>'; |
884 | + } |
|
836 | 885 | |
837 | 886 | echo ' |
838 | 887 | </ul> |
@@ -894,8 +943,8 @@ discard block |
||
894 | 943 | </div>'; |
895 | 944 | |
896 | 945 | // Complete results? |
897 | - if (empty($context['search_params']['show_complete']) && !empty($context['personal_messages'])) |
|
898 | - echo ' |
|
946 | + if (empty($context['search_params']['show_complete']) && !empty($context['personal_messages'])) { |
|
947 | + echo ' |
|
899 | 948 | <table class="table_grid"> |
900 | 949 | <thead> |
901 | 950 | <tr class="title_bar"> |
@@ -905,6 +954,7 @@ discard block |
||
905 | 954 | </tr> |
906 | 955 | </thead> |
907 | 956 | <tbody>'; |
957 | + } |
|
908 | 958 | |
909 | 959 | // Print each message out... |
910 | 960 | foreach ($context['personal_messages'] as $message) |
@@ -924,12 +974,14 @@ discard block |
||
924 | 974 | |
925 | 975 | // Show the recipients. |
926 | 976 | // @todo This doesn't deal with the sent item searching quite right for bcc. |
927 | - if (!empty($message['recipients']['to'])) |
|
928 | - echo implode(', ', $message['recipients']['to']); |
|
977 | + if (!empty($message['recipients']['to'])) { |
|
978 | + echo implode(', ', $message['recipients']['to']); |
|
979 | + } |
|
929 | 980 | |
930 | 981 | // Otherwise, we're just going to say "some people"... |
931 | - elseif ($context['folder'] != 'sent') |
|
932 | - echo '(', $txt['pm_undisclosed_recipients'], ')'; |
|
982 | + elseif ($context['folder'] != 'sent') { |
|
983 | + echo '(', $txt['pm_undisclosed_recipients'], ')'; |
|
984 | + } |
|
933 | 985 | |
934 | 986 | echo ' |
935 | 987 | </h3> |
@@ -944,15 +996,17 @@ discard block |
||
944 | 996 | $reply_button = create_button('im_reply.png', 'reply', 'reply', 'class="centericon"'); |
945 | 997 | |
946 | 998 | // You can only reply if they are not a guest... |
947 | - if (!$message['member']['is_guest']) |
|
948 | - echo ' |
|
999 | + if (!$message['member']['is_guest']) { |
|
1000 | + echo ' |
|
949 | 1001 | <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote;u=', $context['folder'] == 'sent' ? '' : $message['member']['id'], '">', $quote_button , '</a>', $context['menu_separator'], ' |
950 | 1002 | <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';u=', $message['member']['id'], '">', $reply_button , '</a> ', $context['menu_separator']; |
1003 | + } |
|
951 | 1004 | |
952 | 1005 | // This is for "forwarding" - even if the member is gone. |
953 | - else |
|
954 | - echo ' |
|
1006 | + else { |
|
1007 | + echo ' |
|
955 | 1008 | <a href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote">', $quote_button , '</a>', $context['menu_separator']; |
1009 | + } |
|
956 | 1010 | } |
957 | 1011 | |
958 | 1012 | echo ' |
@@ -961,27 +1015,30 @@ discard block |
||
961 | 1015 | } |
962 | 1016 | // Otherwise just a simple list! |
963 | 1017 | // @todo No context at all of the search? |
964 | - else |
|
965 | - echo ' |
|
1018 | + else { |
|
1019 | + echo ' |
|
966 | 1020 | <tr class="windowbg"> |
967 | 1021 | <td>', $message['time'], '</td> |
968 | 1022 | <td>', $message['link'], '</td> |
969 | 1023 | <td>', $message['member']['link'], '</td> |
970 | 1024 | </tr>'; |
1025 | + } |
|
971 | 1026 | } |
972 | 1027 | |
973 | 1028 | // Finish off the page... |
974 | - if (empty($context['search_params']['show_complete']) && !empty($context['personal_messages'])) |
|
975 | - echo ' |
|
1029 | + if (empty($context['search_params']['show_complete']) && !empty($context['personal_messages'])) { |
|
1030 | + echo ' |
|
976 | 1031 | </tbody> |
977 | 1032 | </table>'; |
1033 | + } |
|
978 | 1034 | |
979 | 1035 | // No results? |
980 | - if (empty($context['personal_messages'])) |
|
981 | - echo ' |
|
1036 | + if (empty($context['personal_messages'])) { |
|
1037 | + echo ' |
|
982 | 1038 | <div class="windowbg"> |
983 | 1039 | <p class="centertext">', $txt['pm_search_none_found'], '</p> |
984 | 1040 | </div>'; |
1041 | + } |
|
985 | 1042 | |
986 | 1043 | echo ' |
987 | 1044 | <div class="pagesection"> |
@@ -1006,15 +1063,17 @@ discard block |
||
1006 | 1063 | </div> |
1007 | 1064 | <div class="windowbg">'; |
1008 | 1065 | |
1009 | - if (!empty($context['send_log']['sent'])) |
|
1010 | - foreach ($context['send_log']['sent'] as $log_entry) |
|
1066 | + if (!empty($context['send_log']['sent'])) { |
|
1067 | + foreach ($context['send_log']['sent'] as $log_entry) |
|
1011 | 1068 | echo ' |
1012 | 1069 | <span class="error">', $log_entry, '</span><br>'; |
1070 | + } |
|
1013 | 1071 | |
1014 | - if (!empty($context['send_log']['failed'])) |
|
1015 | - foreach ($context['send_log']['failed'] as $log_entry) |
|
1072 | + if (!empty($context['send_log']['failed'])) { |
|
1073 | + foreach ($context['send_log']['failed'] as $log_entry) |
|
1016 | 1074 | echo ' |
1017 | 1075 | <span class="error">', $log_entry, '</span><br>'; |
1076 | + } |
|
1018 | 1077 | |
1019 | 1078 | echo ' |
1020 | 1079 | </div> |
@@ -1062,12 +1121,13 @@ discard block |
||
1062 | 1121 | </dl> |
1063 | 1122 | </div>'; |
1064 | 1123 | |
1065 | - if (!empty($modSettings['drafts_pm_enabled'])) |
|
1066 | - echo ' |
|
1124 | + if (!empty($modSettings['drafts_pm_enabled'])) { |
|
1125 | + echo ' |
|
1067 | 1126 | <div id="draft_section" class="infobox"', isset($context['draft_saved']) ? '' : ' style="display: none;"', '>', |
1068 | 1127 | sprintf($txt['draft_pm_saved'], $scripturl . '?action=pm;sa=showpmdrafts'), ' |
1069 | 1128 | ', (!empty($modSettings['drafts_keep_days']) ? ' <strong>' . sprintf($txt['draft_save_warning'], $modSettings['drafts_keep_days']) . '</strong>' : ''), ' |
1070 | 1129 | </div>'; |
1130 | + } |
|
1071 | 1131 | |
1072 | 1132 | echo ' |
1073 | 1133 | <dl id="post_header">'; |
@@ -1133,22 +1193,24 @@ discard block |
||
1133 | 1193 | <dt><strong>', $txt['subject'], '</strong></dt> |
1134 | 1194 | <dd><strong>', $txt['draft_saved_on'], '</strong></dd>'; |
1135 | 1195 | |
1136 | - foreach ($context['drafts'] as $draft) |
|
1137 | - echo ' |
|
1196 | + foreach ($context['drafts'] as $draft) { |
|
1197 | + echo ' |
|
1138 | 1198 | <dt>', $draft['link'], '</dt> |
1139 | 1199 | <dd>', $draft['poster_time'], '</dd>'; |
1200 | + } |
|
1140 | 1201 | echo ' |
1141 | 1202 | </dl> |
1142 | 1203 | </div>'; |
1143 | 1204 | } |
1144 | 1205 | |
1145 | 1206 | // Require an image to be typed to save spamming? |
1146 | - if ($context['require_verification']) |
|
1147 | - echo ' |
|
1207 | + if ($context['require_verification']) { |
|
1208 | + echo ' |
|
1148 | 1209 | <div class="post_verification"> |
1149 | 1210 | <strong>', $txt['pm_visual_verification_label'], ':</strong> |
1150 | 1211 | ', template_control_verification($context['visual_verification_id'], 'all'), ' |
1151 | 1212 | </div>'; |
1213 | + } |
|
1152 | 1214 | |
1153 | 1215 | // Send, Preview, spellcheck buttons. |
1154 | 1216 | echo ' |
@@ -1266,8 +1328,8 @@ discard block |
||
1266 | 1328 | }'; |
1267 | 1329 | |
1268 | 1330 | // Code for showing and hiding drafts |
1269 | - if (!empty($context['drafts'])) |
|
1270 | - echo ' |
|
1331 | + if (!empty($context['drafts'])) { |
|
1332 | + echo ' |
|
1271 | 1333 | var oSwapDraftOptions = new smc_Toggle({ |
1272 | 1334 | bToggleEnabled: true, |
1273 | 1335 | bCurrentlyCollapsed: true, |
@@ -1289,13 +1351,14 @@ discard block |
||
1289 | 1351 | } |
1290 | 1352 | ] |
1291 | 1353 | });'; |
1354 | + } |
|
1292 | 1355 | |
1293 | 1356 | echo ' |
1294 | 1357 | </script>'; |
1295 | 1358 | |
1296 | 1359 | // Show the message you're replying to. |
1297 | - if ($context['reply']) |
|
1298 | - echo ' |
|
1360 | + if ($context['reply']) { |
|
1361 | + echo ' |
|
1299 | 1362 | <br><br> |
1300 | 1363 | <div class="cat_bar"> |
1301 | 1364 | <h3 class="catbg">', $txt['subject'], ': ', $context['quoted_message']['subject'], '</h3> |
@@ -1309,6 +1372,7 @@ discard block |
||
1309 | 1372 | ', $context['quoted_message']['body'], ' |
1310 | 1373 | </div> |
1311 | 1374 | <br class="clear">'; |
1375 | + } |
|
1312 | 1376 | |
1313 | 1377 | echo ' |
1314 | 1378 | <script> |
@@ -1320,23 +1384,25 @@ discard block |
||
1320 | 1384 | sToControlId: \'to_control\', |
1321 | 1385 | aToRecipients: ['; |
1322 | 1386 | |
1323 | - foreach ($context['recipients']['to'] as $i => $member) |
|
1324 | - echo ' |
|
1387 | + foreach ($context['recipients']['to'] as $i => $member) { |
|
1388 | + echo ' |
|
1325 | 1389 | { |
1326 | 1390 | sItemId: ', JavaScriptEscape($member['id']), ', |
1327 | 1391 | sItemName: ', JavaScriptEscape($member['name']), ' |
1328 | 1392 | }', $i == count($context['recipients']['to']) - 1 ? '' : ','; |
1393 | + } |
|
1329 | 1394 | |
1330 | 1395 | echo ' |
1331 | 1396 | ], |
1332 | 1397 | aBccRecipients: ['; |
1333 | 1398 | |
1334 | - foreach ($context['recipients']['bcc'] as $i => $member) |
|
1335 | - echo ' |
|
1399 | + foreach ($context['recipients']['bcc'] as $i => $member) { |
|
1400 | + echo ' |
|
1336 | 1401 | { |
1337 | 1402 | sItemId: ', JavaScriptEscape($member['id']), ', |
1338 | 1403 | sItemName: ', JavaScriptEscape($member['name']), ' |
1339 | 1404 | }', $i == count($context['recipients']['bcc']) - 1 ? '' : ','; |
1405 | + } |
|
1340 | 1406 | |
1341 | 1407 | echo ' |
1342 | 1408 | ], |
@@ -1425,26 +1491,28 @@ discard block |
||
1425 | 1491 | </th> |
1426 | 1492 | <th class="centertext table_icon">'; |
1427 | 1493 | |
1428 | - if (count($context['labels']) > 2) |
|
1429 | - echo ' |
|
1494 | + if (count($context['labels']) > 2) { |
|
1495 | + echo ' |
|
1430 | 1496 | <input type="checkbox" onclick="invertAll(this, this.form);">'; |
1497 | + } |
|
1431 | 1498 | |
1432 | 1499 | echo ' |
1433 | 1500 | </th> |
1434 | 1501 | </tr> |
1435 | 1502 | </thead> |
1436 | 1503 | <tbody>'; |
1437 | - if (count($context['labels']) < 2) |
|
1438 | - echo ' |
|
1504 | + if (count($context['labels']) < 2) { |
|
1505 | + echo ' |
|
1439 | 1506 | <tr class="windowbg"> |
1440 | 1507 | <td colspan="2">', $txt['pm_labels_no_exist'], '</td> |
1441 | 1508 | </tr>'; |
1442 | - else |
|
1509 | + } else |
|
1443 | 1510 | { |
1444 | 1511 | foreach ($context['labels'] as $label) |
1445 | 1512 | { |
1446 | - if ($label['id'] == -1) |
|
1447 | - continue; |
|
1513 | + if ($label['id'] == -1) { |
|
1514 | + continue; |
|
1515 | + } |
|
1448 | 1516 | |
1449 | 1517 | echo ' |
1450 | 1518 | <tr class="windowbg"> |
@@ -1459,12 +1527,13 @@ discard block |
||
1459 | 1527 | </tbody> |
1460 | 1528 | </table>'; |
1461 | 1529 | |
1462 | - if (!count($context['labels']) < 2) |
|
1463 | - echo ' |
|
1530 | + if (!count($context['labels']) < 2) { |
|
1531 | + echo ' |
|
1464 | 1532 | <div class="padding"> |
1465 | 1533 | <input type="submit" name="save" value="', $txt['save'], '" class="button"> |
1466 | 1534 | <input type="submit" name="delete" value="', $txt['quickmod_delete_selected'], '" data-confirm="', $txt['pm_labels_delete'] ,'" class="button you_sure"> |
1467 | 1535 | </div>'; |
1536 | + } |
|
1468 | 1537 | |
1469 | 1538 | echo ' |
1470 | 1539 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -1521,9 +1590,10 @@ discard block |
||
1521 | 1590 | <select name="id_admin"> |
1522 | 1591 | <option value="0">', $txt['pm_report_all_admins'], '</option>'; |
1523 | 1592 | |
1524 | - foreach ($context['admins'] as $id => $name) |
|
1525 | - echo ' |
|
1593 | + foreach ($context['admins'] as $id => $name) { |
|
1594 | + echo ' |
|
1526 | 1595 | <option value="', $id, '">', $name, '</option>'; |
1596 | + } |
|
1527 | 1597 | |
1528 | 1598 | echo ' |
1529 | 1599 | </select> |
@@ -1586,9 +1656,10 @@ discard block |
||
1586 | 1656 | </th> |
1587 | 1657 | <th class="centertext table_icon">'; |
1588 | 1658 | |
1589 | - if (!empty($context['rules'])) |
|
1590 | - echo ' |
|
1659 | + if (!empty($context['rules'])) { |
|
1660 | + echo ' |
|
1591 | 1661 | <input type="checkbox" onclick="invertAll(this, this.form);">'; |
1662 | + } |
|
1592 | 1663 | |
1593 | 1664 | echo ' |
1594 | 1665 | </th> |
@@ -1596,16 +1667,17 @@ discard block |
||
1596 | 1667 | </thead> |
1597 | 1668 | <tbody>'; |
1598 | 1669 | |
1599 | - if (empty($context['rules'])) |
|
1600 | - echo ' |
|
1670 | + if (empty($context['rules'])) { |
|
1671 | + echo ' |
|
1601 | 1672 | <tr class="windowbg"> |
1602 | 1673 | <td colspan="2"> |
1603 | 1674 | ', $txt['pm_rules_none'], ' |
1604 | 1675 | </td> |
1605 | 1676 | </tr>'; |
1677 | + } |
|
1606 | 1678 | |
1607 | - foreach ($context['rules'] as $rule) |
|
1608 | - echo ' |
|
1679 | + foreach ($context['rules'] as $rule) { |
|
1680 | + echo ' |
|
1609 | 1681 | <tr class="windowbg"> |
1610 | 1682 | <td> |
1611 | 1683 | <a href="', $scripturl, '?action=pm;sa=manrules;add;rid=', $rule['id'], '">', $rule['name'], '</a> |
@@ -1614,6 +1686,7 @@ discard block |
||
1614 | 1686 | <input type="checkbox" name="delrule[', $rule['id'], ']"> |
1615 | 1687 | </td> |
1616 | 1688 | </tr>'; |
1689 | + } |
|
1617 | 1690 | |
1618 | 1691 | echo ' |
1619 | 1692 | </tbody> |
@@ -1621,14 +1694,16 @@ discard block |
||
1621 | 1694 | <div class="righttext"> |
1622 | 1695 | <a class="button" href="', $scripturl, '?action=pm;sa=manrules;add;rid=0">', $txt['pm_add_rule'], '</a>'; |
1623 | 1696 | |
1624 | - if (!empty($context['rules'])) |
|
1625 | - echo ' |
|
1697 | + if (!empty($context['rules'])) { |
|
1698 | + echo ' |
|
1626 | 1699 | [<a href="', $scripturl, '?action=pm;sa=manrules;apply;', $context['session_var'], '=', $context['session_id'], '" onclick="return confirm(\'', $txt['pm_js_apply_rules_confirm'], '\');">', $txt['pm_apply_rules'], '</a>]'; |
1700 | + } |
|
1627 | 1701 | |
1628 | - if (!empty($context['rules'])) |
|
1629 | - echo ' |
|
1702 | + if (!empty($context['rules'])) { |
|
1703 | + echo ' |
|
1630 | 1704 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
1631 | 1705 | <input type="submit" name="delselected" value="', $txt['pm_delete_selected_rule'], '" data-confirm="', $txt['pm_js_delete_rule_confirm'] ,'" class="button smalltext you_sure">'; |
1706 | + } |
|
1632 | 1707 | |
1633 | 1708 | echo ' |
1634 | 1709 | </div> |
@@ -1650,14 +1725,16 @@ discard block |
||
1650 | 1725 | var groups = new Array() |
1651 | 1726 | var labels = new Array()'; |
1652 | 1727 | |
1653 | - foreach ($context['groups'] as $id => $title) |
|
1654 | - echo ' |
|
1728 | + foreach ($context['groups'] as $id => $title) { |
|
1729 | + echo ' |
|
1655 | 1730 | groups[', $id, '] = "', addslashes($title), '";'; |
1731 | + } |
|
1656 | 1732 | |
1657 | - foreach ($context['labels'] as $label) |
|
1658 | - if ($label['id'] != -1) |
|
1733 | + foreach ($context['labels'] as $label) { |
|
1734 | + if ($label['id'] != -1) |
|
1659 | 1735 | echo ' |
1660 | 1736 | labels[', ($label['id']), '] = "', addslashes($label['name']), '";'; |
1737 | + } |
|
1661 | 1738 | |
1662 | 1739 | echo ' |
1663 | 1740 | function addCriteriaOption() |
@@ -1672,8 +1749,9 @@ discard block |
||
1672 | 1749 | |
1673 | 1750 | setOuterHTML(document.getElementById("criteriaAddHere"), \'<br><select name="ruletype[\' + criteriaNum + \']" id="ruletype\' + criteriaNum + \'" onchange="updateRuleDef(\' + criteriaNum + \'); rebuildRuleDesc();"><option value="">', addslashes($txt['pm_rule_criteria_pick']), ':<\' + \'/option><option value="mid">', addslashes($txt['pm_rule_mid']), '<\' + \'/option><option value="gid">', addslashes($txt['pm_rule_gid']), '<\' + \'/option><option value="sub">', addslashes($txt['pm_rule_sub']), '<\' + \'/option><option value="msg">', addslashes($txt['pm_rule_msg']), '<\' + \'/option><option value="bud">', addslashes($txt['pm_rule_bud']), '<\' + \'/option><\' + \'/select> <span id="defdiv\' + criteriaNum + \'" style="display: none;"><input type="text" name="ruledef[\' + criteriaNum + \']" id="ruledef\' + criteriaNum + \'" onkeyup="rebuildRuleDesc();" value=""><\' + \'/span><span id="defseldiv\' + criteriaNum + \'" style="display: none;"><select name="ruledefgroup[\' + criteriaNum + \']" id="ruledefgroup\' + criteriaNum + \'" onchange="rebuildRuleDesc();"><option value="">', addslashes($txt['pm_rule_sel_group']), '<\' + \'/option>'; |
1674 | 1751 | |
1675 | - foreach ($context['groups'] as $id => $group) |
|
1676 | - echo '<option value="', $id, '">', strtr($group, array("'" => "\'")), '<\' + \'/option>'; |
|
1752 | + foreach ($context['groups'] as $id => $group) { |
|
1753 | + echo '<option value="', $id, '">', strtr($group, array("'" => "\'")), '<\' + \'/option>'; |
|
1754 | + } |
|
1677 | 1755 | |
1678 | 1756 | echo '<\' + \'/select><\' + \'/span><span id="criteriaAddHere"><\' + \'/span>\'); |
1679 | 1757 | } |
@@ -1690,9 +1768,10 @@ discard block |
||
1690 | 1768 | |
1691 | 1769 | setOuterHTML(document.getElementById("actionAddHere"), \'<br><select name="acttype[\' + actionNum + \']" id="acttype\' + actionNum + \'" onchange="updateActionDef(\' + actionNum + \'); rebuildRuleDesc();"><option value="">', addslashes($txt['pm_rule_sel_action']), ':<\' + \'/option><option value="lab">', addslashes($txt['pm_rule_label']), '<\' + \'/option><option value="del">', addslashes($txt['pm_rule_delete']), '<\' + \'/option><\' + \'/select> <span id="labdiv\' + actionNum + \'" style="display: none;"><select name="labdef[\' + actionNum + \']" id="labdef\' + actionNum + \'" onchange="rebuildRuleDesc();"><option value="">', addslashes($txt['pm_rule_sel_label']), '<\' + \'/option>'; |
1692 | 1770 | |
1693 | - foreach ($context['labels'] as $label) |
|
1694 | - if ($label['id'] != -1) |
|
1771 | + foreach ($context['labels'] as $label) { |
|
1772 | + if ($label['id'] != -1) |
|
1695 | 1773 | echo '<option value="', ($label['id']), '">', addslashes($label['name']), '<\' + \'/option>'; |
1774 | + } |
|
1696 | 1775 | |
1697 | 1776 | echo '<\' + \'/select><\' + \'/span><span id="actionAddHere"><\' + \'/span>\'); |
1698 | 1777 | } |
@@ -1806,19 +1885,20 @@ discard block |
||
1806 | 1885 | $isFirst = true; |
1807 | 1886 | foreach ($context['rule']['criteria'] as $k => $criteria) |
1808 | 1887 | { |
1809 | - if (!$isFirst && $criteria['t'] == '') |
|
1810 | - echo '<div id="removeonjs1">'; |
|
1811 | - |
|
1812 | - elseif (!$isFirst) |
|
1813 | - echo '<br>'; |
|
1888 | + if (!$isFirst && $criteria['t'] == '') { |
|
1889 | + echo '<div id="removeonjs1">'; |
|
1890 | + } elseif (!$isFirst) { |
|
1891 | + echo '<br>'; |
|
1892 | + } |
|
1814 | 1893 | |
1815 | 1894 | echo ' |
1816 | 1895 | <select name="ruletype[', $k, ']" id="ruletype', $k, '" onchange="updateRuleDef(', $k, '); rebuildRuleDesc();"> |
1817 | 1896 | <option value="">', $txt['pm_rule_criteria_pick'], ':</option>'; |
1818 | 1897 | |
1819 | - foreach (array('mid', 'gid', 'sub', 'msg', 'bud') as $cr) |
|
1820 | - echo ' |
|
1898 | + foreach (array('mid', 'gid', 'sub', 'msg', 'bud') as $cr) { |
|
1899 | + echo ' |
|
1821 | 1900 | <option value="', $cr, '"', $criteria['t'] == $cr ? ' selected' : '', '>', $txt['pm_rule_' . $cr], '</option>'; |
1901 | + } |
|
1822 | 1902 | |
1823 | 1903 | echo ' |
1824 | 1904 | </select> |
@@ -1829,19 +1909,20 @@ discard block |
||
1829 | 1909 | <select name="ruledefgroup[', $k, ']" id="ruledefgroup', $k, '" onchange="rebuildRuleDesc();"> |
1830 | 1910 | <option value="">', $txt['pm_rule_sel_group'], '</option>'; |
1831 | 1911 | |
1832 | - foreach ($context['groups'] as $id => $group) |
|
1833 | - echo ' |
|
1912 | + foreach ($context['groups'] as $id => $group) { |
|
1913 | + echo ' |
|
1834 | 1914 | <option value="', $id, '"', $criteria['t'] == 'gid' && $criteria['v'] == $id ? ' selected' : '', '>', $group, '</option>'; |
1915 | + } |
|
1835 | 1916 | echo ' |
1836 | 1917 | </select> |
1837 | 1918 | </span>'; |
1838 | 1919 | |
1839 | 1920 | // If this is the dummy we add a means to hide for non js users. |
1840 | - if ($isFirst) |
|
1841 | - $isFirst = false; |
|
1842 | - |
|
1843 | - elseif ($criteria['t'] == '') |
|
1844 | - echo '</div><!-- .removeonjs1 -->'; |
|
1921 | + if ($isFirst) { |
|
1922 | + $isFirst = false; |
|
1923 | + } elseif ($criteria['t'] == '') { |
|
1924 | + echo '</div><!-- .removeonjs1 -->'; |
|
1925 | + } |
|
1845 | 1926 | } |
1846 | 1927 | |
1847 | 1928 | echo ' |
@@ -1864,10 +1945,11 @@ discard block |
||
1864 | 1945 | $isFirst = true; |
1865 | 1946 | foreach ($context['rule']['actions'] as $k => $action) |
1866 | 1947 | { |
1867 | - if (!$isFirst && $action['t'] == '') |
|
1868 | - echo '<div id="removeonjs2">'; |
|
1869 | - elseif (!$isFirst) |
|
1870 | - echo '<br>'; |
|
1948 | + if (!$isFirst && $action['t'] == '') { |
|
1949 | + echo '<div id="removeonjs2">'; |
|
1950 | + } elseif (!$isFirst) { |
|
1951 | + echo '<br>'; |
|
1952 | + } |
|
1871 | 1953 | |
1872 | 1954 | echo ' |
1873 | 1955 | <select name="acttype[', $k, ']" id="acttype', $k, '" onchange="updateActionDef(', $k, '); rebuildRuleDesc();"> |
@@ -1879,20 +1961,21 @@ discard block |
||
1879 | 1961 | <select name="labdef[', $k, ']" id="labdef', $k, '" onchange="rebuildRuleDesc();"> |
1880 | 1962 | <option value="">', $txt['pm_rule_sel_label'], '</option>'; |
1881 | 1963 | |
1882 | - foreach ($context['labels'] as $label) |
|
1883 | - if ($label['id'] != -1) |
|
1964 | + foreach ($context['labels'] as $label) { |
|
1965 | + if ($label['id'] != -1) |
|
1884 | 1966 | echo ' |
1885 | 1967 | <option value="', ($label['id']), '"', $action['t'] == 'lab' && $action['v'] == $label['id'] ? ' selected' : '', '>', $label['name'], '</option>'; |
1968 | + } |
|
1886 | 1969 | |
1887 | 1970 | echo ' |
1888 | 1971 | </select> |
1889 | 1972 | </span>'; |
1890 | 1973 | |
1891 | - if ($isFirst) |
|
1892 | - $isFirst = false; |
|
1893 | - |
|
1894 | - elseif ($action['t'] == '') |
|
1895 | - echo '</div><!-- .removeonjs2 -->'; |
|
1974 | + if ($isFirst) { |
|
1975 | + $isFirst = false; |
|
1976 | + } elseif ($action['t'] == '') { |
|
1977 | + echo '</div><!-- .removeonjs2 -->'; |
|
1978 | + } |
|
1896 | 1979 | } |
1897 | 1980 | |
1898 | 1981 | echo ' |
@@ -1916,22 +1999,25 @@ discard block |
||
1916 | 1999 | echo ' |
1917 | 2000 | <script>'; |
1918 | 2001 | |
1919 | - foreach ($context['rule']['criteria'] as $k => $c) |
|
1920 | - echo ' |
|
2002 | + foreach ($context['rule']['criteria'] as $k => $c) { |
|
2003 | + echo ' |
|
1921 | 2004 | updateRuleDef(', $k, ');'; |
2005 | + } |
|
1922 | 2006 | |
1923 | - foreach ($context['rule']['actions'] as $k => $c) |
|
1924 | - echo ' |
|
2007 | + foreach ($context['rule']['actions'] as $k => $c) { |
|
2008 | + echo ' |
|
1925 | 2009 | updateActionDef(', $k, ');'; |
2010 | + } |
|
1926 | 2011 | |
1927 | 2012 | echo ' |
1928 | 2013 | rebuildRuleDesc();'; |
1929 | 2014 | |
1930 | 2015 | // If this isn't a new rule and we have JS enabled remove the JS compatibility stuff. |
1931 | - if ($context['rid']) |
|
1932 | - echo ' |
|
2016 | + if ($context['rid']) { |
|
2017 | + echo ' |
|
1933 | 2018 | document.getElementById("removeonjs1").style.display = "none"; |
1934 | 2019 | document.getElementById("removeonjs2").style.display = "none";'; |
2020 | + } |
|
1935 | 2021 | |
1936 | 2022 | echo ' |
1937 | 2023 | document.getElementById("addonjs1").style.display = ""; |
@@ -1959,12 +2045,12 @@ discard block |
||
1959 | 2045 | </div>'; |
1960 | 2046 | |
1961 | 2047 | // No drafts? Just show an informative message. |
1962 | - if (empty($context['drafts'])) |
|
1963 | - echo ' |
|
2048 | + if (empty($context['drafts'])) { |
|
2049 | + echo ' |
|
1964 | 2050 | <div class="windowbg2 centertext"> |
1965 | 2051 | ', $txt['draft_none'], ' |
1966 | 2052 | </div>'; |
1967 | - else |
|
2053 | + } else |
|
1968 | 2054 | { |
1969 | 2055 | // For every draft to be displayed, give it its own div, and show the important details of the draft. |
1970 | 2056 | foreach ($context['drafts'] as $draft) |
@@ -17,8 +17,9 @@ discard block |
||
17 | 17 | * @version 2.1 Beta 4 |
18 | 18 | */ |
19 | 19 | |
20 | -if (!defined('SMF')) |
|
20 | +if (!defined('SMF')) { |
|
21 | 21 | die('No direct access...'); |
22 | +} |
|
22 | 23 | |
23 | 24 | /** |
24 | 25 | * Attempt to start the session, unless it already has been. |
@@ -38,8 +39,9 @@ discard block |
||
38 | 39 | { |
39 | 40 | $parsed_url = parse_url($boardurl); |
40 | 41 | |
41 | - if (preg_match('~^\d{1,3}(\.\d{1,3}){3}$~', $parsed_url['host']) == 0 && preg_match('~(?:[^\.]+\.)?([^\.]{2,}\..+)\z~i', $parsed_url['host'], $parts) == 1) |
|
42 | - @ini_set('session.cookie_domain', '.' . $parts[1]); |
|
42 | + if (preg_match('~^\d{1,3}(\.\d{1,3}){3}$~', $parsed_url['host']) == 0 && preg_match('~(?:[^\.]+\.)?([^\.]{2,}\..+)\z~i', $parsed_url['host'], $parts) == 1) { |
|
43 | + @ini_set('session.cookie_domain', '.' . $parts[1]); |
|
44 | + } |
|
43 | 45 | } |
44 | 46 | // @todo Set the session cookie path? |
45 | 47 | |
@@ -47,8 +49,9 @@ discard block |
||
47 | 49 | if ((ini_get('session.auto_start') == 1 && !empty($modSettings['databaseSession_enable'])) || session_id() == '') |
48 | 50 | { |
49 | 51 | // Attempt to end the already-started session. |
50 | - if (ini_get('session.auto_start') == 1) |
|
51 | - session_write_close(); |
|
52 | + if (ini_get('session.auto_start') == 1) { |
|
53 | + session_write_close(); |
|
54 | + } |
|
52 | 55 | |
53 | 56 | // This is here to stop people from using bad junky PHPSESSIDs. |
54 | 57 | if (isset($_REQUEST[session_name()]) && preg_match('~^[A-Za-z0-9,-]{16,64}$~', $_REQUEST[session_name()]) == 0 && !isset($_COOKIE[session_name()])) |
@@ -63,23 +66,26 @@ discard block |
||
63 | 66 | if (!empty($modSettings['databaseSession_enable'])) |
64 | 67 | { |
65 | 68 | @ini_set('session.serialize_handler', 'php_serialize'); |
66 | - if (ini_get('session.serialize_handler') != 'php_serialize') |
|
67 | - @ini_set('session.serialize_handler', 'php'); |
|
69 | + if (ini_get('session.serialize_handler') != 'php_serialize') { |
|
70 | + @ini_set('session.serialize_handler', 'php'); |
|
71 | + } |
|
68 | 72 | session_set_save_handler('sessionOpen', 'sessionClose', 'sessionRead', 'sessionWrite', 'sessionDestroy', 'sessionGC'); |
69 | 73 | @ini_set('session.gc_probability', '1'); |
74 | + } elseif (ini_get('session.gc_maxlifetime') <= 1440 && !empty($modSettings['databaseSession_lifetime'])) { |
|
75 | + @ini_set('session.gc_maxlifetime', max($modSettings['databaseSession_lifetime'], 60)); |
|
70 | 76 | } |
71 | - elseif (ini_get('session.gc_maxlifetime') <= 1440 && !empty($modSettings['databaseSession_lifetime'])) |
|
72 | - @ini_set('session.gc_maxlifetime', max($modSettings['databaseSession_lifetime'], 60)); |
|
73 | 77 | |
74 | 78 | // Use cache setting sessions? |
75 | - if (empty($modSettings['databaseSession_enable']) && !empty($modSettings['cache_enable']) && php_sapi_name() != 'cli') |
|
76 | - call_integration_hook('integrate_session_handlers'); |
|
79 | + if (empty($modSettings['databaseSession_enable']) && !empty($modSettings['cache_enable']) && php_sapi_name() != 'cli') { |
|
80 | + call_integration_hook('integrate_session_handlers'); |
|
81 | + } |
|
77 | 82 | |
78 | 83 | session_start(); |
79 | 84 | |
80 | 85 | // Change it so the cache settings are a little looser than default. |
81 | - if (!empty($modSettings['databaseSession_loose'])) |
|
82 | - header('cache-control: private'); |
|
86 | + if (!empty($modSettings['databaseSession_loose'])) { |
|
87 | + header('cache-control: private'); |
|
88 | + } |
|
83 | 89 | } |
84 | 90 | |
85 | 91 | // Set the randomly generated code. |
@@ -125,8 +131,9 @@ discard block |
||
125 | 131 | { |
126 | 132 | global $smcFunc; |
127 | 133 | |
128 | - if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) |
|
129 | - return ''; |
|
134 | + if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) { |
|
135 | + return ''; |
|
136 | + } |
|
130 | 137 | |
131 | 138 | // Look for it in the database. |
132 | 139 | $result = $smcFunc['db_query']('', ' |
@@ -155,8 +162,9 @@ discard block |
||
155 | 162 | { |
156 | 163 | global $smcFunc, $db_connection, $db_server, $db_name, $db_user, $db_passwd, $db_prefix, $db_persist, $db_port; |
157 | 164 | |
158 | - if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) |
|
159 | - return false; |
|
165 | + if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) { |
|
166 | + return false; |
|
167 | + } |
|
160 | 168 | |
161 | 169 | // php < 7.0 need this |
162 | 170 | if (empty($db_connection)) |
@@ -164,8 +172,9 @@ discard block |
||
164 | 172 | $db_options = array(); |
165 | 173 | |
166 | 174 | // Add in the port if needed |
167 | - if (!empty($db_port)) |
|
168 | - $db_options['port'] = $db_port; |
|
175 | + if (!empty($db_port)) { |
|
176 | + $db_options['port'] = $db_port; |
|
177 | + } |
|
169 | 178 | $options = array_merge($db_options, array('persist' => $db_persist, 'dont_select_db' => SMF == 'SSI')); |
170 | 179 | |
171 | 180 | $db_connection = smf_db_initiate($db_server, $db_name, $db_user, $db_passwd, $db_prefix, $options); |
@@ -184,13 +193,14 @@ discard block |
||
184 | 193 | ); |
185 | 194 | |
186 | 195 | // If that didn't work, try inserting a new one. |
187 | - if ($smcFunc['db_affected_rows']() == 0) |
|
188 | - $smcFunc['db_insert']('ignore', |
|
196 | + if ($smcFunc['db_affected_rows']() == 0) { |
|
197 | + $smcFunc['db_insert']('ignore', |
|
189 | 198 | '{db_prefix}sessions', |
190 | 199 | array('session_id' => 'string', 'data' => 'string', 'last_update' => 'int'), |
191 | 200 | array($session_id, $data, time()), |
192 | 201 | array('session_id') |
193 | 202 | ); |
203 | + } |
|
194 | 204 | |
195 | 205 | return ($smcFunc['db_affected_rows']() == 0 ? false : true); |
196 | 206 | } |
@@ -205,8 +215,9 @@ discard block |
||
205 | 215 | { |
206 | 216 | global $smcFunc; |
207 | 217 | |
208 | - if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) |
|
209 | - return false; |
|
218 | + if (preg_match('~^[A-Za-z0-9,-]{16,64}$~', $session_id) == 0) { |
|
219 | + return false; |
|
220 | + } |
|
210 | 221 | |
211 | 222 | // Just delete the row... |
212 | 223 | $smcFunc['db_query']('', ' |
@@ -232,8 +243,9 @@ discard block |
||
232 | 243 | global $modSettings, $smcFunc; |
233 | 244 | |
234 | 245 | // Just set to the default or lower? Ignore it for a higher value. (hopefully) |
235 | - if (!empty($modSettings['databaseSession_lifetime']) && ($max_lifetime <= 1440 || $modSettings['databaseSession_lifetime'] > $max_lifetime)) |
|
236 | - $max_lifetime = max($modSettings['databaseSession_lifetime'], 60); |
|
246 | + if (!empty($modSettings['databaseSession_lifetime']) && ($max_lifetime <= 1440 || $modSettings['databaseSession_lifetime'] > $max_lifetime)) { |
|
247 | + $max_lifetime = max($modSettings['databaseSession_lifetime'], 60); |
|
248 | + } |
|
237 | 249 | |
238 | 250 | // Clean up after yerself ;). |
239 | 251 | $smcFunc['db_query']('', ' |
@@ -140,7 +140,7 @@ |
||
140 | 140 | $max_age = $time - $cached['time'] + (5 * 86400); |
141 | 141 | header('content-type: ' . $cached['content_type']); |
142 | 142 | header('content-length: ' . $cached['size']); |
143 | - header('cache-control: public, max-age=' . $max_age ); |
|
143 | + header('cache-control: public, max-age=' . $max_age); |
|
144 | 144 | header('last-modified: ' . gmdate('D, d M Y H:i:s', $cached['time']) . ' GMT'); |
145 | 145 | header('etag: ' . $eTag); |
146 | 146 | echo base64_decode($cached['body']); |
@@ -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 | define('SMF', 'proxy'); |
18 | +} |
|
18 | 19 | |
19 | 20 | global $proxyhousekeeping; |
20 | 21 | |
@@ -68,33 +69,38 @@ discard block |
||
68 | 69 | */ |
69 | 70 | public function checkRequest() |
70 | 71 | { |
71 | - if (!$this->enabled) |
|
72 | - return false; |
|
72 | + if (!$this->enabled) { |
|
73 | + return false; |
|
74 | + } |
|
73 | 75 | |
74 | 76 | // Try to create the image cache directory if it doesn't exist |
75 | - if (!file_exists($this->cache)) |
|
76 | - if (!mkdir($this->cache) || !copy(dirname($this->cache) . '/index.php', $this->cache . '/index.php')) |
|
77 | + if (!file_exists($this->cache)) { |
|
78 | + if (!mkdir($this->cache) || !copy(dirname($this->cache) . '/index.php', $this->cache . '/index.php')) |
|
77 | 79 | return false; |
80 | + } |
|
78 | 81 | |
79 | 82 | // Basic sanity check |
80 | 83 | $_GET['request'] = validate_iri($_GET['request']); |
81 | 84 | |
82 | 85 | // We aren't going anywhere without these |
83 | - if (empty($_GET['hash']) || empty($_GET['request'])) |
|
84 | - return false; |
|
86 | + if (empty($_GET['hash']) || empty($_GET['request'])) { |
|
87 | + return false; |
|
88 | + } |
|
85 | 89 | |
86 | 90 | $hash = $_GET['hash']; |
87 | 91 | $request = $_GET['request']; |
88 | 92 | |
89 | - if (md5($request . $this->secret) != $hash) |
|
90 | - return false; |
|
93 | + if (md5($request . $this->secret) != $hash) { |
|
94 | + return false; |
|
95 | + } |
|
91 | 96 | |
92 | 97 | // Ensure any non-ASCII characters in the URL are encoded correctly |
93 | 98 | $request = iri_to_url($request); |
94 | 99 | |
95 | 100 | // Attempt to cache the request if it doesn't exist |
96 | - if (!$this->isCached($request)) |
|
97 | - return $this->cacheImage($request); |
|
101 | + if (!$this->isCached($request)) { |
|
102 | + return $this->cacheImage($request); |
|
103 | + } |
|
98 | 104 | |
99 | 105 | return true; |
100 | 106 | } |
@@ -131,8 +137,9 @@ discard block |
||
131 | 137 | if (!$cached || $time - $cached['time'] > ($this->maxDays * 86400)) |
132 | 138 | { |
133 | 139 | @unlink($cached_file); |
134 | - if ($this->checkRequest()) |
|
135 | - $this->serve(); |
|
140 | + if ($this->checkRequest()) { |
|
141 | + $this->serve(); |
|
142 | + } |
|
136 | 143 | $this::redirectexit($request); |
137 | 144 | } |
138 | 145 | |
@@ -145,8 +152,9 @@ discard block |
||
145 | 152 | |
146 | 153 | // Make sure we're serving an image |
147 | 154 | $contentParts = explode('/', !empty($cached['content_type']) ? $cached['content_type'] : ''); |
148 | - if ($contentParts[0] != 'image') |
|
149 | - exit; |
|
155 | + if ($contentParts[0] != 'image') { |
|
156 | + exit; |
|
157 | + } |
|
150 | 158 | |
151 | 159 | $max_age = $time - $cached['time'] + (5 * 86400); |
152 | 160 | header('content-type: ' . $cached['content_type']); |
@@ -196,25 +204,29 @@ discard block |
||
196 | 204 | $image = fetch_web_data($request); |
197 | 205 | |
198 | 206 | // Looks like nobody was home |
199 | - if (empty($image)) |
|
200 | - return -1; |
|
207 | + if (empty($image)) { |
|
208 | + return -1; |
|
209 | + } |
|
201 | 210 | |
202 | 211 | // What kind of file did they give us? |
203 | 212 | $finfo = finfo_open(FILEINFO_MIME_TYPE); |
204 | 213 | $mime_type = finfo_buffer($finfo, $image); |
205 | 214 | |
206 | 215 | // SVG needs a little extra care |
207 | - if ($ext == 'svg' && $mime_type == 'text/plain') |
|
208 | - $mime_type = 'image/svg+xml'; |
|
216 | + if ($ext == 'svg' && $mime_type == 'text/plain') { |
|
217 | + $mime_type = 'image/svg+xml'; |
|
218 | + } |
|
209 | 219 | |
210 | 220 | // Make sure the url is returning an image |
211 | - if (strpos($mime_type, 'image/') !== 0) |
|
212 | - return -1; |
|
221 | + if (strpos($mime_type, 'image/') !== 0) { |
|
222 | + return -1; |
|
223 | + } |
|
213 | 224 | |
214 | 225 | // Validate the filesize |
215 | 226 | $size = strlen($image); |
216 | - if ($size > ($this->maxSize * 1024)) |
|
217 | - return 0; |
|
227 | + if ($size > ($this->maxSize * 1024)) { |
|
228 | + return 0; |
|
229 | + } |
|
218 | 230 | |
219 | 231 | // Cache it for later |
220 | 232 | return file_put_contents($dest, json_encode(array( |
@@ -464,7 +464,7 @@ discard block |
||
464 | 464 | $fields = ''; |
465 | 465 | foreach ($context['print_custom_fields']['below_signature'] as $field) |
466 | 466 | if (!empty($field['output_html'])) |
467 | - $fields .= ' |
|
467 | + $fields .= ' |
|
468 | 468 | <li>' . $field['output_html'] . '</li>'; |
469 | 469 | |
470 | 470 | if (!empty($fields)) |
@@ -3106,8 +3106,7 @@ discard block |
||
3106 | 3106 | <div class="roundframe"> |
3107 | 3107 | <div> |
3108 | 3108 | ', !empty($context['tfa_backup']) ? ' |
3109 | - <div class="smalltext error">' . $txt['tfa_backup_used_desc'] . '</div>' : |
|
3110 | - ($modSettings['tfa_mode'] == 2 ? ' |
|
3109 | + <div class="smalltext error">' . $txt['tfa_backup_used_desc'] . '</div>' : ($modSettings['tfa_mode'] == 2 ? ' |
|
3111 | 3110 | <div class="smalltext"><strong>' . $txt['tfa_forced_desc'] . '</strong></div>' : ''), ' |
3112 | 3111 | <div class="smalltext">', $txt['tfa_desc'], '</div> |
3113 | 3112 | <div class="floatleft"> |
@@ -18,23 +18,25 @@ discard block |
||
18 | 18 | global $context; |
19 | 19 | |
20 | 20 | // Prevent Chrome from auto completing fields when viewing/editing other members profiles |
21 | - if (isBrowser('is_chrome') && !$context['user']['is_owner']) |
|
22 | - echo ' |
|
21 | + if (isBrowser('is_chrome') && !$context['user']['is_owner']) { |
|
22 | + echo ' |
|
23 | 23 | <script> |
24 | 24 | disableAutoComplete(); |
25 | 25 | </script>'; |
26 | + } |
|
26 | 27 | |
27 | 28 | // If an error occurred while trying to save previously, give the user a clue! |
28 | 29 | echo ' |
29 | 30 | ', template_error_message(); |
30 | 31 | |
31 | 32 | // If the profile was update successfully, let the user know this. |
32 | - if (!empty($context['profile_updated'])) |
|
33 | - echo ' |
|
33 | + if (!empty($context['profile_updated'])) { |
|
34 | + echo ' |
|
34 | 35 | <div class="infobox"> |
35 | 36 | ', $context['profile_updated'], ' |
36 | 37 | </div>'; |
37 | -} |
|
38 | + } |
|
39 | + } |
|
38 | 40 | |
39 | 41 | /** |
40 | 42 | * Template for any HTML needed below the profile (closing off divs/tables, etc.) |
@@ -99,19 +101,19 @@ discard block |
||
99 | 101 | </div> |
100 | 102 | <div class="alerts_unread">'; |
101 | 103 | |
102 | - if (empty($context['unread_alerts'])) |
|
103 | - template_alerts_all_read(); |
|
104 | - |
|
105 | - else |
|
104 | + if (empty($context['unread_alerts'])) { |
|
105 | + template_alerts_all_read(); |
|
106 | + } else |
|
106 | 107 | { |
107 | - foreach ($context['unread_alerts'] as $id_alert => $details) |
|
108 | - echo ' |
|
108 | + foreach ($context['unread_alerts'] as $id_alert => $details) { |
|
109 | + echo ' |
|
109 | 110 | <div class="unread"> |
110 | 111 | ', !empty($details['sender']) ? $details['sender']['avatar']['image'] : '', ' |
111 | 112 | <div class="details"> |
112 | 113 | ', !empty($details['icon']) ? $details['icon'] : '', '<span>', $details['text'], '</span> - ', $details['time'], ' |
113 | 114 | </div> |
114 | 115 | </div>'; |
116 | + } |
|
115 | 117 | } |
116 | 118 | |
117 | 119 | echo ' |
@@ -158,37 +160,41 @@ discard block |
||
158 | 160 | if (!empty($context['print_custom_fields']['above_member'])) |
159 | 161 | { |
160 | 162 | $fields = ''; |
161 | - foreach ($context['print_custom_fields']['above_member'] as $field) |
|
162 | - if (!empty($field['output_html'])) |
|
163 | + foreach ($context['print_custom_fields']['above_member'] as $field) { |
|
164 | + if (!empty($field['output_html'])) |
|
163 | 165 | $fields .= ' |
164 | 166 | <li>' . $field['output_html'] . '</li>'; |
167 | + } |
|
165 | 168 | |
166 | - if (!empty($fields)) |
|
167 | - echo ' |
|
169 | + if (!empty($fields)) { |
|
170 | + echo ' |
|
168 | 171 | <div class="custom_fields_above_name"> |
169 | 172 | <ul>', $fields, ' |
170 | 173 | </ul> |
171 | 174 | </div>'; |
175 | + } |
|
172 | 176 | } |
173 | 177 | |
174 | 178 | echo ' |
175 | 179 | <div class="username clear"> |
176 | 180 | <h4>'; |
177 | 181 | |
178 | - if (!empty($context['print_custom_fields']['before_member'])) |
|
179 | - foreach ($context['print_custom_fields']['before_member'] as $field) |
|
182 | + if (!empty($context['print_custom_fields']['before_member'])) { |
|
183 | + foreach ($context['print_custom_fields']['before_member'] as $field) |
|
180 | 184 | if (!empty($field['output_html'])) |
181 | 185 | echo ' |
182 | 186 | <span>', $field['output_html'], '</span>'; |
187 | + } |
|
183 | 188 | |
184 | 189 | echo ' |
185 | 190 | ', $context['member']['name']; |
186 | 191 | |
187 | - if (!empty($context['print_custom_fields']['after_member'])) |
|
188 | - foreach ($context['print_custom_fields']['after_member'] as $field) |
|
192 | + if (!empty($context['print_custom_fields']['after_member'])) { |
|
193 | + foreach ($context['print_custom_fields']['after_member'] as $field) |
|
189 | 194 | if (!empty($field['output_html'])) |
190 | 195 | echo ' |
191 | 196 | <span>', $field['output_html'], '</span>'; |
197 | + } |
|
192 | 198 | |
193 | 199 | |
194 | 200 | echo ' |
@@ -201,39 +207,44 @@ discard block |
||
201 | 207 | if (!empty($context['print_custom_fields']['below_avatar'])) |
202 | 208 | { |
203 | 209 | $fields = ''; |
204 | - foreach ($context['print_custom_fields']['below_avatar'] as $field) |
|
205 | - if (!empty($field['output_html'])) |
|
210 | + foreach ($context['print_custom_fields']['below_avatar'] as $field) { |
|
211 | + if (!empty($field['output_html'])) |
|
206 | 212 | $fields .= ' |
207 | 213 | <li>' . $field['output_html'] . '</li>'; |
214 | + } |
|
208 | 215 | |
209 | - if (!empty($fields)) |
|
210 | - echo ' |
|
216 | + if (!empty($fields)) { |
|
217 | + echo ' |
|
211 | 218 | <div class="custom_fields_below_avatar"> |
212 | 219 | <ul>', $fields, ' |
213 | 220 | </ul> |
214 | 221 | </div>'; |
222 | + } |
|
215 | 223 | } |
216 | 224 | |
217 | 225 | echo ' |
218 | 226 | <ul class="icon_fields clear">'; |
219 | 227 | |
220 | 228 | // Email is only visible if it's your profile or you have the moderate_forum permission |
221 | - if ($context['member']['show_email']) |
|
222 | - echo ' |
|
229 | + if ($context['member']['show_email']) { |
|
230 | + echo ' |
|
223 | 231 | <li><a href="mailto:', $context['member']['email'], '" title="', $context['member']['email'], '" rel="nofollow"><span class="generic_icons mail" title="' . $txt['email'] . '"></span></a></li>'; |
232 | + } |
|
224 | 233 | |
225 | 234 | // Don't show an icon if they haven't specified a website. |
226 | - if ($context['member']['website']['url'] !== '' && !isset($context['disabled_fields']['website'])) |
|
227 | - echo ' |
|
235 | + if ($context['member']['website']['url'] !== '' && !isset($context['disabled_fields']['website'])) { |
|
236 | + echo ' |
|
228 | 237 | <li><a href="', $context['member']['website']['url'], '" title="' . $context['member']['website']['title'] . '" target="_blank" rel="noopener">', ($settings['use_image_buttons'] ? '<span class="generic_icons www" title="' . $context['member']['website']['title'] . '"></span>' : $txt['www']), '</a></li>'; |
238 | + } |
|
229 | 239 | |
230 | 240 | // Are there any custom profile fields as icons? |
231 | 241 | if (!empty($context['print_custom_fields']['icons'])) |
232 | 242 | { |
233 | - foreach ($context['print_custom_fields']['icons'] as $field) |
|
234 | - if (!empty($field['output_html'])) |
|
243 | + foreach ($context['print_custom_fields']['icons'] as $field) { |
|
244 | + if (!empty($field['output_html'])) |
|
235 | 245 | echo ' |
236 | 246 | <li class="custom_field">', $field['output_html'], '</li>'; |
247 | + } |
|
237 | 248 | } |
238 | 249 | |
239 | 250 | echo ' |
@@ -242,24 +253,27 @@ discard block |
||
242 | 253 | ', $context['can_send_pm'] ? '<a href="' . $context['member']['online']['href'] . '" title="' . $context['member']['online']['text'] . '" rel="nofollow">' : '', $settings['use_image_buttons'] ? '<span class="' . ($context['member']['online']['is_online'] == 1 ? 'on' : 'off') . '" title="' . $context['member']['online']['text'] . '"></span>' : $context['member']['online']['label'], $context['can_send_pm'] ? '</a>' : '', $settings['use_image_buttons'] ? '<span class="smalltext"> ' . $context['member']['online']['label'] . '</span>' : ''; |
243 | 254 | |
244 | 255 | // Can they add this member as a buddy? |
245 | - if (!empty($context['can_have_buddy']) && !$context['user']['is_owner']) |
|
246 | - echo ' |
|
256 | + if (!empty($context['can_have_buddy']) && !$context['user']['is_owner']) { |
|
257 | + echo ' |
|
247 | 258 | <br> |
248 | 259 | <a href="', $scripturl, '?action=buddy;u=', $context['id_member'], ';', $context['session_var'], '=', $context['session_id'], '">[', $txt['buddy_' . ($context['member']['is_buddy'] ? 'remove' : 'add')], ']</a>'; |
260 | + } |
|
249 | 261 | |
250 | 262 | echo ' |
251 | 263 | </span>'; |
252 | 264 | |
253 | - if (!$context['user']['is_owner'] && $context['can_send_pm']) |
|
254 | - echo ' |
|
265 | + if (!$context['user']['is_owner'] && $context['can_send_pm']) { |
|
266 | + echo ' |
|
255 | 267 | <a href="', $scripturl, '?action=pm;sa=send;u=', $context['id_member'], '" class="infolinks">', $txt['profile_sendpm_short'], '</a>'; |
268 | + } |
|
256 | 269 | |
257 | 270 | echo ' |
258 | 271 | <a href="', $scripturl, '?action=profile;area=showposts;u=', $context['id_member'], '" class="infolinks">', $txt['showPosts'], '</a>'; |
259 | 272 | |
260 | - if ($context['user']['is_owner'] && !empty($modSettings['drafts_post_enabled'])) |
|
261 | - echo ' |
|
273 | + if ($context['user']['is_owner'] && !empty($modSettings['drafts_post_enabled'])) { |
|
274 | + echo ' |
|
262 | 275 | <a href="', $scripturl, '?action=profile;area=showdrafts;u=', $context['id_member'], '" class="infolinks">', $txt['drafts_show'], '</a>'; |
276 | + } |
|
263 | 277 | |
264 | 278 | echo ' |
265 | 279 | <a href="', $scripturl, '?action=profile;area=statistics;u=', $context['id_member'], '" class="infolinks">', $txt['statPanel'], '</a>'; |
@@ -268,17 +282,19 @@ discard block |
||
268 | 282 | if (!empty($context['print_custom_fields']['bottom_poster'])) |
269 | 283 | { |
270 | 284 | $fields = ''; |
271 | - foreach ($context['print_custom_fields']['bottom_poster'] as $field) |
|
272 | - if (!empty($field['output_html'])) |
|
285 | + foreach ($context['print_custom_fields']['bottom_poster'] as $field) { |
|
286 | + if (!empty($field['output_html'])) |
|
273 | 287 | $fields .= ' |
274 | 288 | <li>' . $field['output_html'] . '</li>'; |
289 | + } |
|
275 | 290 | |
276 | - if (!empty($fields)) |
|
277 | - echo ' |
|
291 | + if (!empty($fields)) { |
|
292 | + echo ' |
|
278 | 293 | <div class="custom_fields_bottom"> |
279 | 294 | <ul class="nolist">', $fields, ' |
280 | 295 | </ul> |
281 | 296 | </div>'; |
297 | + } |
|
282 | 298 | } |
283 | 299 | |
284 | 300 | echo ' |
@@ -287,30 +303,35 @@ discard block |
||
287 | 303 | <div id="detailedinfo"> |
288 | 304 | <dl class="settings">'; |
289 | 305 | |
290 | - if ($context['user']['is_owner'] || $context['user']['is_admin']) |
|
291 | - echo ' |
|
306 | + if ($context['user']['is_owner'] || $context['user']['is_admin']) { |
|
307 | + echo ' |
|
292 | 308 | <dt>', $txt['username'], ': </dt> |
293 | 309 | <dd>', $context['member']['username'], '</dd>'; |
310 | + } |
|
294 | 311 | |
295 | - if (!isset($context['disabled_fields']['posts'])) |
|
296 | - echo ' |
|
312 | + if (!isset($context['disabled_fields']['posts'])) { |
|
313 | + echo ' |
|
297 | 314 | <dt>', $txt['profile_posts'], ': </dt> |
298 | 315 | <dd>', $context['member']['posts'], ' (', $context['member']['posts_per_day'], ' ', $txt['posts_per_day'], ')</dd>'; |
316 | + } |
|
299 | 317 | |
300 | - if ($context['member']['show_email']) |
|
301 | - echo ' |
|
318 | + if ($context['member']['show_email']) { |
|
319 | + echo ' |
|
302 | 320 | <dt>', $txt['email'], ': </dt> |
303 | 321 | <dd><a href="mailto:', $context['member']['email'], '">', $context['member']['email'], '</a></dd>'; |
322 | + } |
|
304 | 323 | |
305 | - if (!empty($modSettings['titlesEnable']) && !empty($context['member']['title'])) |
|
306 | - echo ' |
|
324 | + if (!empty($modSettings['titlesEnable']) && !empty($context['member']['title'])) { |
|
325 | + echo ' |
|
307 | 326 | <dt>', $txt['custom_title'], ': </dt> |
308 | 327 | <dd>', $context['member']['title'], '</dd>'; |
328 | + } |
|
309 | 329 | |
310 | - if (!empty($context['member']['blurb'])) |
|
311 | - echo ' |
|
330 | + if (!empty($context['member']['blurb'])) { |
|
331 | + echo ' |
|
312 | 332 | <dt>', $txt['personal_text'], ': </dt> |
313 | 333 | <dd>', $context['member']['blurb'], '</dd>'; |
334 | + } |
|
314 | 335 | |
315 | 336 | echo ' |
316 | 337 | <dt>', $txt['age'], ':</dt> |
@@ -324,19 +345,21 @@ discard block |
||
324 | 345 | { |
325 | 346 | $fields = array(); |
326 | 347 | |
327 | - foreach ($context['print_custom_fields']['standard'] as $field) |
|
328 | - if (!empty($field['output_html'])) |
|
348 | + foreach ($context['print_custom_fields']['standard'] as $field) { |
|
349 | + if (!empty($field['output_html'])) |
|
329 | 350 | $fields[] = $field; |
351 | + } |
|
330 | 352 | |
331 | 353 | if (count($fields) > 0) |
332 | 354 | { |
333 | 355 | echo ' |
334 | 356 | <dl class="settings">'; |
335 | 357 | |
336 | - foreach ($fields as $field) |
|
337 | - echo ' |
|
358 | + foreach ($fields as $field) { |
|
359 | + echo ' |
|
338 | 360 | <dt>', $field['name'], ':</dt> |
339 | 361 | <dd>', $field['output_html'], '</dd>'; |
362 | + } |
|
340 | 363 | |
341 | 364 | echo ' |
342 | 365 | </dl>'; |
@@ -356,9 +379,10 @@ discard block |
||
356 | 379 | <a href="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=', ($context['can_issue_warning'] && !$context['user']['is_owner'] ? 'issuewarning' : 'viewwarning'), '">', $context['member']['warning'], '%</a>'; |
357 | 380 | |
358 | 381 | // Can we provide information on what this means? |
359 | - if (!empty($context['warning_status'])) |
|
360 | - echo ' |
|
382 | + if (!empty($context['warning_status'])) { |
|
383 | + echo ' |
|
361 | 384 | <span class="smalltext">(', $context['warning_status'], ')</span>'; |
385 | + } |
|
362 | 386 | |
363 | 387 | echo ' |
364 | 388 | </dd>'; |
@@ -369,11 +393,12 @@ discard block |
||
369 | 393 | { |
370 | 394 | |
371 | 395 | // If the person looking at the summary has permission, and the account isn't activated, give the viewer the ability to do it themselves. |
372 | - if (!empty($context['activate_message'])) |
|
373 | - echo ' |
|
396 | + if (!empty($context['activate_message'])) { |
|
397 | + echo ' |
|
374 | 398 | <dt class="clear"> |
375 | 399 | <span class="alert">', $context['activate_message'], '</span> (<a href="', $context['activate_link'], '"', ($context['activate_type'] == 4 ? ' class="you_sure" data-confirm="' . $txt['profileConfirm'] . '"' : ''), '>', $context['activate_link_text'], '</a>) |
376 | 400 | </dt>'; |
401 | + } |
|
377 | 402 | |
378 | 403 | // If the current member is banned, show a message and possibly a link to the ban. |
379 | 404 | if (!empty($context['member']['bans'])) |
@@ -385,10 +410,11 @@ discard block |
||
385 | 410 | <dt class="clear" id="ban_info" style="display: none;"> |
386 | 411 | <strong>', $txt['user_banned_by_following'], ':</strong>'; |
387 | 412 | |
388 | - foreach ($context['member']['bans'] as $ban) |
|
389 | - echo ' |
|
413 | + foreach ($context['member']['bans'] as $ban) { |
|
414 | + echo ' |
|
390 | 415 | <br> |
391 | 416 | <span class="smalltext">', $ban['explanation'], '</span>'; |
417 | + } |
|
392 | 418 | |
393 | 419 | echo ' |
394 | 420 | </dt>'; |
@@ -402,30 +428,34 @@ discard block |
||
402 | 428 | // If the person looking is allowed, they can check the members IP address and hostname. |
403 | 429 | if ($context['can_see_ip']) |
404 | 430 | { |
405 | - if (!empty($context['member']['ip'])) |
|
406 | - echo ' |
|
431 | + if (!empty($context['member']['ip'])) { |
|
432 | + echo ' |
|
407 | 433 | <dt>', $txt['ip'], ': </dt> |
408 | 434 | <dd><a href="', $scripturl, '?action=profile;area=tracking;sa=ip;searchip=', $context['member']['ip'], ';u=', $context['member']['id'], '">', $context['member']['ip'], '</a></dd>'; |
435 | + } |
|
409 | 436 | |
410 | - if (empty($modSettings['disableHostnameLookup']) && !empty($context['member']['ip'])) |
|
411 | - echo ' |
|
437 | + if (empty($modSettings['disableHostnameLookup']) && !empty($context['member']['ip'])) { |
|
438 | + echo ' |
|
412 | 439 | <dt>', $txt['hostname'], ': </dt> |
413 | 440 | <dd>', $context['member']['hostname'], '</dd>'; |
441 | + } |
|
414 | 442 | } |
415 | 443 | |
416 | 444 | echo ' |
417 | 445 | <dt>', $txt['local_time'], ':</dt> |
418 | 446 | <dd>', $context['member']['local_time'], '</dd>'; |
419 | 447 | |
420 | - if (!empty($modSettings['userLanguage']) && !empty($context['member']['language'])) |
|
421 | - echo ' |
|
448 | + if (!empty($modSettings['userLanguage']) && !empty($context['member']['language'])) { |
|
449 | + echo ' |
|
422 | 450 | <dt>', $txt['language'], ':</dt> |
423 | 451 | <dd>', $context['member']['language'], '</dd>'; |
452 | + } |
|
424 | 453 | |
425 | - if ($context['member']['show_last_login']) |
|
426 | - echo ' |
|
454 | + if ($context['member']['show_last_login']) { |
|
455 | + echo ' |
|
427 | 456 | <dt>', $txt['lastLoggedIn'], ': </dt> |
428 | 457 | <dd>', $context['member']['last_login'], (!empty($context['member']['is_hidden']) ? ' (' . $txt['hidden'] . ')' : ''), '</dd>'; |
458 | + } |
|
429 | 459 | |
430 | 460 | echo ' |
431 | 461 | </dl>'; |
@@ -434,42 +464,47 @@ discard block |
||
434 | 464 | if (!empty($context['print_custom_fields']['above_signature'])) |
435 | 465 | { |
436 | 466 | $fields = ''; |
437 | - foreach ($context['print_custom_fields']['above_signature'] as $field) |
|
438 | - if (!empty($field['output_html'])) |
|
467 | + foreach ($context['print_custom_fields']['above_signature'] as $field) { |
|
468 | + if (!empty($field['output_html'])) |
|
439 | 469 | $fields .= ' |
440 | 470 | <li>' . $field['output_html'] . '</li>'; |
471 | + } |
|
441 | 472 | |
442 | - if (!empty($fields)) |
|
443 | - echo ' |
|
473 | + if (!empty($fields)) { |
|
474 | + echo ' |
|
444 | 475 | <div class="custom_fields_above_signature"> |
445 | 476 | <ul class="nolist">', $fields, ' |
446 | 477 | </ul> |
447 | 478 | </div>'; |
479 | + } |
|
448 | 480 | } |
449 | 481 | |
450 | 482 | // Show the users signature. |
451 | - if ($context['signature_enabled'] && !empty($context['member']['signature'])) |
|
452 | - echo ' |
|
483 | + if ($context['signature_enabled'] && !empty($context['member']['signature'])) { |
|
484 | + echo ' |
|
453 | 485 | <div class="signature"> |
454 | 486 | <h5>', $txt['signature'], ':</h5> |
455 | 487 | ', $context['member']['signature'], ' |
456 | 488 | </div>'; |
489 | + } |
|
457 | 490 | |
458 | 491 | // Are there any custom profile fields for below the signature? |
459 | 492 | if (!empty($context['print_custom_fields']['below_signature'])) |
460 | 493 | { |
461 | 494 | $fields = ''; |
462 | - foreach ($context['print_custom_fields']['below_signature'] as $field) |
|
463 | - if (!empty($field['output_html'])) |
|
495 | + foreach ($context['print_custom_fields']['below_signature'] as $field) { |
|
496 | + if (!empty($field['output_html'])) |
|
464 | 497 | $fields .= ' |
465 | 498 | <li>' . $field['output_html'] . '</li>'; |
499 | + } |
|
466 | 500 | |
467 | - if (!empty($fields)) |
|
468 | - echo ' |
|
501 | + if (!empty($fields)) { |
|
502 | + echo ' |
|
469 | 503 | <div class="custom_fields_below_signature"> |
470 | 504 | <ul class="nolist">', $fields, ' |
471 | 505 | </ul> |
472 | 506 | </div>'; |
507 | + } |
|
473 | 508 | } |
474 | 509 | |
475 | 510 | echo ' |
@@ -511,62 +546,70 @@ discard block |
||
511 | 546 | </div> |
512 | 547 | <div class="list_posts">'; |
513 | 548 | |
514 | - if (!$post['approved']) |
|
515 | - echo ' |
|
549 | + if (!$post['approved']) { |
|
550 | + echo ' |
|
516 | 551 | <div class="approve_post"> |
517 | 552 | <em>', $txt['post_awaiting_approval'], '</em> |
518 | 553 | </div>'; |
554 | + } |
|
519 | 555 | |
520 | 556 | echo ' |
521 | 557 | ', $post['body'], ' |
522 | 558 | </div>'; |
523 | 559 | |
524 | - if ($post['can_reply'] || $post['can_quote'] || $post['can_delete']) |
|
525 | - echo ' |
|
560 | + if ($post['can_reply'] || $post['can_quote'] || $post['can_delete']) { |
|
561 | + echo ' |
|
526 | 562 | <div class="floatright"> |
527 | 563 | <ul class="quickbuttons">'; |
564 | + } |
|
528 | 565 | |
529 | 566 | // If they *can* reply? |
530 | - if ($post['can_reply']) |
|
531 | - echo ' |
|
567 | + if ($post['can_reply']) { |
|
568 | + echo ' |
|
532 | 569 | <li><a href="', $scripturl, '?action=post;topic=', $post['topic'], '.', $post['start'], '"><span class="generic_icons reply_button"></span>', $txt['reply'], '</a></li>'; |
570 | + } |
|
533 | 571 | |
534 | 572 | // If they *can* quote? |
535 | - if ($post['can_quote']) |
|
536 | - echo ' |
|
573 | + if ($post['can_quote']) { |
|
574 | + echo ' |
|
537 | 575 | <li><a href="', $scripturl . '?action=post;topic=', $post['topic'], '.', $post['start'], ';quote=', $post['id'], '"><span class="generic_icons quote"></span>', $txt['quote_action'], '</a></li>'; |
576 | + } |
|
538 | 577 | |
539 | 578 | // How about... even... remove it entirely?! |
540 | - if ($post['can_delete']) |
|
541 | - echo ' |
|
579 | + if ($post['can_delete']) { |
|
580 | + echo ' |
|
542 | 581 | <li><a href="', $scripturl, '?action=deletemsg;msg=', $post['id'], ';topic=', $post['topic'], ';profile;u=', $context['member']['id'], ';start=', $context['start'], ';', $context['session_var'], '=', $context['session_id'], '" data-confirm="', $txt['remove_message'], '" class="you_sure"><span class="generic_icons remove_button"></span>', $txt['remove'], '</a></li>'; |
582 | + } |
|
543 | 583 | |
544 | - if ($post['can_reply'] || $post['can_quote'] || $post['can_delete']) |
|
545 | - echo ' |
|
584 | + if ($post['can_reply'] || $post['can_quote'] || $post['can_delete']) { |
|
585 | + echo ' |
|
546 | 586 | </ul> |
547 | 587 | </div><!-- .floatright -->'; |
588 | + } |
|
548 | 589 | |
549 | 590 | echo ' |
550 | 591 | </div><!-- $post[css_class] -->'; |
551 | 592 | } |
593 | + } else { |
|
594 | + template_show_list('attachments'); |
|
552 | 595 | } |
553 | - else |
|
554 | - template_show_list('attachments'); |
|
555 | 596 | |
556 | 597 | // No posts? Just end with a informative message. |
557 | - if ((isset($context['attachments']) && empty($context['attachments'])) || (!isset($context['attachments']) && empty($context['posts']))) |
|
558 | - echo ' |
|
598 | + if ((isset($context['attachments']) && empty($context['attachments'])) || (!isset($context['attachments']) && empty($context['posts']))) { |
|
599 | + echo ' |
|
559 | 600 | <div class="windowbg2"> |
560 | 601 | ', isset($context['attachments']) ? $txt['show_attachments_none'] : ($context['is_topics'] ? $txt['show_topics_none'] : $txt['show_posts_none']), ' |
561 | 602 | </div>'; |
603 | + } |
|
562 | 604 | |
563 | 605 | // Show more page numbers. |
564 | - if (!empty($context['page_index'])) |
|
565 | - echo ' |
|
606 | + if (!empty($context['page_index'])) { |
|
607 | + echo ' |
|
566 | 608 | <div class="pagesection"> |
567 | 609 | <div class="pagelinks">', $context['page_index'], '</div> |
568 | 610 | </div>'; |
569 | -} |
|
611 | + } |
|
612 | + } |
|
570 | 613 | |
571 | 614 | /** |
572 | 615 | * Template for showing alerts within the alerts popup |
@@ -576,11 +619,12 @@ discard block |
||
576 | 619 | global $context, $txt, $scripturl; |
577 | 620 | |
578 | 621 | // Do we have an update message? |
579 | - if (!empty($context['update_message'])) |
|
580 | - echo ' |
|
622 | + if (!empty($context['update_message'])) { |
|
623 | + echo ' |
|
581 | 624 | <div class="infobox"> |
582 | 625 | ', $context['update_message'], ' |
583 | 626 | </div>'; |
627 | + } |
|
584 | 628 | |
585 | 629 | echo ' |
586 | 630 | <div class="cat_bar"> |
@@ -589,19 +633,19 @@ discard block |
||
589 | 633 | </h3> |
590 | 634 | </div>'; |
591 | 635 | |
592 | - if (empty($context['alerts'])) |
|
593 | - echo ' |
|
636 | + if (empty($context['alerts'])) { |
|
637 | + echo ' |
|
594 | 638 | <div class="information"> |
595 | 639 | ', $txt['alerts_none'], ' |
596 | 640 | </div>'; |
597 | - |
|
598 | - else |
|
641 | + } else |
|
599 | 642 | { |
600 | 643 | |
601 | 644 | // Start the form if checkboxes are in use |
602 | - if ($context['showCheckboxes']) |
|
603 | - echo ' |
|
645 | + if ($context['showCheckboxes']) { |
|
646 | + echo ' |
|
604 | 647 | <form action="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=showalerts;save" method="post" accept-charset="', $context['character_set'], '" id="mark_all">'; |
648 | + } |
|
605 | 649 | |
606 | 650 | echo ' |
607 | 651 | <table id="alerts" class="table_grid">'; |
@@ -617,9 +661,10 @@ discard block |
||
617 | 661 | <li><a href="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=showalerts;do=remove;aid=', $id, ';', $context['session_var'], '=', $context['session_id'], '" class="you_sure"><span class="generic_icons remove_button"></span>', $txt['delete'], '</a></li> |
618 | 662 | <li><a href="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=showalerts;do=', ($alert['is_read'] != 0 ? 'unread' : 'read'), ';aid=', $id, ';', $context['session_var'], '=', $context['session_id'], '"><span class="generic_icons ', $alert['is_read'] != 0 ? 'unread_button' : 'read_button', '"></span>', ($alert['is_read'] != 0 ? $txt['mark_unread'] : $txt['mark_read_short']), '</a></li>'; |
619 | 663 | |
620 | - if ($context['showCheckboxes']) |
|
621 | - echo ' |
|
664 | + if ($context['showCheckboxes']) { |
|
665 | + echo ' |
|
622 | 666 | <li><input type="checkbox" name="mark[', $id, ']" value="', $id, '"></li>'; |
667 | + } |
|
623 | 668 | |
624 | 669 | echo ' |
625 | 670 | </ul> |
@@ -634,8 +679,8 @@ discard block |
||
634 | 679 | ', $context['pagination'], ' |
635 | 680 | </div>'; |
636 | 681 | |
637 | - if ($context['showCheckboxes']) |
|
638 | - echo ' |
|
682 | + if ($context['showCheckboxes']) { |
|
683 | + echo ' |
|
639 | 684 | <div class="floatright"> |
640 | 685 | ', $txt['check_all'], ': <input type="checkbox" name="select_all" id="select_all"> |
641 | 686 | <select name="mark_as"> |
@@ -646,14 +691,16 @@ discard block |
||
646 | 691 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
647 | 692 | <input type="submit" name="req" value="', $txt['quick_mod_go'], '" class="button you_sure"> |
648 | 693 | </div>'; |
694 | + } |
|
649 | 695 | |
650 | 696 | echo ' |
651 | 697 | </div>'; |
652 | 698 | |
653 | - if ($context['showCheckboxes']) |
|
654 | - echo ' |
|
699 | + if ($context['showCheckboxes']) { |
|
700 | + echo ' |
|
655 | 701 | </form>'; |
656 | 702 | } |
703 | + } |
|
657 | 704 | } |
658 | 705 | |
659 | 706 | /** |
@@ -674,12 +721,12 @@ discard block |
||
674 | 721 | </div>' : ''; |
675 | 722 | |
676 | 723 | // No drafts? Just show an informative message. |
677 | - if (empty($context['drafts'])) |
|
678 | - echo ' |
|
724 | + if (empty($context['drafts'])) { |
|
725 | + echo ' |
|
679 | 726 | <div class="windowbg2 centertext"> |
680 | 727 | ', $txt['draft_none'], ' |
681 | 728 | </div>'; |
682 | - else |
|
729 | + } else |
|
683 | 730 | { |
684 | 731 | // For every draft to be displayed, give it its own div, and show the important details of the draft. |
685 | 732 | foreach ($context['drafts'] as $draft) |
@@ -691,13 +738,15 @@ discard block |
||
691 | 738 | <h5> |
692 | 739 | <strong><a href="', $scripturl, '?board=', $draft['board']['id'], '.0">', $draft['board']['name'], '</a> / ', $draft['topic']['link'], '</strong> '; |
693 | 740 | |
694 | - if (!empty($draft['sticky'])) |
|
695 | - echo ' |
|
741 | + if (!empty($draft['sticky'])) { |
|
742 | + echo ' |
|
696 | 743 | <span class="generic_icons sticky" title="', $txt['sticky_topic'], '"></span>'; |
744 | + } |
|
697 | 745 | |
698 | - if (!empty($draft['locked'])) |
|
699 | - echo ' |
|
746 | + if (!empty($draft['locked'])) { |
|
747 | + echo ' |
|
700 | 748 | <span class="generic_icons lock" title="', $txt['locked_topic'], '"></span>'; |
749 | + } |
|
701 | 750 | |
702 | 751 | echo ' |
703 | 752 | </h5> |
@@ -730,13 +779,13 @@ discard block |
||
730 | 779 | { |
731 | 780 | global $context, $scripturl, $txt; |
732 | 781 | |
733 | - if (!empty($context['saved_successful'])) |
|
734 | - echo ' |
|
782 | + if (!empty($context['saved_successful'])) { |
|
783 | + echo ' |
|
735 | 784 | <div class="infobox">', $context['user']['is_owner'] ? $txt['profile_updated_own'] : sprintf($txt['profile_updated_else'], $context['member']['name']), '</div>'; |
736 | - |
|
737 | - elseif (!empty($context['saved_failed'])) |
|
738 | - echo ' |
|
785 | + } elseif (!empty($context['saved_failed'])) { |
|
786 | + echo ' |
|
739 | 787 | <div class="errorbox">', $context['saved_failed'], '</div>'; |
788 | + } |
|
740 | 789 | |
741 | 790 | echo ' |
742 | 791 | <div id="edit_buddies"> |
@@ -751,14 +800,16 @@ discard block |
||
751 | 800 | <th scope="col" class="quarter_table">', $txt['name'], '</th> |
752 | 801 | <th scope="col">', $txt['status'], '</th>'; |
753 | 802 | |
754 | - if (allowedTo('moderate_forum')) |
|
755 | - echo ' |
|
803 | + if (allowedTo('moderate_forum')) { |
|
804 | + echo ' |
|
756 | 805 | <th scope="col">', $txt['email'], '</th>'; |
806 | + } |
|
757 | 807 | |
758 | - if (!empty($context['custom_pf'])) |
|
759 | - foreach ($context['custom_pf'] as $column) |
|
808 | + if (!empty($context['custom_pf'])) { |
|
809 | + foreach ($context['custom_pf'] as $column) |
|
760 | 810 | echo ' |
761 | 811 | <th scope="col">', $column['label'], '</th>'; |
812 | + } |
|
762 | 813 | |
763 | 814 | echo ' |
764 | 815 | <th scope="col">', $txt['remove'], '</th> |
@@ -767,13 +818,14 @@ discard block |
||
767 | 818 | <tbody>'; |
768 | 819 | |
769 | 820 | // If they don't have any buddies don't list them! |
770 | - if (empty($context['buddies'])) |
|
771 | - echo ' |
|
821 | + if (empty($context['buddies'])) { |
|
822 | + echo ' |
|
772 | 823 | <tr class="windowbg"> |
773 | 824 | <td colspan="', allowedTo('moderate_forum') ? '10' : '9', '"> |
774 | 825 | <strong>', $txt['no_buddies'], '</strong> |
775 | 826 | </td> |
776 | 827 | </tr>'; |
828 | + } |
|
777 | 829 | |
778 | 830 | // Now loop through each buddy showing info on each. |
779 | 831 | else |
@@ -787,17 +839,19 @@ discard block |
||
787 | 839 | <a href="', $buddy['online']['href'], '"><span class="' . ($buddy['online']['is_online'] == 1 ? 'on' : 'off') . '" title="' . $buddy['online']['text'] . '"></span></a> |
788 | 840 | </td>'; |
789 | 841 | |
790 | - if ($buddy['show_email']) |
|
791 | - echo ' |
|
842 | + if ($buddy['show_email']) { |
|
843 | + echo ' |
|
792 | 844 | <td> |
793 | 845 | <a href="mailto:' . $buddy['email'] . '" rel="nofollow"><span class="generic_icons mail icon" title="' . $txt['email'] . ' ' . $buddy['name'] . '"></span></a> |
794 | 846 | </td>'; |
847 | + } |
|
795 | 848 | |
796 | 849 | // Show the custom profile fields for this user. |
797 | - if (!empty($context['custom_pf'])) |
|
798 | - foreach ($context['custom_pf'] as $key => $column) |
|
850 | + if (!empty($context['custom_pf'])) { |
|
851 | + foreach ($context['custom_pf'] as $key => $column) |
|
799 | 852 | echo ' |
800 | 853 | <td class="lefttext">', $buddy['options'][$key], '</td>'; |
854 | + } |
|
801 | 855 | |
802 | 856 | echo ' |
803 | 857 | <td> |
@@ -830,9 +884,10 @@ discard block |
||
830 | 884 | </dl> |
831 | 885 | </div>'; |
832 | 886 | |
833 | - if (!empty($context['token_check'])) |
|
834 | - echo ' |
|
887 | + if (!empty($context['token_check'])) { |
|
888 | + echo ' |
|
835 | 889 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
890 | + } |
|
836 | 891 | |
837 | 892 | echo ' |
838 | 893 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -858,13 +913,13 @@ discard block |
||
858 | 913 | { |
859 | 914 | global $context, $scripturl, $txt; |
860 | 915 | |
861 | - if (!empty($context['saved_successful'])) |
|
862 | - echo ' |
|
916 | + if (!empty($context['saved_successful'])) { |
|
917 | + echo ' |
|
863 | 918 | <div class="infobox">', $context['user']['is_owner'] ? $txt['profile_updated_own'] : sprintf($txt['profile_updated_else'], $context['member']['name']), '</div>'; |
864 | - |
|
865 | - elseif (!empty($context['saved_failed'])) |
|
866 | - echo ' |
|
919 | + } elseif (!empty($context['saved_failed'])) { |
|
920 | + echo ' |
|
867 | 921 | <div class="errorbox">', $context['saved_failed'], '</div>'; |
922 | + } |
|
868 | 923 | |
869 | 924 | echo ' |
870 | 925 | <div id="edit_buddies"> |
@@ -879,9 +934,10 @@ discard block |
||
879 | 934 | <th scope="col" class="quarter_table">', $txt['name'], '</th> |
880 | 935 | <th scope="col">', $txt['status'], '</th>'; |
881 | 936 | |
882 | - if (allowedTo('moderate_forum')) |
|
883 | - echo ' |
|
937 | + if (allowedTo('moderate_forum')) { |
|
938 | + echo ' |
|
884 | 939 | <th scope="col">', $txt['email'], '</th>'; |
940 | + } |
|
885 | 941 | |
886 | 942 | echo ' |
887 | 943 | <th scope="col">', $txt['ignore_remove'], '</th> |
@@ -890,13 +946,14 @@ discard block |
||
890 | 946 | <tbody>'; |
891 | 947 | |
892 | 948 | // If they don't have anyone on their ignore list, don't list it! |
893 | - if (empty($context['ignore_list'])) |
|
894 | - echo ' |
|
949 | + if (empty($context['ignore_list'])) { |
|
950 | + echo ' |
|
895 | 951 | <tr class="windowbg"> |
896 | 952 | <td colspan="', allowedTo('moderate_forum') ? '4' : '3', '"> |
897 | 953 | <strong>', $txt['no_ignore'], '</strong> |
898 | 954 | </td> |
899 | 955 | </tr>'; |
956 | + } |
|
900 | 957 | |
901 | 958 | // Now loop through each buddy showing info on each. |
902 | 959 | foreach ($context['ignore_list'] as $member) |
@@ -908,11 +965,12 @@ discard block |
||
908 | 965 | <a href="', $member['online']['href'], '"><span class="' . ($member['online']['is_online'] == 1 ? 'on' : 'off') . '" title="' . $member['online']['text'] . '"></span></a> |
909 | 966 | </td>'; |
910 | 967 | |
911 | - if ($member['show_email']) |
|
912 | - echo ' |
|
968 | + if ($member['show_email']) { |
|
969 | + echo ' |
|
913 | 970 | <td> |
914 | 971 | <a href="mailto:' . $member['email'] . '" rel="nofollow"><span class="generic_icons mail icon" title="' . $txt['email'] . ' ' . $member['name'] . '"></span></a> |
915 | 972 | </td>'; |
973 | + } |
|
916 | 974 | echo ' |
917 | 975 | <td> |
918 | 976 | <a href="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=lists;sa=ignore;remove=', $member['id'], ';', $context['session_var'], '=', $context['session_id'], '"><span class="generic_icons delete" title="', $txt['ignore_remove'], '"></span></a> |
@@ -942,9 +1000,10 @@ discard block |
||
942 | 1000 | </dl> |
943 | 1001 | </div>'; |
944 | 1002 | |
945 | - if (!empty($context['token_check'])) |
|
946 | - echo ' |
|
1003 | + if (!empty($context['token_check'])) { |
|
1004 | + echo ' |
|
947 | 1005 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
1006 | + } |
|
948 | 1007 | |
949 | 1008 | echo ' |
950 | 1009 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -990,9 +1049,10 @@ discard block |
||
990 | 1049 | <a href="', $scripturl, '?action=profile;area=tracking;sa=ip;searchip=', $context['last_ip'], ';u=', $context['member']['id'], '">', $context['last_ip'], '</a>'; |
991 | 1050 | |
992 | 1051 | // Second address detected? |
993 | - if (!empty($context['last_ip2'])) |
|
994 | - echo ' |
|
1052 | + if (!empty($context['last_ip2'])) { |
|
1053 | + echo ' |
|
995 | 1054 | , <a href="', $scripturl, '?action=profile;area=tracking;sa=ip;searchip=', $context['last_ip2'], ';u=', $context['member']['id'], '">', $context['last_ip2'], '</a>'; |
1055 | + } |
|
996 | 1056 | |
997 | 1057 | echo ' |
998 | 1058 | </dd>'; |
@@ -1058,9 +1118,10 @@ discard block |
||
1058 | 1118 | </div> |
1059 | 1119 | <div class="windowbg2 noup">'; |
1060 | 1120 | |
1061 | - foreach ($context['whois_servers'] as $server) |
|
1062 | - echo ' |
|
1121 | + foreach ($context['whois_servers'] as $server) { |
|
1122 | + echo ' |
|
1063 | 1123 | <a href="', $server['url'], '" target="_blank" rel="noopener"', '>', $server['name'], '</a><br>'; |
1124 | + } |
|
1064 | 1125 | echo ' |
1065 | 1126 | </div> |
1066 | 1127 | <br>'; |
@@ -1072,13 +1133,12 @@ discard block |
||
1072 | 1133 | <h3 class="catbg">', $txt['members_from_ip'], ' ', $context['ip'], '</h3> |
1073 | 1134 | </div>'; |
1074 | 1135 | |
1075 | - if (empty($context['ips'])) |
|
1076 | - echo ' |
|
1136 | + if (empty($context['ips'])) { |
|
1137 | + echo ' |
|
1077 | 1138 | <p class="windowbg2 description"> |
1078 | 1139 | <em>', $txt['no_members_from_ip'], '</em> |
1079 | 1140 | </p>'; |
1080 | - |
|
1081 | - else |
|
1141 | + } else |
|
1082 | 1142 | { |
1083 | 1143 | echo ' |
1084 | 1144 | <table class="table_grid"> |
@@ -1091,12 +1151,13 @@ discard block |
||
1091 | 1151 | <tbody>'; |
1092 | 1152 | |
1093 | 1153 | // Loop through each of the members and display them. |
1094 | - foreach ($context['ips'] as $ip => $memberlist) |
|
1095 | - echo ' |
|
1154 | + foreach ($context['ips'] as $ip => $memberlist) { |
|
1155 | + echo ' |
|
1096 | 1156 | <tr class="windowbg"> |
1097 | 1157 | <td><a href="', $context['base_url'], ';searchip=', $ip, '">', $ip, '</a></td> |
1098 | 1158 | <td>', implode(', ', $memberlist), '</td> |
1099 | 1159 | </tr>'; |
1160 | + } |
|
1100 | 1161 | |
1101 | 1162 | echo ' |
1102 | 1163 | </tbody> |
@@ -1138,11 +1199,10 @@ discard block |
||
1138 | 1199 | </h3> |
1139 | 1200 | </div>'; |
1140 | 1201 | |
1141 | - if ($context['member']['has_all_permissions']) |
|
1142 | - echo ' |
|
1202 | + if ($context['member']['has_all_permissions']) { |
|
1203 | + echo ' |
|
1143 | 1204 | <div class="information">', $txt['showPermissions_all'], '</div>'; |
1144 | - |
|
1145 | - else |
|
1205 | + } else |
|
1146 | 1206 | { |
1147 | 1207 | echo ' |
1148 | 1208 | <div class="information">',$txt['showPermissions_help'], '</div> |
@@ -1157,9 +1217,10 @@ discard block |
||
1157 | 1217 | <div class="windowbg smalltext"> |
1158 | 1218 | ', $txt['showPermissions_restricted_boards_desc'], ':<br>'; |
1159 | 1219 | |
1160 | - foreach ($context['no_access_boards'] as $no_access_board) |
|
1161 | - echo ' |
|
1220 | + foreach ($context['no_access_boards'] as $no_access_board) { |
|
1221 | + echo ' |
|
1162 | 1222 | <a href="', $scripturl, '?board=', $no_access_board['id'], '.0">', $no_access_board['name'], '</a>', $no_access_board['is_last'] ? '' : ', '; |
1223 | + } |
|
1163 | 1224 | echo ' |
1164 | 1225 | </div>'; |
1165 | 1226 | } |
@@ -1191,12 +1252,13 @@ discard block |
||
1191 | 1252 | </td> |
1192 | 1253 | <td class="smalltext">'; |
1193 | 1254 | |
1194 | - if ($permission['is_denied']) |
|
1195 | - echo ' |
|
1255 | + if ($permission['is_denied']) { |
|
1256 | + echo ' |
|
1196 | 1257 | <span class="alert">', $txt['showPermissions_denied'], ': ', implode(', ', $permission['groups']['denied']), '</span>'; |
1197 | - else |
|
1198 | - echo ' |
|
1258 | + } else { |
|
1259 | + echo ' |
|
1199 | 1260 | ', $txt['showPermissions_given'], ': ', implode(', ', $permission['groups']['allowed']); |
1261 | + } |
|
1200 | 1262 | |
1201 | 1263 | echo ' |
1202 | 1264 | </td> |
@@ -1207,10 +1269,10 @@ discard block |
||
1207 | 1269 | </table> |
1208 | 1270 | </div><!-- .tborder --> |
1209 | 1271 | <br>'; |
1210 | - } |
|
1211 | - else |
|
1212 | - echo ' |
|
1272 | + } else { |
|
1273 | + echo ' |
|
1213 | 1274 | <p class="windowbg2">', $txt['showPermissions_none_general'], '</p>'; |
1275 | + } |
|
1214 | 1276 | |
1215 | 1277 | // Board permission section. |
1216 | 1278 | echo ' |
@@ -1221,14 +1283,16 @@ discard block |
||
1221 | 1283 | <select name="board" onchange="if (this.options[this.selectedIndex].value) this.form.submit();"> |
1222 | 1284 | <option value="0"', $context['board'] == 0 ? ' selected' : '', '>', $txt['showPermissions_global'], '</option>'; |
1223 | 1285 | |
1224 | - if (!empty($context['boards'])) |
|
1225 | - echo ' |
|
1286 | + if (!empty($context['boards'])) { |
|
1287 | + echo ' |
|
1226 | 1288 | <option value="" disabled>---------------------------</option>'; |
1289 | + } |
|
1227 | 1290 | |
1228 | 1291 | // Fill the box with any local permission boards. |
1229 | - foreach ($context['boards'] as $board) |
|
1230 | - echo ' |
|
1292 | + foreach ($context['boards'] as $board) { |
|
1293 | + echo ' |
|
1231 | 1294 | <option value="', $board['id'], '"', $board['selected'] ? ' selected' : '', '>', $board['name'], ' (', $board['profile_name'], ')</option>'; |
1295 | + } |
|
1232 | 1296 | |
1233 | 1297 | echo ' |
1234 | 1298 | </select> |
@@ -1257,13 +1321,13 @@ discard block |
||
1257 | 1321 | </td> |
1258 | 1322 | <td class="smalltext">'; |
1259 | 1323 | |
1260 | - if ($permission['is_denied']) |
|
1261 | - echo ' |
|
1324 | + if ($permission['is_denied']) { |
|
1325 | + echo ' |
|
1262 | 1326 | <span class="alert">', $txt['showPermissions_denied'], ': ', implode(', ', $permission['groups']['denied']), '</span>'; |
1263 | - |
|
1264 | - else |
|
1265 | - echo ' |
|
1327 | + } else { |
|
1328 | + echo ' |
|
1266 | 1329 | ', $txt['showPermissions_given'], ': ', implode(', ', $permission['groups']['allowed']); |
1330 | + } |
|
1267 | 1331 | |
1268 | 1332 | echo ' |
1269 | 1333 | </td> |
@@ -1272,10 +1336,10 @@ discard block |
||
1272 | 1336 | echo ' |
1273 | 1337 | </tbody> |
1274 | 1338 | </table>'; |
1275 | - } |
|
1276 | - else |
|
1277 | - echo ' |
|
1339 | + } else { |
|
1340 | + echo ' |
|
1278 | 1341 | <p class="windowbg2">', $txt['showPermissions_none_board'], '</p>'; |
1342 | + } |
|
1279 | 1343 | echo ' |
1280 | 1344 | </div><!-- #permissions -->'; |
1281 | 1345 | } |
@@ -1316,9 +1380,10 @@ discard block |
||
1316 | 1380 | </div>'; |
1317 | 1381 | |
1318 | 1382 | // If they haven't post at all, don't draw the graph. |
1319 | - if (empty($context['posts_by_time'])) |
|
1320 | - echo ' |
|
1383 | + if (empty($context['posts_by_time'])) { |
|
1384 | + echo ' |
|
1321 | 1385 | <p class="centertext padding">', $txt['statPanel_noPosts'], '</p>'; |
1386 | + } |
|
1322 | 1387 | |
1323 | 1388 | // Otherwise do! |
1324 | 1389 | else |
@@ -1327,8 +1392,8 @@ discard block |
||
1327 | 1392 | <ul class="activity_stats flow_hidden">'; |
1328 | 1393 | |
1329 | 1394 | // The labels. |
1330 | - foreach ($context['posts_by_time'] as $time_of_day) |
|
1331 | - echo ' |
|
1395 | + foreach ($context['posts_by_time'] as $time_of_day) { |
|
1396 | + echo ' |
|
1332 | 1397 | <li', $time_of_day['is_last'] ? ' class="last"' : '', '> |
1333 | 1398 | <div class="bar" style="padding-top: ', ((int) (100 - $time_of_day['relative_percent'])), 'px;" title="', sprintf($txt['statPanel_activityTime_posts'], $time_of_day['posts'], $time_of_day['posts_percent']), '"> |
1334 | 1399 | <div style="height: ', (int) $time_of_day['relative_percent'], 'px;"> |
@@ -1337,6 +1402,7 @@ discard block |
||
1337 | 1402 | </div> |
1338 | 1403 | <span class="stats_hour">', $time_of_day['hour_format'], '</span> |
1339 | 1404 | </li>'; |
1405 | + } |
|
1340 | 1406 | |
1341 | 1407 | echo ' |
1342 | 1408 | </ul>'; |
@@ -1355,11 +1421,10 @@ discard block |
||
1355 | 1421 | </h3> |
1356 | 1422 | </div>'; |
1357 | 1423 | |
1358 | - if (empty($context['popular_boards'])) |
|
1359 | - echo ' |
|
1424 | + if (empty($context['popular_boards'])) { |
|
1425 | + echo ' |
|
1360 | 1426 | <p class="centertext padding">', $txt['statPanel_noPosts'], '</p>'; |
1361 | - |
|
1362 | - else |
|
1427 | + } else |
|
1363 | 1428 | { |
1364 | 1429 | echo ' |
1365 | 1430 | <dl class="stats">'; |
@@ -1389,10 +1454,10 @@ discard block |
||
1389 | 1454 | </h3> |
1390 | 1455 | </div>'; |
1391 | 1456 | |
1392 | - if (empty($context['board_activity'])) |
|
1393 | - echo ' |
|
1457 | + if (empty($context['board_activity'])) { |
|
1458 | + echo ' |
|
1394 | 1459 | <p class="centertext padding">', $txt['statPanel_noPosts'], '</p>'; |
1395 | - else |
|
1460 | + } else |
|
1396 | 1461 | { |
1397 | 1462 | echo ' |
1398 | 1463 | <dl class="stats">'; |
@@ -1443,90 +1508,97 @@ discard block |
||
1443 | 1508 | <h3 class="catbg profile_hd">'; |
1444 | 1509 | |
1445 | 1510 | // Don't say "Profile" if this isn't the profile... |
1446 | - if (!empty($context['profile_header_text'])) |
|
1447 | - echo ' |
|
1511 | + if (!empty($context['profile_header_text'])) { |
|
1512 | + echo ' |
|
1448 | 1513 | ', $context['profile_header_text']; |
1449 | - else |
|
1450 | - echo ' |
|
1514 | + } else { |
|
1515 | + echo ' |
|
1451 | 1516 | ', $txt['profile']; |
1517 | + } |
|
1452 | 1518 | |
1453 | 1519 | echo ' |
1454 | 1520 | </h3> |
1455 | 1521 | </div>'; |
1456 | 1522 | |
1457 | 1523 | // Have we some description? |
1458 | - if ($context['page_desc']) |
|
1459 | - echo ' |
|
1524 | + if ($context['page_desc']) { |
|
1525 | + echo ' |
|
1460 | 1526 | <p class="information">', $context['page_desc'], '</p>'; |
1527 | + } |
|
1461 | 1528 | |
1462 | 1529 | echo ' |
1463 | 1530 | <div class="roundframe">'; |
1464 | 1531 | |
1465 | 1532 | // Any bits at the start? |
1466 | - if (!empty($context['profile_prehtml'])) |
|
1467 | - echo ' |
|
1533 | + if (!empty($context['profile_prehtml'])) { |
|
1534 | + echo ' |
|
1468 | 1535 | <div>', $context['profile_prehtml'], '</div>'; |
1536 | + } |
|
1469 | 1537 | |
1470 | - if (!empty($context['profile_fields'])) |
|
1471 | - echo ' |
|
1538 | + if (!empty($context['profile_fields'])) { |
|
1539 | + echo ' |
|
1472 | 1540 | <dl class="settings">'; |
1541 | + } |
|
1473 | 1542 | |
1474 | 1543 | // Start the big old loop 'of love. |
1475 | 1544 | $lastItem = 'hr'; |
1476 | 1545 | foreach ($context['profile_fields'] as $key => $field) |
1477 | 1546 | { |
1478 | 1547 | // We add a little hack to be sure we never get more than one hr in a row! |
1479 | - if ($lastItem == 'hr' && $field['type'] == 'hr') |
|
1480 | - continue; |
|
1548 | + if ($lastItem == 'hr' && $field['type'] == 'hr') { |
|
1549 | + continue; |
|
1550 | + } |
|
1481 | 1551 | |
1482 | 1552 | $lastItem = $field['type']; |
1483 | - if ($field['type'] == 'hr') |
|
1484 | - echo ' |
|
1553 | + if ($field['type'] == 'hr') { |
|
1554 | + echo ' |
|
1485 | 1555 | </dl> |
1486 | 1556 | <hr> |
1487 | 1557 | <dl class="settings">'; |
1488 | - |
|
1489 | - elseif ($field['type'] == 'callback') |
|
1558 | + } elseif ($field['type'] == 'callback') |
|
1490 | 1559 | { |
1491 | 1560 | if (isset($field['callback_func']) && function_exists('template_profile_' . $field['callback_func'])) |
1492 | 1561 | { |
1493 | 1562 | $callback_func = 'template_profile_' . $field['callback_func']; |
1494 | 1563 | $callback_func(); |
1495 | 1564 | } |
1496 | - } |
|
1497 | - else |
|
1565 | + } else |
|
1498 | 1566 | { |
1499 | 1567 | echo ' |
1500 | 1568 | <dt> |
1501 | 1569 | <strong', !empty($field['is_error']) ? ' class="error"' : '', '>', $field['type'] !== 'label' ? '<label for="' . $key . '">' : '', $field['label'], $field['type'] !== 'label' ? '</label>' : '', '</strong>'; |
1502 | 1570 | |
1503 | 1571 | // Does it have any subtext to show? |
1504 | - if (!empty($field['subtext'])) |
|
1505 | - echo ' |
|
1572 | + if (!empty($field['subtext'])) { |
|
1573 | + echo ' |
|
1506 | 1574 | <br> |
1507 | 1575 | <span class="smalltext">', $field['subtext'], '</span>'; |
1576 | + } |
|
1508 | 1577 | |
1509 | 1578 | echo ' |
1510 | 1579 | </dt> |
1511 | 1580 | <dd>'; |
1512 | 1581 | |
1513 | 1582 | // Want to put something infront of the box? |
1514 | - if (!empty($field['preinput'])) |
|
1515 | - echo ' |
|
1583 | + if (!empty($field['preinput'])) { |
|
1584 | + echo ' |
|
1516 | 1585 | ', $field['preinput']; |
1586 | + } |
|
1517 | 1587 | |
1518 | 1588 | // What type of data are we showing? |
1519 | - if ($field['type'] == 'label') |
|
1520 | - echo ' |
|
1589 | + if ($field['type'] == 'label') { |
|
1590 | + echo ' |
|
1521 | 1591 | ', $field['value']; |
1592 | + } |
|
1522 | 1593 | |
1523 | 1594 | // Maybe it's a text box - very likely! |
1524 | 1595 | elseif (in_array($field['type'], array('int', 'float', 'text', 'password', 'color', 'date', 'datetime', 'datetime-local', 'email', 'month', 'number', 'time', 'url'))) |
1525 | 1596 | { |
1526 | - if ($field['type'] == 'int' || $field['type'] == 'float') |
|
1527 | - $type = 'number'; |
|
1528 | - else |
|
1529 | - $type = $field['type']; |
|
1597 | + if ($field['type'] == 'int' || $field['type'] == 'float') { |
|
1598 | + $type = 'number'; |
|
1599 | + } else { |
|
1600 | + $type = $field['type']; |
|
1601 | + } |
|
1530 | 1602 | $step = $field['type'] == 'float' ? ' step="0.1"' : ''; |
1531 | 1603 | |
1532 | 1604 | |
@@ -1534,10 +1606,11 @@ discard block |
||
1534 | 1606 | <input type="', $type, '" name="', $key, '" id="', $key, '" size="', empty($field['size']) ? 30 : $field['size'], '" value="', $field['value'], '" ', $field['input_attr'], ' ', $step, '>'; |
1535 | 1607 | } |
1536 | 1608 | // You "checking" me out? ;) |
1537 | - elseif ($field['type'] == 'check') |
|
1538 | - echo ' |
|
1609 | + elseif ($field['type'] == 'check') { |
|
1610 | + echo ' |
|
1539 | 1611 | <input type="hidden" name="', $key, '" value="0"> |
1540 | 1612 | <input type="checkbox" name="', $key, '" id="', $key, '"', !empty($field['value']) ? ' checked' : '', ' value="1" ', $field['input_attr'], '>'; |
1613 | + } |
|
1541 | 1614 | |
1542 | 1615 | // Always fun - select boxes! |
1543 | 1616 | elseif ($field['type'] == 'select') |
@@ -1548,14 +1621,16 @@ discard block |
||
1548 | 1621 | if (isset($field['options'])) |
1549 | 1622 | { |
1550 | 1623 | // Is this some code to generate the options? |
1551 | - if (!is_array($field['options'])) |
|
1552 | - $field['options'] = $field['options'](); |
|
1624 | + if (!is_array($field['options'])) { |
|
1625 | + $field['options'] = $field['options'](); |
|
1626 | + } |
|
1553 | 1627 | |
1554 | 1628 | // Assuming we now have some! |
1555 | - if (is_array($field['options'])) |
|
1556 | - foreach ($field['options'] as $value => $name) |
|
1629 | + if (is_array($field['options'])) { |
|
1630 | + foreach ($field['options'] as $value => $name) |
|
1557 | 1631 | echo ' |
1558 | 1632 | <option value="', $value, '"', $value == $field['value'] ? ' selected' : '', '>', $name, '</option>'; |
1633 | + } |
|
1559 | 1634 | } |
1560 | 1635 | |
1561 | 1636 | echo ' |
@@ -1563,31 +1638,34 @@ discard block |
||
1563 | 1638 | } |
1564 | 1639 | |
1565 | 1640 | // Something to end with? |
1566 | - if (!empty($field['postinput'])) |
|
1567 | - echo ' |
|
1641 | + if (!empty($field['postinput'])) { |
|
1642 | + echo ' |
|
1568 | 1643 | ', $field['postinput']; |
1644 | + } |
|
1569 | 1645 | |
1570 | 1646 | echo ' |
1571 | 1647 | </dd>'; |
1572 | 1648 | } |
1573 | 1649 | } |
1574 | 1650 | |
1575 | - if (!empty($context['profile_fields'])) |
|
1576 | - echo ' |
|
1651 | + if (!empty($context['profile_fields'])) { |
|
1652 | + echo ' |
|
1577 | 1653 | </dl>'; |
1654 | + } |
|
1578 | 1655 | |
1579 | 1656 | // Are there any custom profile fields - if so print them! |
1580 | 1657 | if (!empty($context['custom_fields'])) |
1581 | 1658 | { |
1582 | - if ($lastItem != 'hr') |
|
1583 | - echo ' |
|
1659 | + if ($lastItem != 'hr') { |
|
1660 | + echo ' |
|
1584 | 1661 | <hr>'; |
1662 | + } |
|
1585 | 1663 | |
1586 | 1664 | echo ' |
1587 | 1665 | <dl class="settings">'; |
1588 | 1666 | |
1589 | - foreach ($context['custom_fields'] as $field) |
|
1590 | - echo ' |
|
1667 | + foreach ($context['custom_fields'] as $field) { |
|
1668 | + echo ' |
|
1591 | 1669 | <dt> |
1592 | 1670 | <strong>', $field['name'], ': </strong><br> |
1593 | 1671 | <span class="smalltext">', $field['desc'], '</span> |
@@ -1595,6 +1673,7 @@ discard block |
||
1595 | 1673 | <dd> |
1596 | 1674 | ', $field['input_html'], ' |
1597 | 1675 | </dd>'; |
1676 | + } |
|
1598 | 1677 | |
1599 | 1678 | echo ' |
1600 | 1679 | </dl>'; |
@@ -1602,13 +1681,14 @@ discard block |
||
1602 | 1681 | } |
1603 | 1682 | |
1604 | 1683 | // Any closing HTML? |
1605 | - if (!empty($context['profile_posthtml'])) |
|
1606 | - echo ' |
|
1684 | + if (!empty($context['profile_posthtml'])) { |
|
1685 | + echo ' |
|
1607 | 1686 | <div>', $context['profile_posthtml'], '</div>'; |
1687 | + } |
|
1608 | 1688 | |
1609 | 1689 | // Only show the password box if it's actually needed. |
1610 | - if ($context['require_password']) |
|
1611 | - echo ' |
|
1690 | + if ($context['require_password']) { |
|
1691 | + echo ' |
|
1612 | 1692 | <dl class="settings"> |
1613 | 1693 | <dt> |
1614 | 1694 | <strong', isset($context['modify_error']['bad_password']) || isset($context['modify_error']['no_password']) ? ' class="error"' : '', '><label for="oldpasswrd">', $txt['current_password'], ': </label></strong><br> |
@@ -1618,18 +1698,21 @@ discard block |
||
1618 | 1698 | <input type="password" name="oldpasswrd" id="oldpasswrd" size="20"> |
1619 | 1699 | </dd> |
1620 | 1700 | </dl>'; |
1701 | + } |
|
1621 | 1702 | |
1622 | 1703 | // The button shouldn't say "Change profile" unless we're changing the profile... |
1623 | - if (!empty($context['submit_button_text'])) |
|
1624 | - echo ' |
|
1704 | + if (!empty($context['submit_button_text'])) { |
|
1705 | + echo ' |
|
1625 | 1706 | <input type="submit" name="save" value="', $context['submit_button_text'], '" class="button floatright">'; |
1626 | - else |
|
1627 | - echo ' |
|
1707 | + } else { |
|
1708 | + echo ' |
|
1628 | 1709 | <input type="submit" name="save" value="', $txt['change_profile'], '" class="button floatright">'; |
1710 | + } |
|
1629 | 1711 | |
1630 | - if (!empty($context['token_check'])) |
|
1631 | - echo ' |
|
1712 | + if (!empty($context['token_check'])) { |
|
1713 | + echo ' |
|
1632 | 1714 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
1715 | + } |
|
1633 | 1716 | |
1634 | 1717 | echo ' |
1635 | 1718 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -1639,10 +1722,11 @@ discard block |
||
1639 | 1722 | </form>'; |
1640 | 1723 | |
1641 | 1724 | // Any final spellchecking stuff? |
1642 | - if (!empty($context['show_spellchecking'])) |
|
1643 | - echo ' |
|
1725 | + if (!empty($context['show_spellchecking'])) { |
|
1726 | + echo ' |
|
1644 | 1727 | <form name="spell_form" id="spell_form" method="post" accept-charset="', $context['character_set'], '" target="spellWindow" action="', $scripturl, '?action=spellcheck"><input type="hidden" name="spellstring" value=""></form>'; |
1645 | -} |
|
1728 | + } |
|
1729 | + } |
|
1646 | 1730 | |
1647 | 1731 | /** |
1648 | 1732 | * Personal Message settings. |
@@ -1679,10 +1763,11 @@ discard block |
||
1679 | 1763 | <select name="pm_receive_from" id="pm_receive_from"> |
1680 | 1764 | <option value="0"', empty($context['receive_from']) || (empty($modSettings['enable_buddylist']) && $context['receive_from'] < 3) ? ' selected' : '', '>', $txt['pm_receive_from_everyone'], '</option>'; |
1681 | 1765 | |
1682 | - if (!empty($modSettings['enable_buddylist'])) |
|
1683 | - echo ' |
|
1766 | + if (!empty($modSettings['enable_buddylist'])) { |
|
1767 | + echo ' |
|
1684 | 1768 | <option value="1"', !empty($context['receive_from']) && $context['receive_from'] == 1 ? ' selected' : '', '>', $txt['pm_receive_from_ignore'], '</option> |
1685 | 1769 | <option value="2"', !empty($context['receive_from']) && $context['receive_from'] == 2 ? ' selected' : '', '>', $txt['pm_receive_from_buddies'], '</option>'; |
1770 | + } |
|
1686 | 1771 | |
1687 | 1772 | echo ' |
1688 | 1773 | <option value="3"', !empty($context['receive_from']) && $context['receive_from'] > 2 ? ' selected' : '', '>', $txt['pm_receive_from_admins'], '</option> |
@@ -1725,11 +1810,12 @@ discard block |
||
1725 | 1810 | if (empty($setting) || !is_array($setting)) |
1726 | 1811 | { |
1727 | 1812 | // Insert a separator (unless this is the first item in the list) |
1728 | - if ($i !== $first_option_key) |
|
1729 | - echo ' |
|
1813 | + if ($i !== $first_option_key) { |
|
1814 | + echo ' |
|
1730 | 1815 | </dl> |
1731 | 1816 | <hr> |
1732 | 1817 | <dl class="settings">'; |
1818 | + } |
|
1733 | 1819 | |
1734 | 1820 | // Should we give a name to this section? |
1735 | 1821 | if (is_string($setting) && !empty($setting)) |
@@ -1738,69 +1824,67 @@ discard block |
||
1738 | 1824 | echo ' |
1739 | 1825 | <dt><strong>' . $setting . '</strong></dt> |
1740 | 1826 | <dd></dd>'; |
1827 | + } else { |
|
1828 | + $titled_section = false; |
|
1741 | 1829 | } |
1742 | - else |
|
1743 | - $titled_section = false; |
|
1744 | 1830 | |
1745 | 1831 | continue; |
1746 | 1832 | } |
1747 | 1833 | |
1748 | 1834 | // Is this disabled? |
1749 | - if ($setting['id'] == 'calendar_start_day' && empty($modSettings['cal_enabled'])) |
|
1750 | - continue; |
|
1751 | - |
|
1752 | - elseif (($setting['id'] == 'topics_per_page' || $setting['id'] == 'messages_per_page') && !empty($modSettings['disableCustomPerPage'])) |
|
1753 | - continue; |
|
1754 | - |
|
1755 | - elseif ($setting['id'] == 'show_no_censored' && empty($modSettings['allow_no_censored'])) |
|
1756 | - continue; |
|
1757 | - |
|
1758 | - elseif ($setting['id'] == 'posts_apply_ignore_list' && empty($modSettings['enable_buddylist'])) |
|
1759 | - continue; |
|
1760 | - |
|
1761 | - elseif ($setting['id'] == 'wysiwyg_default' && !empty($modSettings['disable_wysiwyg'])) |
|
1762 | - continue; |
|
1763 | - |
|
1764 | - elseif ($setting['id'] == 'drafts_autosave_enabled' && (empty($modSettings['drafts_autosave_enabled']) || (empty($modSettings['drafts_post_enabled']) && empty($modSettings['drafts_pm_enabled'])))) |
|
1765 | - continue; |
|
1766 | - |
|
1767 | - elseif ($setting['id'] == 'drafts_show_saved_enabled' && (empty($modSettings['drafts_show_saved_enabled']) || (empty($modSettings['drafts_post_enabled']) && empty($modSettings['drafts_pm_enabled'])))) |
|
1768 | - continue; |
|
1835 | + if ($setting['id'] == 'calendar_start_day' && empty($modSettings['cal_enabled'])) { |
|
1836 | + continue; |
|
1837 | + } elseif (($setting['id'] == 'topics_per_page' || $setting['id'] == 'messages_per_page') && !empty($modSettings['disableCustomPerPage'])) { |
|
1838 | + continue; |
|
1839 | + } elseif ($setting['id'] == 'show_no_censored' && empty($modSettings['allow_no_censored'])) { |
|
1840 | + continue; |
|
1841 | + } elseif ($setting['id'] == 'posts_apply_ignore_list' && empty($modSettings['enable_buddylist'])) { |
|
1842 | + continue; |
|
1843 | + } elseif ($setting['id'] == 'wysiwyg_default' && !empty($modSettings['disable_wysiwyg'])) { |
|
1844 | + continue; |
|
1845 | + } elseif ($setting['id'] == 'drafts_autosave_enabled' && (empty($modSettings['drafts_autosave_enabled']) || (empty($modSettings['drafts_post_enabled']) && empty($modSettings['drafts_pm_enabled'])))) { |
|
1846 | + continue; |
|
1847 | + } elseif ($setting['id'] == 'drafts_show_saved_enabled' && (empty($modSettings['drafts_show_saved_enabled']) || (empty($modSettings['drafts_post_enabled']) && empty($modSettings['drafts_pm_enabled'])))) { |
|
1848 | + continue; |
|
1849 | + } |
|
1769 | 1850 | |
1770 | 1851 | // Some of these may not be set... Set to defaults here |
1771 | 1852 | $opts = array('topics_per_page', 'messages_per_page', 'display_quick_mod'); |
1772 | - if (in_array($setting['id'], $opts) && !isset($context['member']['options'][$setting['id']])) |
|
1773 | - $context['member']['options'][$setting['id']] = 0; |
|
1774 | - |
|
1775 | - if (!isset($setting['type']) || $setting['type'] == 'bool') |
|
1776 | - $setting['type'] = 'checkbox'; |
|
1777 | - |
|
1778 | - elseif ($setting['type'] == 'int' || $setting['type'] == 'integer') |
|
1779 | - $setting['type'] = 'number'; |
|
1853 | + if (in_array($setting['id'], $opts) && !isset($context['member']['options'][$setting['id']])) { |
|
1854 | + $context['member']['options'][$setting['id']] = 0; |
|
1855 | + } |
|
1780 | 1856 | |
1781 | - elseif ($setting['type'] == 'string') |
|
1782 | - $setting['type'] = 'text'; |
|
1857 | + if (!isset($setting['type']) || $setting['type'] == 'bool') { |
|
1858 | + $setting['type'] = 'checkbox'; |
|
1859 | + } elseif ($setting['type'] == 'int' || $setting['type'] == 'integer') { |
|
1860 | + $setting['type'] = 'number'; |
|
1861 | + } elseif ($setting['type'] == 'string') { |
|
1862 | + $setting['type'] = 'text'; |
|
1863 | + } |
|
1783 | 1864 | |
1784 | - if (isset($setting['options'])) |
|
1785 | - $setting['type'] = 'list'; |
|
1865 | + if (isset($setting['options'])) { |
|
1866 | + $setting['type'] = 'list'; |
|
1867 | + } |
|
1786 | 1868 | |
1787 | 1869 | echo ' |
1788 | 1870 | <dt> |
1789 | 1871 | <label for="', $setting['id'], '">', !$titled_section ? '<strong>' : '', $setting['label'], !$titled_section ? '</strong>' : '', '</label>'; |
1790 | 1872 | |
1791 | - if (isset($setting['description'])) |
|
1792 | - echo ' |
|
1873 | + if (isset($setting['description'])) { |
|
1874 | + echo ' |
|
1793 | 1875 | <br> |
1794 | 1876 | <span class="smalltext">', $setting['description'], '</span>'; |
1877 | + } |
|
1795 | 1878 | echo ' |
1796 | 1879 | </dt> |
1797 | 1880 | <dd>'; |
1798 | 1881 | |
1799 | 1882 | // Display checkbox options |
1800 | - if ($setting['type'] == 'checkbox') |
|
1801 | - echo ' |
|
1883 | + if ($setting['type'] == 'checkbox') { |
|
1884 | + echo ' |
|
1802 | 1885 | <input type="hidden" name="default_options[' . $setting['id'] . ']" value="0"> |
1803 | 1886 | <input type="checkbox" name="default_options[', $setting['id'], ']" id="', $setting['id'], '"', !empty($context['member']['options'][$setting['id']]) ? ' checked' : '', ' value="1">'; |
1887 | + } |
|
1804 | 1888 | |
1805 | 1889 | // How about selection lists, we all love them |
1806 | 1890 | elseif ($setting['type'] == 'list') |
@@ -1808,9 +1892,10 @@ discard block |
||
1808 | 1892 | echo ' |
1809 | 1893 | <select name="default_options[', $setting['id'], ']" id="', $setting['id'], '"', '>'; |
1810 | 1894 | |
1811 | - foreach ($setting['options'] as $value => $label) |
|
1812 | - echo ' |
|
1895 | + foreach ($setting['options'] as $value => $label) { |
|
1896 | + echo ' |
|
1813 | 1897 | <option value="', $value, '"', $value == $context['member']['options'][$setting['id']] ? ' selected' : '', '>', $label, '</option>'; |
1898 | + } |
|
1814 | 1899 | |
1815 | 1900 | echo ' |
1816 | 1901 | </select>'; |
@@ -1826,14 +1911,13 @@ discard block |
||
1826 | 1911 | |
1827 | 1912 | echo ' |
1828 | 1913 | <input type="number"', $min . $max . $step; |
1829 | - } |
|
1830 | - elseif (isset($setting['type']) && $setting['type'] == 'url') |
|
1831 | - echo' |
|
1914 | + } elseif (isset($setting['type']) && $setting['type'] == 'url') { |
|
1915 | + echo' |
|
1832 | 1916 | <input type="url"'; |
1833 | - |
|
1834 | - else |
|
1835 | - echo ' |
|
1917 | + } else { |
|
1918 | + echo ' |
|
1836 | 1919 | <input type="text"'; |
1920 | + } |
|
1837 | 1921 | |
1838 | 1922 | echo ' name="default_options[', $setting['id'], ']" id="', $setting['id'], '" value="', isset($context['member']['options'][$setting['id']]) ? $context['member']['options'][$setting['id']] : $setting['value'], '"', $setting['type'] == 'number' ? ' size="5"' : '', '>'; |
1839 | 1923 | } |
@@ -1870,8 +1954,8 @@ discard block |
||
1870 | 1954 | <dl class="settings">'; |
1871 | 1955 | |
1872 | 1956 | // Allow notification on announcements to be disabled? |
1873 | - if (!empty($modSettings['allow_disableAnnounce'])) |
|
1874 | - echo ' |
|
1957 | + if (!empty($modSettings['allow_disableAnnounce'])) { |
|
1958 | + echo ' |
|
1875 | 1959 | <dt> |
1876 | 1960 | <label for="notify_announcements">', $txt['notify_important_email'], '</label> |
1877 | 1961 | </dt> |
@@ -1879,15 +1963,17 @@ discard block |
||
1879 | 1963 | <input type="hidden" name="notify_announcements" value="0"> |
1880 | 1964 | <input type="checkbox" id="notify_announcements" name="notify_announcements" value="1"', !empty($context['member']['notify_announcements']) ? ' checked' : '', '> |
1881 | 1965 | </dd>'; |
1966 | + } |
|
1882 | 1967 | |
1883 | - if (!empty($modSettings['enable_ajax_alerts'])) |
|
1884 | - echo ' |
|
1968 | + if (!empty($modSettings['enable_ajax_alerts'])) { |
|
1969 | + echo ' |
|
1885 | 1970 | <dt> |
1886 | 1971 | <label for="notify_send_body">', $txt['notify_alert_timeout'], '</label> |
1887 | 1972 | </dt> |
1888 | 1973 | <dd> |
1889 | 1974 | <input type="number" size="4" id="notify_alert_timeout" name="opt_alert_timeout" min="0" value="', $context['member']['alert_timeout'], '"> |
1890 | 1975 | </dd>'; |
1976 | + } |
|
1891 | 1977 | |
1892 | 1978 | echo ' |
1893 | 1979 | </dl> |
@@ -1919,9 +2005,10 @@ discard block |
||
1919 | 2005 | |
1920 | 2006 | $label = $txt['alert_opt_' . $opts[1]]; |
1921 | 2007 | $label_pos = isset($opts['label']) ? $opts['label'] : ''; |
1922 | - if ($label_pos == 'before') |
|
1923 | - echo ' |
|
2008 | + if ($label_pos == 'before') { |
|
2009 | + echo ' |
|
1924 | 2010 | <label for="opt_', $opts[1], '">', $label, '</label>'; |
2011 | + } |
|
1925 | 2012 | |
1926 | 2013 | $this_value = isset($context['alert_prefs'][$opts[1]]) ? $context['alert_prefs'][$opts[1]] : 0; |
1927 | 2014 | switch ($opts[0]) |
@@ -1935,17 +2022,19 @@ discard block |
||
1935 | 2022 | echo ' |
1936 | 2023 | <select name="opt_', $opts[1], '" id="opt_', $opts[1], '">'; |
1937 | 2024 | |
1938 | - foreach ($opts['opts'] as $k => $v) |
|
1939 | - echo ' |
|
2025 | + foreach ($opts['opts'] as $k => $v) { |
|
2026 | + echo ' |
|
1940 | 2027 | <option value="', $k, '"', $this_value == $k ? ' selected' : '', '>', $v, '</option>'; |
2028 | + } |
|
1941 | 2029 | echo ' |
1942 | 2030 | </select>'; |
1943 | 2031 | break; |
1944 | 2032 | } |
1945 | 2033 | |
1946 | - if ($label_pos == 'after') |
|
1947 | - echo ' |
|
2034 | + if ($label_pos == 'after') { |
|
2035 | + echo ' |
|
1948 | 2036 | <label for="opt_', $opts[1], '">', $label, '</label>'; |
2037 | + } |
|
1949 | 2038 | |
1950 | 2039 | echo ' |
1951 | 2040 | </td> |
@@ -2062,11 +2151,12 @@ discard block |
||
2062 | 2151 | <p class="information">', $txt['groupMembership_info'], '</p>'; |
2063 | 2152 | |
2064 | 2153 | // Do we have an update message? |
2065 | - if (!empty($context['update_message'])) |
|
2066 | - echo ' |
|
2154 | + if (!empty($context['update_message'])) { |
|
2155 | + echo ' |
|
2067 | 2156 | <div class="infobox"> |
2068 | 2157 | ', $context['update_message'], '. |
2069 | 2158 | </div>'; |
2159 | + } |
|
2070 | 2160 | |
2071 | 2161 | echo ' |
2072 | 2162 | <div id="groups">'; |
@@ -2088,8 +2178,7 @@ discard block |
||
2088 | 2178 | </div> |
2089 | 2179 | </div> |
2090 | 2180 | </div><!-- .groupmembership -->'; |
2091 | - } |
|
2092 | - else |
|
2181 | + } else |
|
2093 | 2182 | { |
2094 | 2183 | echo ' |
2095 | 2184 | <div class="title_bar"> |
@@ -2101,27 +2190,30 @@ discard block |
||
2101 | 2190 | echo ' |
2102 | 2191 | <div class="windowbg" id="primdiv_', $group['id'], '">'; |
2103 | 2192 | |
2104 | - if ($context['can_edit_primary']) |
|
2105 | - echo ' |
|
2193 | + if ($context['can_edit_primary']) { |
|
2194 | + echo ' |
|
2106 | 2195 | <input type="radio" name="primary" id="primary_', $group['id'], '" value="', $group['id'], '"', $group['is_primary'] ? ' checked' : '', ' onclick="highlightSelected(\'primdiv_' . $group['id'] . '\');"', $group['can_be_primary'] ? '' : ' disabled', '>'; |
2196 | + } |
|
2107 | 2197 | |
2108 | 2198 | echo ' |
2109 | 2199 | <label for="primary_', $group['id'], '"><strong>', (empty($group['color']) ? $group['name'] : '<span style="color: ' . $group['color'] . '">' . $group['name'] . '</span>'), '</strong>', (!empty($group['desc']) ? '<br><span class="smalltext">' . $group['desc'] . '</span>' : ''), '</label>'; |
2110 | 2200 | |
2111 | 2201 | // Can they leave their group? |
2112 | - if ($group['can_leave']) |
|
2113 | - echo ' |
|
2202 | + if ($group['can_leave']) { |
|
2203 | + echo ' |
|
2114 | 2204 | <a href="' . $scripturl . '?action=profile;save;u=' . $context['id_member'] . ';area=groupmembership;' . $context['session_var'] . '=' . $context['session_id'] . ';gid=' . $group['id'] . ';', $context[$context['token_check'] . '_token_var'], '=', $context[$context['token_check'] . '_token'], '">' . $txt['leave_group'] . '</a>'; |
2205 | + } |
|
2115 | 2206 | |
2116 | 2207 | echo ' |
2117 | 2208 | </div><!-- .windowbg -->'; |
2118 | 2209 | } |
2119 | 2210 | |
2120 | - if ($context['can_edit_primary']) |
|
2121 | - echo ' |
|
2211 | + if ($context['can_edit_primary']) { |
|
2212 | + echo ' |
|
2122 | 2213 | <div class="padding righttext"> |
2123 | 2214 | <input type="submit" value="', $txt['make_primary'], '" class="button"> |
2124 | 2215 | </div>'; |
2216 | + } |
|
2125 | 2217 | |
2126 | 2218 | // Any groups they can join? |
2127 | 2219 | if (!empty($context['groups']['available'])) |
@@ -2137,17 +2229,16 @@ discard block |
||
2137 | 2229 | <div class="windowbg"> |
2138 | 2230 | <strong>', (empty($group['color']) ? $group['name'] : '<span style="color: ' . $group['color'] . '">' . $group['name'] . '</span>'), '</strong>', (!empty($group['desc']) ? '<br><span class="smalltext">' . $group['desc'] . '</span>' : ''), ''; |
2139 | 2231 | |
2140 | - if ($group['type'] == 3) |
|
2141 | - echo ' |
|
2232 | + if ($group['type'] == 3) { |
|
2233 | + echo ' |
|
2142 | 2234 | <a href="', $scripturl, '?action=profile;save;u=', $context['id_member'], ';area=groupmembership;', $context['session_var'], '=', $context['session_id'], ';gid=', $group['id'], ';', $context[$context['token_check'] . '_token_var'], '=', $context[$context['token_check'] . '_token'], '" class="button floatright">', $txt['join_group'], '</a>'; |
2143 | - |
|
2144 | - elseif ($group['type'] == 2 && $group['pending']) |
|
2145 | - echo ' |
|
2235 | + } elseif ($group['type'] == 2 && $group['pending']) { |
|
2236 | + echo ' |
|
2146 | 2237 | <span class="floatright">', $txt['approval_pending'], '</span>'; |
2147 | - |
|
2148 | - elseif ($group['type'] == 2) |
|
2149 | - echo ' |
|
2238 | + } elseif ($group['type'] == 2) { |
|
2239 | + echo ' |
|
2150 | 2240 | <a href="', $scripturl, '?action=profile;u=', $context['id_member'], ';area=groupmembership;request=', $group['id'], '" class="button floatright">', $txt['request_group'], '</a>'; |
2241 | + } |
|
2151 | 2242 | |
2152 | 2243 | echo ' |
2153 | 2244 | </div><!-- .windowbg -->'; |
@@ -2170,9 +2261,10 @@ discard block |
||
2170 | 2261 | |
2171 | 2262 | prevDiv.className = "windowbg"; |
2172 | 2263 | }'; |
2173 | - if (isset($context['groups']['member'][$context['primary_group']])) |
|
2174 | - echo ' |
|
2264 | + if (isset($context['groups']['member'][$context['primary_group']])) { |
|
2265 | + echo ' |
|
2175 | 2266 | highlightSelected("primdiv_' . $context['primary_group'] . '");'; |
2267 | + } |
|
2176 | 2268 | |
2177 | 2269 | echo ' |
2178 | 2270 | </script>'; |
@@ -2181,9 +2273,10 @@ discard block |
||
2181 | 2273 | echo ' |
2182 | 2274 | </div><!-- #groups -->'; |
2183 | 2275 | |
2184 | - if (!empty($context['token_check'])) |
|
2185 | - echo ' |
|
2276 | + if (!empty($context['token_check'])) { |
|
2277 | + echo ' |
|
2186 | 2278 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
2279 | + } |
|
2187 | 2280 | |
2188 | 2281 | echo ' |
2189 | 2282 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -2231,14 +2324,15 @@ discard block |
||
2231 | 2324 | |
2232 | 2325 | foreach ($category['boards'] as $board) |
2233 | 2326 | { |
2234 | - if ($i == $limit) |
|
2235 | - echo ' |
|
2327 | + if ($i == $limit) { |
|
2328 | + echo ' |
|
2236 | 2329 | </ul> |
2237 | 2330 | </li> |
2238 | 2331 | </ul> |
2239 | 2332 | <ul class="ignoreboards floatright"> |
2240 | 2333 | <li class="category"> |
2241 | 2334 | <ul>'; |
2335 | + } |
|
2242 | 2336 | |
2243 | 2337 | echo ' |
2244 | 2338 | <li class="board" style="margin-', $context['right_to_left'] ? 'right' : 'left', ': ', $board['child_level'], 'em;"> |
@@ -2284,10 +2378,11 @@ discard block |
||
2284 | 2378 | |
2285 | 2379 | // Work out the starting color. |
2286 | 2380 | $context['current_color'] = $context['colors'][0]; |
2287 | - foreach ($context['colors'] as $limit => $color) |
|
2288 | - if ($context['member']['warning'] >= $limit) |
|
2381 | + foreach ($context['colors'] as $limit => $color) { |
|
2382 | + if ($context['member']['warning'] >= $limit) |
|
2289 | 2383 | $context['current_color'] = $color; |
2290 | -} |
|
2384 | + } |
|
2385 | + } |
|
2291 | 2386 | |
2292 | 2387 | // Show all warnings of a user? |
2293 | 2388 | function template_viewWarning() |
@@ -2326,14 +2421,15 @@ discard block |
||
2326 | 2421 | </dd>'; |
2327 | 2422 | |
2328 | 2423 | // There's some impact of this? |
2329 | - if (!empty($context['level_effects'][$context['current_level']])) |
|
2330 | - echo ' |
|
2424 | + if (!empty($context['level_effects'][$context['current_level']])) { |
|
2425 | + echo ' |
|
2331 | 2426 | <dt> |
2332 | 2427 | <strong>', $txt['profile_viewwarning_impact'], ':</strong> |
2333 | 2428 | </dt> |
2334 | 2429 | <dd> |
2335 | 2430 | ', $context['level_effects'][$context['current_level']], ' |
2336 | 2431 | </dd>'; |
2432 | + } |
|
2337 | 2433 | |
2338 | 2434 | echo ' |
2339 | 2435 | </dl> |
@@ -2371,10 +2467,11 @@ discard block |
||
2371 | 2467 | |
2372 | 2468 | // Otherwise see what we can do...'; |
2373 | 2469 | |
2374 | - foreach ($context['notification_templates'] as $k => $type) |
|
2375 | - echo ' |
|
2470 | + foreach ($context['notification_templates'] as $k => $type) { |
|
2471 | + echo ' |
|
2376 | 2472 | if (index == ', $k, ') |
2377 | 2473 | document.getElementById(\'warn_body\').value = "', strtr($type['body'], array('"' => "'", "\n" => '\\n', "\r" => '')), '";'; |
2474 | + } |
|
2378 | 2475 | |
2379 | 2476 | echo ' |
2380 | 2477 | } |
@@ -2384,10 +2481,11 @@ discard block |
||
2384 | 2481 | // Also set the right effect. |
2385 | 2482 | effectText = "";'; |
2386 | 2483 | |
2387 | - foreach ($context['level_effects'] as $limit => $text) |
|
2388 | - echo ' |
|
2484 | + foreach ($context['level_effects'] as $limit => $text) { |
|
2485 | + echo ' |
|
2389 | 2486 | if (slideAmount >= ', $limit, ') |
2390 | 2487 | effectText = "', $text, '";'; |
2488 | + } |
|
2391 | 2489 | |
2392 | 2490 | echo ' |
2393 | 2491 | setInnerHTML(document.getElementById(\'cur_level_div\'), slideAmount + \'% (\' + effectText + \')\'); |
@@ -2402,32 +2500,35 @@ discard block |
||
2402 | 2500 | </h3> |
2403 | 2501 | </div>'; |
2404 | 2502 | |
2405 | - if (!$context['user']['is_owner']) |
|
2406 | - echo ' |
|
2503 | + if (!$context['user']['is_owner']) { |
|
2504 | + echo ' |
|
2407 | 2505 | <p class="information">', $txt['profile_warning_desc'], '</p>'; |
2506 | + } |
|
2408 | 2507 | |
2409 | 2508 | echo ' |
2410 | 2509 | <div class="windowbg"> |
2411 | 2510 | <dl class="settings">'; |
2412 | 2511 | |
2413 | - if (!$context['user']['is_owner']) |
|
2414 | - echo ' |
|
2512 | + if (!$context['user']['is_owner']) { |
|
2513 | + echo ' |
|
2415 | 2514 | <dt> |
2416 | 2515 | <strong>', $txt['profile_warning_name'], ':</strong> |
2417 | 2516 | </dt> |
2418 | 2517 | <dd> |
2419 | 2518 | <strong>', $context['member']['name'], '</strong> |
2420 | 2519 | </dd>'; |
2520 | + } |
|
2421 | 2521 | |
2422 | 2522 | echo ' |
2423 | 2523 | <dt> |
2424 | 2524 | <strong>', $txt['profile_warning_level'], ':</strong>'; |
2425 | 2525 | |
2426 | 2526 | // Is there only so much they can apply? |
2427 | - if ($context['warning_limit']) |
|
2428 | - echo ' |
|
2527 | + if ($context['warning_limit']) { |
|
2528 | + echo ' |
|
2429 | 2529 | <br> |
2430 | 2530 | <span class="smalltext">', sprintf($txt['profile_warning_limit_attribute'], $context['warning_limit']), '</span>'; |
2531 | + } |
|
2431 | 2532 | |
2432 | 2533 | echo ' |
2433 | 2534 | </dt> |
@@ -2482,9 +2583,10 @@ discard block |
||
2482 | 2583 | <option value="-1">', $txt['profile_warning_notify_template'], '</option> |
2483 | 2584 | <option value="-1" disabled>------------------------------</option>'; |
2484 | 2585 | |
2485 | - foreach ($context['notification_templates'] as $id_template => $template) |
|
2486 | - echo ' |
|
2586 | + foreach ($context['notification_templates'] as $id_template => $template) { |
|
2587 | + echo ' |
|
2487 | 2588 | <option value="', $id_template, '">', $template['title'], '</option>'; |
2589 | + } |
|
2488 | 2590 | |
2489 | 2591 | echo ' |
2490 | 2592 | </select> |
@@ -2497,9 +2599,10 @@ discard block |
||
2497 | 2599 | </dl> |
2498 | 2600 | <div class="righttext">'; |
2499 | 2601 | |
2500 | - if (!empty($context['token_check'])) |
|
2501 | - echo ' |
|
2602 | + if (!empty($context['token_check'])) { |
|
2603 | + echo ' |
|
2502 | 2604 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
2605 | + } |
|
2503 | 2606 | |
2504 | 2607 | echo ' |
2505 | 2608 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -2515,8 +2618,8 @@ discard block |
||
2515 | 2618 | echo ' |
2516 | 2619 | <script>'; |
2517 | 2620 | |
2518 | - if (!$context['user']['is_owner']) |
|
2519 | - echo ' |
|
2621 | + if (!$context['user']['is_owner']) { |
|
2622 | + echo ' |
|
2520 | 2623 | modifyWarnNotify(); |
2521 | 2624 | $(document).ready(function() { |
2522 | 2625 | $("#preview_button").click(function() { |
@@ -2555,6 +2658,7 @@ discard block |
||
2555 | 2658 | }); |
2556 | 2659 | return false; |
2557 | 2660 | }'; |
2661 | + } |
|
2558 | 2662 | |
2559 | 2663 | echo ' |
2560 | 2664 | </script>'; |
@@ -2577,17 +2681,19 @@ discard block |
||
2577 | 2681 | </div>'; |
2578 | 2682 | |
2579 | 2683 | // If deleting another account give them a lovely info box. |
2580 | - if (!$context['user']['is_owner']) |
|
2581 | - echo ' |
|
2684 | + if (!$context['user']['is_owner']) { |
|
2685 | + echo ' |
|
2582 | 2686 | <p class="information">', $txt['deleteAccount_desc'], '</p>'; |
2687 | + } |
|
2583 | 2688 | |
2584 | 2689 | echo ' |
2585 | 2690 | <div class="windowbg2">'; |
2586 | 2691 | |
2587 | 2692 | // If they are deleting their account AND the admin needs to approve it - give them another piece of info ;) |
2588 | - if ($context['needs_approval']) |
|
2589 | - echo ' |
|
2693 | + if ($context['needs_approval']) { |
|
2694 | + echo ' |
|
2590 | 2695 | <div class="errorbox">', $txt['deleteAccount_approval'], '</div>'; |
2696 | + } |
|
2591 | 2697 | |
2592 | 2698 | // If the user is deleting their own account warn them first - and require a password! |
2593 | 2699 | if ($context['user']['is_owner']) |
@@ -2599,9 +2705,10 @@ discard block |
||
2599 | 2705 | <input type="password" name="oldpasswrd" size="20"> |
2600 | 2706 | <input type="submit" value="', $txt['yes'], '" class="button">'; |
2601 | 2707 | |
2602 | - if (!empty($context['token_check'])) |
|
2603 | - echo ' |
|
2708 | + if (!empty($context['token_check'])) { |
|
2709 | + echo ' |
|
2604 | 2710 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
2711 | + } |
|
2605 | 2712 | |
2606 | 2713 | echo ' |
2607 | 2714 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -2631,10 +2738,11 @@ discard block |
||
2631 | 2738 | <option value="topics">', $txt['deleteAccount_topics'], '</option> |
2632 | 2739 | </select>'; |
2633 | 2740 | |
2634 | - if ($context['show_perma_delete']) |
|
2635 | - echo ' |
|
2741 | + if ($context['show_perma_delete']) { |
|
2742 | + echo ' |
|
2636 | 2743 | <br> |
2637 | 2744 | <label for="perma_delete"><input type="checkbox" name="perma_delete" id="perma_delete" value="1">', $txt['deleteAccount_permanent'], ':</label>'; |
2745 | + } |
|
2638 | 2746 | |
2639 | 2747 | echo ' |
2640 | 2748 | </div>'; |
@@ -2647,9 +2755,10 @@ discard block |
||
2647 | 2755 | <div> |
2648 | 2756 | <input type="submit" value="', $txt['delete'], '" class="button">'; |
2649 | 2757 | |
2650 | - if (!empty($context['token_check'])) |
|
2651 | - echo ' |
|
2758 | + if (!empty($context['token_check'])) { |
|
2759 | + echo ' |
|
2652 | 2760 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
2761 | + } |
|
2653 | 2762 | |
2654 | 2763 | echo ' |
2655 | 2764 | <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '"> |
@@ -2675,8 +2784,8 @@ discard block |
||
2675 | 2784 | <hr>'; |
2676 | 2785 | |
2677 | 2786 | // Only show the password box if it's actually needed. |
2678 | - if ($context['require_password']) |
|
2679 | - echo ' |
|
2787 | + if ($context['require_password']) { |
|
2788 | + echo ' |
|
2680 | 2789 | <dl class="settings"> |
2681 | 2790 | <dt> |
2682 | 2791 | <strong', isset($context['modify_error']['bad_password']) || isset($context['modify_error']['no_password']) ? ' class="error"' : '', '>', $txt['current_password'], ': </strong><br> |
@@ -2686,13 +2795,15 @@ discard block |
||
2686 | 2795 | <input type="password" name="oldpasswrd" size="20"> |
2687 | 2796 | </dd> |
2688 | 2797 | </dl>'; |
2798 | + } |
|
2689 | 2799 | |
2690 | 2800 | echo ' |
2691 | 2801 | <div class="righttext">'; |
2692 | 2802 | |
2693 | - if (!empty($context['token_check'])) |
|
2694 | - echo ' |
|
2803 | + if (!empty($context['token_check'])) { |
|
2804 | + echo ' |
|
2695 | 2805 | <input type="hidden" name="', $context[$context['token_check'] . '_token_var'], '" value="', $context[$context['token_check'] . '_token'], '">'; |
2806 | + } |
|
2696 | 2807 | |
2697 | 2808 | echo ' |
2698 | 2809 | <input type="submit" value="', $txt['change_profile'], '" class="button"> |
@@ -2719,9 +2830,10 @@ discard block |
||
2719 | 2830 | <ul id="list_errors">'; |
2720 | 2831 | |
2721 | 2832 | // Cycle through each error and display an error message. |
2722 | - foreach ($context['post_errors'] as $error) |
|
2723 | - echo ' |
|
2833 | + foreach ($context['post_errors'] as $error) { |
|
2834 | + echo ' |
|
2724 | 2835 | <li>', isset($txt['profile_error_' . $error]) ? $txt['profile_error_' . $error] : $error, '</li>'; |
2836 | + } |
|
2725 | 2837 | |
2726 | 2838 | echo ' |
2727 | 2839 | </ul>'; |
@@ -2747,12 +2859,13 @@ discard block |
||
2747 | 2859 | <select name="id_group" ', ($context['user']['is_owner'] && $context['member']['group_id'] == 1 ? 'onchange="if (this.value != 1 && !confirm(\'' . $txt['deadmin_confirm'] . '\')) this.value = 1;"' : ''), '>'; |
2748 | 2860 | |
2749 | 2861 | // Fill the select box with all primary member groups that can be assigned to a member. |
2750 | - foreach ($context['member_groups'] as $member_group) |
|
2751 | - if (!empty($member_group['can_be_primary'])) |
|
2862 | + foreach ($context['member_groups'] as $member_group) { |
|
2863 | + if (!empty($member_group['can_be_primary'])) |
|
2752 | 2864 | echo ' |
2753 | 2865 | <option value="', $member_group['id'], '"', $member_group['is_primary'] ? ' selected' : '', '> |
2754 | 2866 | ', $member_group['name'], ' |
2755 | 2867 | </option>'; |
2868 | + } |
|
2756 | 2869 | |
2757 | 2870 | echo ' |
2758 | 2871 | </select> |
@@ -2765,10 +2878,11 @@ discard block |
||
2765 | 2878 | <input type="hidden" name="additional_groups[]" value="0">'; |
2766 | 2879 | |
2767 | 2880 | // For each membergroup show a checkbox so members can be assigned to more than one group. |
2768 | - foreach ($context['member_groups'] as $member_group) |
|
2769 | - if ($member_group['can_be_additional']) |
|
2881 | + foreach ($context['member_groups'] as $member_group) { |
|
2882 | + if ($member_group['can_be_additional']) |
|
2770 | 2883 | echo ' |
2771 | 2884 | <label for="additional_groups-', $member_group['id'], '"><input type="checkbox" name="additional_groups[]" value="', $member_group['id'], '" id="additional_groups-', $member_group['id'], '"', $member_group['is_additional'] ? ' checked' : '', '> ', $member_group['name'], '</label><br>'; |
2885 | + } |
|
2772 | 2886 | |
2773 | 2887 | echo ' |
2774 | 2888 | </span> |
@@ -2828,9 +2942,10 @@ discard block |
||
2828 | 2942 | <span class="smalltext">', $txt['sig_info'], '</span><br> |
2829 | 2943 | <br>'; |
2830 | 2944 | |
2831 | - if ($context['show_spellchecking']) |
|
2832 | - echo ' |
|
2945 | + if ($context['show_spellchecking']) { |
|
2946 | + echo ' |
|
2833 | 2947 | <input type="button" value="', $txt['spell_check'], '" onclick="spellCheck(\'creator\', \'signature\');" class="button">'; |
2948 | + } |
|
2834 | 2949 | |
2835 | 2950 | echo ' |
2836 | 2951 | </dt> |
@@ -2838,17 +2953,20 @@ discard block |
||
2838 | 2953 | <textarea class="editor" onkeyup="calcCharLeft();" id="signature" name="signature" rows="5" cols="50">', $context['member']['signature'], '</textarea><br>'; |
2839 | 2954 | |
2840 | 2955 | // If there is a limit at all! |
2841 | - if (!empty($context['signature_limits']['max_length'])) |
|
2842 | - echo ' |
|
2956 | + if (!empty($context['signature_limits']['max_length'])) { |
|
2957 | + echo ' |
|
2843 | 2958 | <span class="smalltext">', sprintf($txt['max_sig_characters'], $context['signature_limits']['max_length']), ' <span id="signatureLeft">', $context['signature_limits']['max_length'], '</span></span><br>'; |
2959 | + } |
|
2844 | 2960 | |
2845 | - if (!empty($context['show_preview_button'])) |
|
2846 | - echo ' |
|
2961 | + if (!empty($context['show_preview_button'])) { |
|
2962 | + echo ' |
|
2847 | 2963 | <input type="button" name="preview_signature" id="preview_button" value="', $txt['preview_signature'], '" class="button floatright">'; |
2964 | + } |
|
2848 | 2965 | |
2849 | - if ($context['signature_warning']) |
|
2850 | - echo ' |
|
2966 | + if ($context['signature_warning']) { |
|
2967 | + echo ' |
|
2851 | 2968 | <span class="smalltext">', $context['signature_warning'], '</span>'; |
2969 | + } |
|
2852 | 2970 | |
2853 | 2971 | // Some javascript used to count how many characters have been used so far in the signature. |
2854 | 2972 | echo ' |
@@ -2893,9 +3011,10 @@ discard block |
||
2893 | 3011 | <select name="cat" id="cat" size="10" onchange="changeSel(\'\');" onfocus="selectRadioByName(document.forms.creator.avatar_choice, \'server_stored\');">'; |
2894 | 3012 | |
2895 | 3013 | // This lists all the file categories. |
2896 | - foreach ($context['avatars'] as $avatar) |
|
2897 | - echo ' |
|
3014 | + foreach ($context['avatars'] as $avatar) { |
|
3015 | + echo ' |
|
2898 | 3016 | <option value="', $avatar['filename'] . ($avatar['is_dir'] ? '/' : ''), '"', ($avatar['checked'] ? ' selected' : ''), '>', $avatar['name'], '</option>'; |
3017 | + } |
|
2899 | 3018 | |
2900 | 3019 | echo ' |
2901 | 3020 | </select> |
@@ -2927,20 +3046,22 @@ discard block |
||
2927 | 3046 | } |
2928 | 3047 | |
2929 | 3048 | // If the user can link to an off server avatar, show them a box to input the address. |
2930 | - if (!empty($context['member']['avatar']['allow_external'])) |
|
2931 | - echo ' |
|
3049 | + if (!empty($context['member']['avatar']['allow_external'])) { |
|
3050 | + echo ' |
|
2932 | 3051 | <div id="avatar_external"> |
2933 | 3052 | <div class="smalltext">', $txt['avatar_by_url'], '</div>', !empty($modSettings['avatar_action_too_large']) && $modSettings['avatar_action_too_large'] == 'option_download_and_resize' ? template_max_size('external') : '', ' |
2934 | 3053 | <input type="text" name="userpicpersonal" size="45" value="', ((stristr($context['member']['avatar']['external'], 'http://') || stristr($context['member']['avatar']['external'], 'https://')) ? $context['member']['avatar']['external'] : 'http://'), '" onfocus="selectRadioByName(document.forms.creator.avatar_choice, \'external\');" onchange="if (typeof(previewExternalAvatar) != \'undefined\') previewExternalAvatar(this.value);"> |
2935 | 3054 | </div>'; |
3055 | + } |
|
2936 | 3056 | |
2937 | 3057 | // If the user is able to upload avatars to the server show them an upload box. |
2938 | - if (!empty($context['member']['avatar']['allow_upload'])) |
|
2939 | - echo ' |
|
3058 | + if (!empty($context['member']['avatar']['allow_upload'])) { |
|
3059 | + echo ' |
|
2940 | 3060 | <div id="avatar_upload"> |
2941 | 3061 | <input type="file" size="44" name="attachment" id="avatar_upload_box" value="" onchange="readfromUpload(this)" onfocus="selectRadioByName(document.forms.creator.avatar_choice, \'upload\');" accept="image/gif, image/jpeg, image/jpg, image/png">', template_max_size('upload'), ' |
2942 | 3062 | ', (!empty($context['member']['avatar']['id_attach']) ? '<br><img src="' . $context['member']['avatar']['href'] . (strpos($context['member']['avatar']['href'], '?') === false ? '?' : '&') . 'time=' . time() . '" alt="" id="attached_image"><input type="hidden" name="id_attach" value="' . $context['member']['avatar']['id_attach'] . '">' : ''), ' |
2943 | 3063 | </div>'; |
3064 | + } |
|
2944 | 3065 | |
2945 | 3066 | // if the user is able to use Gravatar avatars show then the image preview |
2946 | 3067 | if (!empty($context['member']['avatar']['allow_gravatar'])) |
@@ -2949,16 +3070,17 @@ discard block |
||
2949 | 3070 | <div id="avatar_gravatar"> |
2950 | 3071 | <img src="' . $context['member']['avatar']['href'] . '" alt="">'; |
2951 | 3072 | |
2952 | - if (empty($modSettings['gravatarAllowExtraEmail'])) |
|
2953 | - echo ' |
|
3073 | + if (empty($modSettings['gravatarAllowExtraEmail'])) { |
|
3074 | + echo ' |
|
2954 | 3075 | <div class="smalltext">', $txt['gravatar_noAlternateEmail'], '</div>'; |
2955 | - else |
|
3076 | + } else |
|
2956 | 3077 | { |
2957 | 3078 | // Depending on other stuff, the stored value here might have some odd things in it from other areas. |
2958 | - if ($context['member']['avatar']['external'] == $context['member']['email']) |
|
2959 | - $textbox_value = ''; |
|
2960 | - else |
|
2961 | - $textbox_value = $context['member']['avatar']['external']; |
|
3079 | + if ($context['member']['avatar']['external'] == $context['member']['email']) { |
|
3080 | + $textbox_value = ''; |
|
3081 | + } else { |
|
3082 | + $textbox_value = $context['member']['avatar']['external']; |
|
3083 | + } |
|
2962 | 3084 | |
2963 | 3085 | echo ' |
2964 | 3086 | <div class="smalltext">', $txt['gravatar_alternateEmail'], '</div> |
@@ -3030,8 +3152,9 @@ discard block |
||
3030 | 3152 | $h = !empty($modSettings['avatar_max_height_' . $type]) ? comma_format($modSettings['avatar_max_height_' . $type]) : 0; |
3031 | 3153 | |
3032 | 3154 | $suffix = (!empty($w) ? 'w' : '') . (!empty($h) ? 'h' : ''); |
3033 | - if (empty($suffix)) |
|
3034 | - return; |
|
3155 | + if (empty($suffix)) { |
|
3156 | + return; |
|
3157 | + } |
|
3035 | 3158 | |
3036 | 3159 | echo ' |
3037 | 3160 | <div class="smalltext">', sprintf($txt['avatar_max_size_' . $suffix], $w, $h), '</div>'; |
@@ -3056,9 +3179,10 @@ discard block |
||
3056 | 3179 | <select name="easyformat" id="easyformat" onchange="document.forms.creator.time_format.value = this.options[this.selectedIndex].value;">'; |
3057 | 3180 | |
3058 | 3181 | // Help the user by showing a list of common time formats. |
3059 | - foreach ($context['easy_timeformats'] as $time_format) |
|
3060 | - echo ' |
|
3182 | + foreach ($context['easy_timeformats'] as $time_format) { |
|
3183 | + echo ' |
|
3061 | 3184 | <option value="', $time_format['format'], '"', $time_format['format'] == $context['member']['time_format'] ? ' selected' : '', '>', $time_format['title'], '</option>'; |
3185 | + } |
|
3062 | 3186 | |
3063 | 3187 | echo ' |
3064 | 3188 | </select> |
@@ -3096,9 +3220,10 @@ discard block |
||
3096 | 3220 | <dd> |
3097 | 3221 | <select name="smiley_set" id="smiley_set" onchange="document.getElementById(\'smileypr\').src = this.selectedIndex == 0 ? \'', $settings['images_url'], '/blank.png\' : \'', $modSettings['smileys_url'], '/\' + (this.selectedIndex != 1 ? this.options[this.selectedIndex].value : \'', !empty($settings['smiley_sets_default']) ? $settings['smiley_sets_default'] : $modSettings['smiley_sets_default'], '\') + \'/smiley.png\';">'; |
3098 | 3222 | |
3099 | - foreach ($context['smiley_sets'] as $set) |
|
3100 | - echo ' |
|
3223 | + foreach ($context['smiley_sets'] as $set) { |
|
3224 | + echo ' |
|
3101 | 3225 | <option value="', $set['id'], '"', $set['selected'] ? ' selected' : '', '>', $set['name'], '</option>'; |
3226 | + } |
|
3102 | 3227 | |
3103 | 3228 | echo ' |
3104 | 3229 | </select> |
@@ -3150,10 +3275,11 @@ discard block |
||
3150 | 3275 | <img src="', $context['tfa_qr_url'], '" alt=""> |
3151 | 3276 | </div>'; |
3152 | 3277 | |
3153 | - if (!empty($context['from_ajax'])) |
|
3154 | - echo ' |
|
3278 | + if (!empty($context['from_ajax'])) { |
|
3279 | + echo ' |
|
3155 | 3280 | <br> |
3156 | 3281 | <a href="javascript:self.close();"></a>'; |
3282 | + } |
|
3157 | 3283 | |
3158 | 3284 | echo ' |
3159 | 3285 | </div> |
@@ -3193,17 +3319,16 @@ discard block |
||
3193 | 3319 | </dt> |
3194 | 3320 | <dd>'; |
3195 | 3321 | |
3196 | - if (!$context['tfa_enabled'] && $context['user']['is_owner']) |
|
3197 | - echo ' |
|
3322 | + if (!$context['tfa_enabled'] && $context['user']['is_owner']) { |
|
3323 | + echo ' |
|
3198 | 3324 | <a href="', !empty($modSettings['force_ssl']) ? strtr($scripturl, array('http://' => 'https://')) : $scripturl, '?action=profile;area=tfasetup" id="enable_tfa">', $txt['tfa_profile_enable'], '</a>'; |
3199 | - |
|
3200 | - elseif (!$context['tfa_enabled']) |
|
3201 | - echo ' |
|
3325 | + } elseif (!$context['tfa_enabled']) { |
|
3326 | + echo ' |
|
3202 | 3327 | ', $txt['tfa_profile_disabled']; |
3203 | - |
|
3204 | - else |
|
3205 | - echo ' |
|
3328 | + } else { |
|
3329 | + echo ' |
|
3206 | 3330 | ', sprintf($txt['tfa_profile_enabled'], $scripturl . '?action=profile;u=' . $context['id_member'] . ';area=tfasetup;disable'); |
3331 | + } |
|
3207 | 3332 | |
3208 | 3333 | echo ' |
3209 | 3334 | </dd>'; |
@@ -1,9 +1,10 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | // Try to handle it with the upper level index.php. (it should know what to do.) |
4 | -if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
|
4 | +if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) { |
|
5 | 5 | include (dirname(dirname(__FILE__)) . '/index.php'); |
6 | -else |
|
6 | +} else { |
|
7 | 7 | exit; |
8 | +} |
|
8 | 9 | |
9 | 10 | ?> |
10 | 11 | \ No newline at end of file |
@@ -1,9 +1,10 @@ |
||
1 | 1 | <?php |
2 | 2 | |
3 | 3 | // Try to handle it with the upper level index.php. (it should know what to do.) |
4 | -if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) |
|
4 | +if (file_exists(dirname(dirname(__FILE__)) . '/index.php')) { |
|
5 | 5 | include (dirname(dirname(__FILE__)) . '/index.php'); |
6 | -else |
|
6 | +} else { |
|
7 | 7 | exit; |
8 | +} |
|
8 | 9 | |
9 | 10 | ?> |
10 | 11 | \ No newline at end of file |
@@ -12,349 +12,349 @@ |
||
12 | 12 | class Punycode |
13 | 13 | { |
14 | 14 | |
15 | - /** |
|
16 | - * Bootstring parameter values |
|
17 | - * |
|
18 | - */ |
|
19 | - const BASE = 36; |
|
20 | - const TMIN = 1; |
|
21 | - const TMAX = 26; |
|
22 | - const SKEW = 38; |
|
23 | - const DAMP = 700; |
|
24 | - const INITIAL_BIAS = 72; |
|
25 | - const INITIAL_N = 128; |
|
26 | - const PREFIX = 'xn--'; |
|
27 | - const DELIMITER = '-'; |
|
28 | - |
|
29 | - /** |
|
30 | - * Encode table |
|
31 | - * |
|
32 | - * @param array |
|
33 | - */ |
|
34 | - protected static $encodeTable = array( |
|
35 | - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', |
|
36 | - 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', |
|
37 | - 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', |
|
38 | - ); |
|
39 | - |
|
40 | - /** |
|
41 | - * Decode table |
|
42 | - * |
|
43 | - * @param array |
|
44 | - */ |
|
45 | - protected static $decodeTable = array( |
|
46 | - 'a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5, |
|
47 | - 'g' => 6, 'h' => 7, 'i' => 8, 'j' => 9, 'k' => 10, 'l' => 11, |
|
48 | - 'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17, |
|
49 | - 's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23, |
|
50 | - 'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29, |
|
51 | - '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35 |
|
52 | - ); |
|
53 | - |
|
54 | - /** |
|
55 | - * Character encoding |
|
56 | - * |
|
57 | - * @param string |
|
58 | - */ |
|
59 | - protected $encoding; |
|
60 | - |
|
61 | - /** |
|
62 | - * Constructor |
|
63 | - * |
|
64 | - * @param string $encoding Character encoding |
|
65 | - */ |
|
66 | - public function __construct($encoding = 'UTF-8') |
|
67 | - { |
|
68 | - $this->encoding = $encoding; |
|
69 | - } |
|
70 | - |
|
71 | - /** |
|
72 | - * Encode a domain to its Punycode version |
|
73 | - * |
|
74 | - * @param string $input Domain name in Unicode to be encoded |
|
75 | - * @return string Punycode representation in ASCII |
|
76 | - */ |
|
77 | - public function encode($input) |
|
78 | - { |
|
79 | - $input = mb_strtolower($input, $this->encoding); |
|
80 | - $parts = explode('.', $input); |
|
81 | - foreach ($parts as &$part) { |
|
82 | - $length = strlen($part); |
|
83 | - if ($length < 1) { |
|
84 | - throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
85 | - } |
|
86 | - $part = $this->encodePart($part); |
|
87 | - } |
|
88 | - $output = implode('.', $parts); |
|
89 | - $length = strlen($output); |
|
90 | - if ($length > 255) { |
|
91 | - throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length)); |
|
92 | - } |
|
93 | - |
|
94 | - return $output; |
|
95 | - } |
|
96 | - |
|
97 | - /** |
|
98 | - * Encode a part of a domain name, such as tld, to its Punycode version |
|
99 | - * |
|
100 | - * @param string $input Part of a domain name |
|
101 | - * @return string Punycode representation of a domain part |
|
102 | - */ |
|
103 | - protected function encodePart($input) |
|
104 | - { |
|
105 | - $codePoints = $this->listCodePoints($input); |
|
106 | - |
|
107 | - $n = static::INITIAL_N; |
|
108 | - $bias = static::INITIAL_BIAS; |
|
109 | - $delta = 0; |
|
110 | - $h = $b = count($codePoints['basic']); |
|
111 | - |
|
112 | - $output = ''; |
|
113 | - foreach ($codePoints['basic'] as $code) { |
|
114 | - $output .= $this->codePointToChar($code); |
|
115 | - } |
|
116 | - if ($input === $output) { |
|
117 | - return $output; |
|
118 | - } |
|
119 | - if ($b > 0) { |
|
120 | - $output .= static::DELIMITER; |
|
121 | - } |
|
122 | - |
|
123 | - $codePoints['nonBasic'] = array_unique($codePoints['nonBasic']); |
|
124 | - sort($codePoints['nonBasic']); |
|
125 | - |
|
126 | - $i = 0; |
|
127 | - $length = mb_strlen($input, $this->encoding); |
|
128 | - while ($h < $length) { |
|
129 | - $m = $codePoints['nonBasic'][$i++]; |
|
130 | - $delta = $delta + ($m - $n) * ($h + 1); |
|
131 | - $n = $m; |
|
132 | - |
|
133 | - foreach ($codePoints['all'] as $c) { |
|
134 | - if ($c < $n || $c < static::INITIAL_N) { |
|
135 | - $delta++; |
|
136 | - } |
|
137 | - if ($c === $n) { |
|
138 | - $q = $delta; |
|
139 | - for ($k = static::BASE;; $k += static::BASE) { |
|
140 | - $t = $this->calculateThreshold($k, $bias); |
|
141 | - if ($q < $t) { |
|
142 | - break; |
|
143 | - } |
|
144 | - |
|
145 | - $code = $t + (($q - $t) % (static::BASE - $t)); |
|
146 | - $output .= static::$encodeTable[$code]; |
|
147 | - |
|
148 | - $q = ($q - $t) / (static::BASE - $t); |
|
149 | - } |
|
150 | - |
|
151 | - $output .= static::$encodeTable[$q]; |
|
152 | - $bias = $this->adapt($delta, $h + 1, ($h === $b)); |
|
153 | - $delta = 0; |
|
154 | - $h++; |
|
155 | - } |
|
156 | - } |
|
157 | - |
|
158 | - $delta++; |
|
159 | - $n++; |
|
160 | - } |
|
161 | - $out = static::PREFIX . $output; |
|
162 | - $length = strlen($out); |
|
163 | - if ($length > 63 || $length < 1) { |
|
164 | - throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
165 | - } |
|
166 | - |
|
167 | - return $out; |
|
168 | - } |
|
169 | - |
|
170 | - /** |
|
171 | - * Decode a Punycode domain name to its Unicode counterpart |
|
172 | - * |
|
173 | - * @param string $input Domain name in Punycode |
|
174 | - * @return string Unicode domain name |
|
175 | - */ |
|
176 | - public function decode($input) |
|
177 | - { |
|
178 | - $input = strtolower($input); |
|
179 | - $parts = explode('.', $input); |
|
180 | - foreach ($parts as &$part) { |
|
181 | - $length = strlen($part); |
|
182 | - if ($length > 63 || $length < 1) { |
|
183 | - throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
184 | - } |
|
185 | - if (strpos($part, static::PREFIX) !== 0) { |
|
186 | - continue; |
|
187 | - } |
|
188 | - |
|
189 | - $part = substr($part, strlen(static::PREFIX)); |
|
190 | - $part = $this->decodePart($part); |
|
191 | - } |
|
192 | - $output = implode('.', $parts); |
|
193 | - $length = strlen($output); |
|
194 | - if ($length > 255) { |
|
195 | - throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length)); |
|
196 | - } |
|
197 | - |
|
198 | - return $output; |
|
199 | - } |
|
200 | - |
|
201 | - /** |
|
202 | - * Decode a part of domain name, such as tld |
|
203 | - * |
|
204 | - * @param string $input Part of a domain name |
|
205 | - * @return string Unicode domain part |
|
206 | - */ |
|
207 | - protected function decodePart($input) |
|
208 | - { |
|
209 | - $n = static::INITIAL_N; |
|
210 | - $i = 0; |
|
211 | - $bias = static::INITIAL_BIAS; |
|
212 | - $output = ''; |
|
213 | - |
|
214 | - $pos = strrpos($input, static::DELIMITER); |
|
215 | - if ($pos !== false) { |
|
216 | - $output = substr($input, 0, $pos++); |
|
217 | - } else { |
|
218 | - $pos = 0; |
|
219 | - } |
|
220 | - |
|
221 | - $outputLength = strlen($output); |
|
222 | - $inputLength = strlen($input); |
|
223 | - while ($pos < $inputLength) { |
|
224 | - $oldi = $i; |
|
225 | - $w = 1; |
|
226 | - |
|
227 | - for ($k = static::BASE;; $k += static::BASE) { |
|
228 | - $digit = static::$decodeTable[$input[$pos++]]; |
|
229 | - $i = $i + ($digit * $w); |
|
230 | - $t = $this->calculateThreshold($k, $bias); |
|
231 | - |
|
232 | - if ($digit < $t) { |
|
233 | - break; |
|
234 | - } |
|
235 | - |
|
236 | - $w = $w * (static::BASE - $t); |
|
237 | - } |
|
238 | - |
|
239 | - $bias = $this->adapt($i - $oldi, ++$outputLength, ($oldi === 0)); |
|
240 | - $n = $n + (int) ($i / $outputLength); |
|
241 | - $i = $i % ($outputLength); |
|
242 | - $output = mb_substr($output, 0, $i, $this->encoding) . $this->codePointToChar($n) . mb_substr($output, $i, $outputLength - 1, $this->encoding); |
|
243 | - |
|
244 | - $i++; |
|
245 | - } |
|
246 | - |
|
247 | - return $output; |
|
248 | - } |
|
249 | - |
|
250 | - /** |
|
251 | - * Calculate the bias threshold to fall between TMIN and TMAX |
|
252 | - * |
|
253 | - * @param integer $k |
|
254 | - * @param integer $bias |
|
255 | - * @return integer |
|
256 | - */ |
|
257 | - protected function calculateThreshold($k, $bias) |
|
258 | - { |
|
259 | - if ($k <= $bias + static::TMIN) { |
|
260 | - return static::TMIN; |
|
261 | - } elseif ($k >= $bias + static::TMAX) { |
|
262 | - return static::TMAX; |
|
263 | - } |
|
264 | - return $k - $bias; |
|
265 | - } |
|
266 | - |
|
267 | - /** |
|
268 | - * Bias adaptation |
|
269 | - * |
|
270 | - * @param integer $delta |
|
271 | - * @param integer $numPoints |
|
272 | - * @param boolean $firstTime |
|
273 | - * @return integer |
|
274 | - */ |
|
275 | - protected function adapt($delta, $numPoints, $firstTime) |
|
276 | - { |
|
277 | - $delta = (int) ( |
|
278 | - ($firstTime) |
|
279 | - ? $delta / static::DAMP |
|
280 | - : $delta / 2 |
|
281 | - ); |
|
282 | - $delta += (int) ($delta / $numPoints); |
|
283 | - |
|
284 | - $k = 0; |
|
285 | - while ($delta > ((static::BASE - static::TMIN) * static::TMAX) / 2) { |
|
286 | - $delta = (int) ($delta / (static::BASE - static::TMIN)); |
|
287 | - $k = $k + static::BASE; |
|
288 | - } |
|
289 | - $k = $k + (int) (((static::BASE - static::TMIN + 1) * $delta) / ($delta + static::SKEW)); |
|
290 | - |
|
291 | - return $k; |
|
292 | - } |
|
293 | - |
|
294 | - /** |
|
295 | - * List code points for a given input |
|
296 | - * |
|
297 | - * @param string $input |
|
298 | - * @return array Multi-dimension array with basic, non-basic and aggregated code points |
|
299 | - */ |
|
300 | - protected function listCodePoints($input) |
|
301 | - { |
|
302 | - $codePoints = array( |
|
303 | - 'all' => array(), |
|
304 | - 'basic' => array(), |
|
305 | - 'nonBasic' => array(), |
|
306 | - ); |
|
307 | - |
|
308 | - $length = mb_strlen($input, $this->encoding); |
|
309 | - for ($i = 0; $i < $length; $i++) { |
|
310 | - $char = mb_substr($input, $i, 1, $this->encoding); |
|
311 | - $code = $this->charToCodePoint($char); |
|
312 | - if ($code < 128) { |
|
313 | - $codePoints['all'][] = $codePoints['basic'][] = $code; |
|
314 | - } else { |
|
315 | - $codePoints['all'][] = $codePoints['nonBasic'][] = $code; |
|
316 | - } |
|
317 | - } |
|
318 | - |
|
319 | - return $codePoints; |
|
320 | - } |
|
321 | - |
|
322 | - /** |
|
323 | - * Convert a single or multi-byte character to its code point |
|
324 | - * |
|
325 | - * @param string $char |
|
326 | - * @return integer |
|
327 | - */ |
|
328 | - protected function charToCodePoint($char) |
|
329 | - { |
|
330 | - $code = ord($char[0]); |
|
331 | - if ($code < 128) { |
|
332 | - return $code; |
|
333 | - } elseif ($code < 224) { |
|
334 | - return (($code - 192) * 64) + (ord($char[1]) - 128); |
|
335 | - } elseif ($code < 240) { |
|
336 | - return (($code - 224) * 4096) + ((ord($char[1]) - 128) * 64) + (ord($char[2]) - 128); |
|
337 | - } else { |
|
338 | - return (($code - 240) * 262144) + ((ord($char[1]) - 128) * 4096) + ((ord($char[2]) - 128) * 64) + (ord($char[3]) - 128); |
|
339 | - } |
|
340 | - } |
|
341 | - |
|
342 | - /** |
|
343 | - * Convert a code point to its single or multi-byte character |
|
344 | - * |
|
345 | - * @param integer $code |
|
346 | - * @return string |
|
347 | - */ |
|
348 | - protected function codePointToChar($code) |
|
349 | - { |
|
350 | - if ($code <= 0x7F) { |
|
351 | - return chr($code); |
|
352 | - } elseif ($code <= 0x7FF) { |
|
353 | - return chr(($code >> 6) + 192) . chr(($code & 63) + 128); |
|
354 | - } elseif ($code <= 0xFFFF) { |
|
355 | - return chr(($code >> 12) + 224) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128); |
|
356 | - } else { |
|
357 | - return chr(($code >> 18) + 240) . chr((($code >> 12) & 63) + 128) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128); |
|
358 | - } |
|
359 | - } |
|
15 | + /** |
|
16 | + * Bootstring parameter values |
|
17 | + * |
|
18 | + */ |
|
19 | + const BASE = 36; |
|
20 | + const TMIN = 1; |
|
21 | + const TMAX = 26; |
|
22 | + const SKEW = 38; |
|
23 | + const DAMP = 700; |
|
24 | + const INITIAL_BIAS = 72; |
|
25 | + const INITIAL_N = 128; |
|
26 | + const PREFIX = 'xn--'; |
|
27 | + const DELIMITER = '-'; |
|
28 | + |
|
29 | + /** |
|
30 | + * Encode table |
|
31 | + * |
|
32 | + * @param array |
|
33 | + */ |
|
34 | + protected static $encodeTable = array( |
|
35 | + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', |
|
36 | + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', |
|
37 | + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', |
|
38 | + ); |
|
39 | + |
|
40 | + /** |
|
41 | + * Decode table |
|
42 | + * |
|
43 | + * @param array |
|
44 | + */ |
|
45 | + protected static $decodeTable = array( |
|
46 | + 'a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5, |
|
47 | + 'g' => 6, 'h' => 7, 'i' => 8, 'j' => 9, 'k' => 10, 'l' => 11, |
|
48 | + 'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17, |
|
49 | + 's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23, |
|
50 | + 'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29, |
|
51 | + '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35 |
|
52 | + ); |
|
53 | + |
|
54 | + /** |
|
55 | + * Character encoding |
|
56 | + * |
|
57 | + * @param string |
|
58 | + */ |
|
59 | + protected $encoding; |
|
60 | + |
|
61 | + /** |
|
62 | + * Constructor |
|
63 | + * |
|
64 | + * @param string $encoding Character encoding |
|
65 | + */ |
|
66 | + public function __construct($encoding = 'UTF-8') |
|
67 | + { |
|
68 | + $this->encoding = $encoding; |
|
69 | + } |
|
70 | + |
|
71 | + /** |
|
72 | + * Encode a domain to its Punycode version |
|
73 | + * |
|
74 | + * @param string $input Domain name in Unicode to be encoded |
|
75 | + * @return string Punycode representation in ASCII |
|
76 | + */ |
|
77 | + public function encode($input) |
|
78 | + { |
|
79 | + $input = mb_strtolower($input, $this->encoding); |
|
80 | + $parts = explode('.', $input); |
|
81 | + foreach ($parts as &$part) { |
|
82 | + $length = strlen($part); |
|
83 | + if ($length < 1) { |
|
84 | + throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
85 | + } |
|
86 | + $part = $this->encodePart($part); |
|
87 | + } |
|
88 | + $output = implode('.', $parts); |
|
89 | + $length = strlen($output); |
|
90 | + if ($length > 255) { |
|
91 | + throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length)); |
|
92 | + } |
|
93 | + |
|
94 | + return $output; |
|
95 | + } |
|
96 | + |
|
97 | + /** |
|
98 | + * Encode a part of a domain name, such as tld, to its Punycode version |
|
99 | + * |
|
100 | + * @param string $input Part of a domain name |
|
101 | + * @return string Punycode representation of a domain part |
|
102 | + */ |
|
103 | + protected function encodePart($input) |
|
104 | + { |
|
105 | + $codePoints = $this->listCodePoints($input); |
|
106 | + |
|
107 | + $n = static::INITIAL_N; |
|
108 | + $bias = static::INITIAL_BIAS; |
|
109 | + $delta = 0; |
|
110 | + $h = $b = count($codePoints['basic']); |
|
111 | + |
|
112 | + $output = ''; |
|
113 | + foreach ($codePoints['basic'] as $code) { |
|
114 | + $output .= $this->codePointToChar($code); |
|
115 | + } |
|
116 | + if ($input === $output) { |
|
117 | + return $output; |
|
118 | + } |
|
119 | + if ($b > 0) { |
|
120 | + $output .= static::DELIMITER; |
|
121 | + } |
|
122 | + |
|
123 | + $codePoints['nonBasic'] = array_unique($codePoints['nonBasic']); |
|
124 | + sort($codePoints['nonBasic']); |
|
125 | + |
|
126 | + $i = 0; |
|
127 | + $length = mb_strlen($input, $this->encoding); |
|
128 | + while ($h < $length) { |
|
129 | + $m = $codePoints['nonBasic'][$i++]; |
|
130 | + $delta = $delta + ($m - $n) * ($h + 1); |
|
131 | + $n = $m; |
|
132 | + |
|
133 | + foreach ($codePoints['all'] as $c) { |
|
134 | + if ($c < $n || $c < static::INITIAL_N) { |
|
135 | + $delta++; |
|
136 | + } |
|
137 | + if ($c === $n) { |
|
138 | + $q = $delta; |
|
139 | + for ($k = static::BASE;; $k += static::BASE) { |
|
140 | + $t = $this->calculateThreshold($k, $bias); |
|
141 | + if ($q < $t) { |
|
142 | + break; |
|
143 | + } |
|
144 | + |
|
145 | + $code = $t + (($q - $t) % (static::BASE - $t)); |
|
146 | + $output .= static::$encodeTable[$code]; |
|
147 | + |
|
148 | + $q = ($q - $t) / (static::BASE - $t); |
|
149 | + } |
|
150 | + |
|
151 | + $output .= static::$encodeTable[$q]; |
|
152 | + $bias = $this->adapt($delta, $h + 1, ($h === $b)); |
|
153 | + $delta = 0; |
|
154 | + $h++; |
|
155 | + } |
|
156 | + } |
|
157 | + |
|
158 | + $delta++; |
|
159 | + $n++; |
|
160 | + } |
|
161 | + $out = static::PREFIX . $output; |
|
162 | + $length = strlen($out); |
|
163 | + if ($length > 63 || $length < 1) { |
|
164 | + throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
165 | + } |
|
166 | + |
|
167 | + return $out; |
|
168 | + } |
|
169 | + |
|
170 | + /** |
|
171 | + * Decode a Punycode domain name to its Unicode counterpart |
|
172 | + * |
|
173 | + * @param string $input Domain name in Punycode |
|
174 | + * @return string Unicode domain name |
|
175 | + */ |
|
176 | + public function decode($input) |
|
177 | + { |
|
178 | + $input = strtolower($input); |
|
179 | + $parts = explode('.', $input); |
|
180 | + foreach ($parts as &$part) { |
|
181 | + $length = strlen($part); |
|
182 | + if ($length > 63 || $length < 1) { |
|
183 | + throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length)); |
|
184 | + } |
|
185 | + if (strpos($part, static::PREFIX) !== 0) { |
|
186 | + continue; |
|
187 | + } |
|
188 | + |
|
189 | + $part = substr($part, strlen(static::PREFIX)); |
|
190 | + $part = $this->decodePart($part); |
|
191 | + } |
|
192 | + $output = implode('.', $parts); |
|
193 | + $length = strlen($output); |
|
194 | + if ($length > 255) { |
|
195 | + throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length)); |
|
196 | + } |
|
197 | + |
|
198 | + return $output; |
|
199 | + } |
|
200 | + |
|
201 | + /** |
|
202 | + * Decode a part of domain name, such as tld |
|
203 | + * |
|
204 | + * @param string $input Part of a domain name |
|
205 | + * @return string Unicode domain part |
|
206 | + */ |
|
207 | + protected function decodePart($input) |
|
208 | + { |
|
209 | + $n = static::INITIAL_N; |
|
210 | + $i = 0; |
|
211 | + $bias = static::INITIAL_BIAS; |
|
212 | + $output = ''; |
|
213 | + |
|
214 | + $pos = strrpos($input, static::DELIMITER); |
|
215 | + if ($pos !== false) { |
|
216 | + $output = substr($input, 0, $pos++); |
|
217 | + } else { |
|
218 | + $pos = 0; |
|
219 | + } |
|
220 | + |
|
221 | + $outputLength = strlen($output); |
|
222 | + $inputLength = strlen($input); |
|
223 | + while ($pos < $inputLength) { |
|
224 | + $oldi = $i; |
|
225 | + $w = 1; |
|
226 | + |
|
227 | + for ($k = static::BASE;; $k += static::BASE) { |
|
228 | + $digit = static::$decodeTable[$input[$pos++]]; |
|
229 | + $i = $i + ($digit * $w); |
|
230 | + $t = $this->calculateThreshold($k, $bias); |
|
231 | + |
|
232 | + if ($digit < $t) { |
|
233 | + break; |
|
234 | + } |
|
235 | + |
|
236 | + $w = $w * (static::BASE - $t); |
|
237 | + } |
|
238 | + |
|
239 | + $bias = $this->adapt($i - $oldi, ++$outputLength, ($oldi === 0)); |
|
240 | + $n = $n + (int) ($i / $outputLength); |
|
241 | + $i = $i % ($outputLength); |
|
242 | + $output = mb_substr($output, 0, $i, $this->encoding) . $this->codePointToChar($n) . mb_substr($output, $i, $outputLength - 1, $this->encoding); |
|
243 | + |
|
244 | + $i++; |
|
245 | + } |
|
246 | + |
|
247 | + return $output; |
|
248 | + } |
|
249 | + |
|
250 | + /** |
|
251 | + * Calculate the bias threshold to fall between TMIN and TMAX |
|
252 | + * |
|
253 | + * @param integer $k |
|
254 | + * @param integer $bias |
|
255 | + * @return integer |
|
256 | + */ |
|
257 | + protected function calculateThreshold($k, $bias) |
|
258 | + { |
|
259 | + if ($k <= $bias + static::TMIN) { |
|
260 | + return static::TMIN; |
|
261 | + } elseif ($k >= $bias + static::TMAX) { |
|
262 | + return static::TMAX; |
|
263 | + } |
|
264 | + return $k - $bias; |
|
265 | + } |
|
266 | + |
|
267 | + /** |
|
268 | + * Bias adaptation |
|
269 | + * |
|
270 | + * @param integer $delta |
|
271 | + * @param integer $numPoints |
|
272 | + * @param boolean $firstTime |
|
273 | + * @return integer |
|
274 | + */ |
|
275 | + protected function adapt($delta, $numPoints, $firstTime) |
|
276 | + { |
|
277 | + $delta = (int) ( |
|
278 | + ($firstTime) |
|
279 | + ? $delta / static::DAMP |
|
280 | + : $delta / 2 |
|
281 | + ); |
|
282 | + $delta += (int) ($delta / $numPoints); |
|
283 | + |
|
284 | + $k = 0; |
|
285 | + while ($delta > ((static::BASE - static::TMIN) * static::TMAX) / 2) { |
|
286 | + $delta = (int) ($delta / (static::BASE - static::TMIN)); |
|
287 | + $k = $k + static::BASE; |
|
288 | + } |
|
289 | + $k = $k + (int) (((static::BASE - static::TMIN + 1) * $delta) / ($delta + static::SKEW)); |
|
290 | + |
|
291 | + return $k; |
|
292 | + } |
|
293 | + |
|
294 | + /** |
|
295 | + * List code points for a given input |
|
296 | + * |
|
297 | + * @param string $input |
|
298 | + * @return array Multi-dimension array with basic, non-basic and aggregated code points |
|
299 | + */ |
|
300 | + protected function listCodePoints($input) |
|
301 | + { |
|
302 | + $codePoints = array( |
|
303 | + 'all' => array(), |
|
304 | + 'basic' => array(), |
|
305 | + 'nonBasic' => array(), |
|
306 | + ); |
|
307 | + |
|
308 | + $length = mb_strlen($input, $this->encoding); |
|
309 | + for ($i = 0; $i < $length; $i++) { |
|
310 | + $char = mb_substr($input, $i, 1, $this->encoding); |
|
311 | + $code = $this->charToCodePoint($char); |
|
312 | + if ($code < 128) { |
|
313 | + $codePoints['all'][] = $codePoints['basic'][] = $code; |
|
314 | + } else { |
|
315 | + $codePoints['all'][] = $codePoints['nonBasic'][] = $code; |
|
316 | + } |
|
317 | + } |
|
318 | + |
|
319 | + return $codePoints; |
|
320 | + } |
|
321 | + |
|
322 | + /** |
|
323 | + * Convert a single or multi-byte character to its code point |
|
324 | + * |
|
325 | + * @param string $char |
|
326 | + * @return integer |
|
327 | + */ |
|
328 | + protected function charToCodePoint($char) |
|
329 | + { |
|
330 | + $code = ord($char[0]); |
|
331 | + if ($code < 128) { |
|
332 | + return $code; |
|
333 | + } elseif ($code < 224) { |
|
334 | + return (($code - 192) * 64) + (ord($char[1]) - 128); |
|
335 | + } elseif ($code < 240) { |
|
336 | + return (($code - 224) * 4096) + ((ord($char[1]) - 128) * 64) + (ord($char[2]) - 128); |
|
337 | + } else { |
|
338 | + return (($code - 240) * 262144) + ((ord($char[1]) - 128) * 4096) + ((ord($char[2]) - 128) * 64) + (ord($char[3]) - 128); |
|
339 | + } |
|
340 | + } |
|
341 | + |
|
342 | + /** |
|
343 | + * Convert a code point to its single or multi-byte character |
|
344 | + * |
|
345 | + * @param integer $code |
|
346 | + * @return string |
|
347 | + */ |
|
348 | + protected function codePointToChar($code) |
|
349 | + { |
|
350 | + if ($code <= 0x7F) { |
|
351 | + return chr($code); |
|
352 | + } elseif ($code <= 0x7FF) { |
|
353 | + return chr(($code >> 6) + 192) . chr(($code & 63) + 128); |
|
354 | + } elseif ($code <= 0xFFFF) { |
|
355 | + return chr(($code >> 12) + 224) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128); |
|
356 | + } else { |
|
357 | + return chr(($code >> 18) + 240) . chr((($code >> 12) & 63) + 128) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128); |
|
358 | + } |
|
359 | + } |
|
360 | 360 | } |
@@ -136,7 +136,7 @@ discard block |
||
136 | 136 | } |
137 | 137 | if ($c === $n) { |
138 | 138 | $q = $delta; |
139 | - for ($k = static::BASE;; $k += static::BASE) { |
|
139 | + for ($k = static::BASE; ; $k += static::BASE) { |
|
140 | 140 | $t = $this->calculateThreshold($k, $bias); |
141 | 141 | if ($q < $t) { |
142 | 142 | break; |
@@ -224,7 +224,7 @@ discard block |
||
224 | 224 | $oldi = $i; |
225 | 225 | $w = 1; |
226 | 226 | |
227 | - for ($k = static::BASE;; $k += static::BASE) { |
|
227 | + for ($k = static::BASE; ; $k += static::BASE) { |
|
228 | 228 | $digit = static::$decodeTable[$input[$pos++]]; |
229 | 229 | $i = $i + ($digit * $w); |
230 | 230 | $t = $this->calculateThreshold($k, $bias); |