Chris@76: '; Chris@76: Chris@76: // Prevent Chrome from auto completing fields when viewing/editing other members profiles Chris@76: if ($context['browser']['is_chrome'] && !$context['user']['is_owner']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // If an error occurred while trying to save previously, give the user a clue! Chris@76: if (!empty($context['post_errors'])) Chris@76: echo ' Chris@76: ', template_error_message(); Chris@76: Chris@76: // If the profile was update successfully, let the user know this. Chris@76: if (!empty($context['profile_updated'])) Chris@76: echo ' Chris@76:
Chris@76: ', $context['profile_updated'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Template for closing off table started in profile_above. Chris@76: function template_profile_below() Chris@76: { Chris@76: } Chris@76: Chris@76: // This template displays users details without any option to edit them. Chris@76: function template_summary() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: // Display the basic information about the user Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['summary'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:

', $context['member']['name'], ' ', (!empty($context['member']['group']) ? $context['member']['group'] : $context['member']['post_group']), '

Chris@76: ', $context['member']['avatar']['image'], ' Chris@76:
    '; Chris@76: Chris@76: // What about if we allow email only via the forum?? Chris@76: if ($context['member']['show_email'] === 'yes' || $context['member']['show_email'] === 'no_through_forum' || $context['member']['show_email'] === 'yes_permission_override') Chris@76: echo ' Chris@76:
  • ', $txt['email'], '
  • '; Chris@76: Chris@76: // Don't show an icon if they haven't specified a website. Chris@76: if ($context['member']['website']['url'] !== '' && !isset($context['disabled_fields']['website'])) Chris@76: echo ' Chris@76:
  • ', ($settings['use_image_buttons'] ? '' . $context['member']['website']['title'] . '' : $txt['www']), '
  • '; Chris@76: Chris@76: // Are there any custom profile fields for the summary? Chris@76: if (!empty($context['custom_fields'])) Chris@76: { Chris@76: foreach ($context['custom_fields'] as $field) Chris@76: if (($field['placement'] == 1 || empty($field['output_html'])) && !empty($field['value'])) Chris@76: echo ' Chris@76:
  • ', $field['output_html'], '
  • '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: ', !isset($context['disabled_fields']['icq']) && !empty($context['member']['icq']['link']) ? '
  • ' . $context['member']['icq']['link'] . '
  • ' : '', ' Chris@76: ', !isset($context['disabled_fields']['msn']) && !empty($context['member']['msn']['link']) ? '
  • ' . $context['member']['msn']['link'] . '
  • ' : '', ' Chris@76: ', !isset($context['disabled_fields']['aim']) && !empty($context['member']['aim']['link']) ? '
  • ' . $context['member']['aim']['link'] . '
  • ' : '', ' Chris@76: ', !isset($context['disabled_fields']['yim']) && !empty($context['member']['yim']['link']) ? '
  • ' . $context['member']['yim']['link'] . '
  • ' : '', ' Chris@76:
Chris@76: ', $context['can_send_pm'] ? '' : '', $settings['use_image_buttons'] ? '' . $context['member']['online']['text'] . '' : $context['member']['online']['text'], $context['can_send_pm'] ? '' : '', $settings['use_image_buttons'] ? ' ' . $context['member']['online']['text'] . '' : ''; Chris@76: Chris@76: // Can they add this member as a buddy? Chris@76: if (!empty($context['can_have_buddy']) && !$context['user']['is_owner']) Chris@76: echo ' Chris@76:
[', $txt['buddy_' . ($context['member']['is_buddy'] ? 'remove' : 'add')], ']'; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: if ($context['user']['is_owner'] || $context['user']['is_admin']) Chris@76: echo ' Chris@76:
', $txt['username'], ':
Chris@76:
', $context['member']['username'], '
'; Chris@76: Chris@76: if (!isset($context['disabled_fields']['posts'])) Chris@76: echo ' Chris@76:
', $txt['profile_posts'], ':
Chris@76:
', $context['member']['posts'], ' (', $context['member']['posts_per_day'], ' ', $txt['posts_per_day'], ')
'; Chris@76: Chris@76: // Only show the email address fully if it's not hidden - and we reveal the email. Chris@76: if ($context['member']['show_email'] == 'yes') Chris@76: echo ' Chris@76:
', $txt['email'], ':
Chris@76:
', $context['member']['email'], '
'; Chris@76: Chris@76: // ... Or if the one looking at the profile is an admin they can see it anyway. Chris@76: elseif ($context['member']['show_email'] == 'yes_permission_override') Chris@76: echo ' Chris@76:
', $txt['email'], ':
Chris@76:
', $context['member']['email'], '
'; Chris@76: Chris@76: if (!empty($modSettings['titlesEnable']) && !empty($context['member']['title'])) Chris@76: echo ' Chris@76:
', $txt['custom_title'], ':
Chris@76:
', $context['member']['title'], '
'; Chris@76: Chris@76: if (!empty($context['member']['blurb'])) Chris@76: echo ' Chris@76:
', $txt['personal_text'], ':
Chris@76:
', $context['member']['blurb'], '
'; Chris@76: Chris@76: // If karma enabled show the members karma. Chris@76: if ($modSettings['karmaMode'] == '1') Chris@76: echo ' Chris@76:
', $modSettings['karmaLabel'], '
Chris@76:
', ($context['member']['karma']['good'] - $context['member']['karma']['bad']), '
'; Chris@76: Chris@76: elseif ($modSettings['karmaMode'] == '2') Chris@76: echo ' Chris@76:
', $modSettings['karmaLabel'], '
Chris@76:
+', $context['member']['karma']['good'], '/-', $context['member']['karma']['bad'], '
'; Chris@76: Chris@76: if (!isset($context['disabled_fields']['gender']) && !empty($context['member']['gender']['name'])) Chris@76: echo ' Chris@76:
', $txt['gender'], ':
Chris@76:
', $context['member']['gender']['name'], '
'; Chris@76: Chris@76: echo ' Chris@76:
', $txt['age'], ':
Chris@76:
', $context['member']['age'] . ($context['member']['today_is_birthday'] ? '   ' : ''), '
'; Chris@76: Chris@76: if (!isset($context['disabled_fields']['location']) && !empty($context['member']['location'])) Chris@76: echo ' Chris@76:
', $txt['location'], ':
Chris@76:
', $context['member']['location'], '
'; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Any custom fields for standard placement? Chris@76: if (!empty($context['custom_fields'])) Chris@76: { Chris@76: $shown = false; Chris@76: foreach ($context['custom_fields'] as $field) Chris@76: { Chris@76: if ($field['placement'] != 0 || empty($field['output_html'])) Chris@76: continue; Chris@76: Chris@76: if (empty($shown)) Chris@76: { Chris@76: echo ' Chris@76:
'; Chris@76: $shown = true; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $field['name'], ':
Chris@76:
', $field['output_html'], '
'; Chris@76: } Chris@76: Chris@76: if (!empty($shown)) Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Can they view/issue a warning? Chris@76: if ($context['can_view_warning'] && $context['member']['warning']) Chris@76: { Chris@76: echo ' Chris@76:
', $txt['profile_warning_level'], ':
Chris@76:
Chris@76: ', $context['member']['warning'], '%'; Chris@76: Chris@76: // Can we provide information on what this means? Chris@76: if (!empty($context['warning_status'])) Chris@76: echo ' Chris@76: (', $context['warning_status'], ')'; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Is this member requiring activation and/or banned? Chris@76: if (!empty($context['activate_message']) || !empty($context['member']['bans'])) Chris@76: { Chris@76: Chris@76: // If the person looking at the summary has permission, and the account isn't activated, give the viewer the ability to do it themselves. Chris@76: if (!empty($context['activate_message'])) Chris@76: echo ' Chris@76:
', $context['activate_message'], ' (', $context['activate_link_text'], ')
'; Chris@76: Chris@76: // If the current member is banned, show a message and possibly a link to the ban. Chris@76: if (!empty($context['member']['bans'])) Chris@76: { Chris@76: echo ' Chris@76:
', $txt['user_is_banned'], ' [' . $txt['view_ban'] . ']
Chris@76: '; Chris@76: } Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $txt['date_registered'], ':
Chris@76:
', $context['member']['registered'], '
'; Chris@76: Chris@76: // If the person looking is allowed, they can check the members IP address and hostname. Chris@76: if ($context['can_see_ip']) Chris@76: { Chris@76: if (!empty($context['member']['ip'])) Chris@76: echo ' Chris@76:
', $txt['ip'], ':
Chris@76:
', $context['member']['ip'], '
'; Chris@76: Chris@76: if (empty($modSettings['disableHostnameLookup']) && !empty($context['member']['ip'])) Chris@76: echo ' Chris@76:
', $txt['hostname'], ':
Chris@76:
', $context['member']['hostname'], '
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $txt['local_time'], ':
Chris@76:
', $context['member']['local_time'], '
'; Chris@76: Chris@76: if (!empty($modSettings['userLanguage']) && !empty($context['member']['language'])) Chris@76: echo ' Chris@76:
', $txt['language'], ':
Chris@76:
', $context['member']['language'], '
'; Chris@76: Chris@76: echo ' Chris@76:
', $txt['lastLoggedIn'], ':
Chris@76:
', $context['member']['last_login'], '
Chris@76:
'; Chris@76: Chris@76: // Are there any custom profile fields for the summary? Chris@76: if (!empty($context['custom_fields'])) Chris@76: { Chris@76: $shown = false; Chris@76: foreach ($context['custom_fields'] as $field) Chris@76: { Chris@76: if ($field['placement'] != 2 || empty($field['output_html'])) Chris@76: continue; Chris@76: if (empty($shown)) Chris@76: { Chris@76: $shown = true; Chris@76: echo ' Chris@76:
Chris@76:
    '; Chris@76: } Chris@76: echo ' Chris@76:
  • ', $field['output_html'], '
  • '; Chris@76: } Chris@76: if ($shown) Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Show the users signature. Chris@76: if ($context['signature_enabled'] && !empty($context['member']['signature'])) Chris@76: echo ' Chris@76:
Chris@76:
', $txt['signature'], ':
Chris@76: ', $context['member']['signature'], ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Template for showing all the posts of the user, in chronological order. Chris@76: function template_showPosts() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: ', (!isset($context['attachments']) && empty($context['is_topics']) ? $txt['showMessages'] : (!empty($context['is_topics']) ? $txt['showTopics'] : $txt['showAttachments'])), ' - ', $context['member']['name'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76: ', $txt['pages'], ': ', $context['page_index'], ' Chris@76:
'; Chris@76: Chris@76: // Button shortcuts Chris@76: $quote_button = create_button('quote.gif', 'reply_quote', 'quote', 'align="middle"'); Chris@76: $reply_button = create_button('reply_sm.gif', 'reply', 'reply', 'align="middle"'); Chris@76: $remove_button = create_button('delete.gif', 'remove_message', 'remove', 'align="middle"'); Chris@76: $notify_button = create_button('notify_sm.gif', 'notify_replies', 'notify', 'align="middle"'); Chris@76: Chris@76: // Are we displaying posts or attachments? Chris@76: if (!isset($context['attachments'])) Chris@76: { Chris@76: // For every post to be displayed, give it its own div, and show the important details of the post. Chris@76: foreach ($context['posts'] as $post) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
', $post['counter'], '
Chris@76:
Chris@76:
', $post['board']['name'], ' / ', $post['subject'], '
Chris@76: « ', $txt['on'], ': ', $post['time'], ' » Chris@76:
Chris@76:
'; Chris@76: Chris@76: if (!$post['approved']) Chris@76: echo ' Chris@76:
Chris@76: ', $txt['post_awaiting_approval'], ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76: ', $post['body'], ' Chris@76:
Chris@76:
'; Chris@76: Chris@76: if ($post['can_reply'] || $post['can_mark_notify'] || $post['can_delete']) Chris@76: echo ' Chris@76:
Chris@76:
    '; Chris@76: Chris@76: // If they *can* reply? Chris@76: if ($post['can_reply']) Chris@76: echo ' Chris@76:
  • ', $txt['reply'], '
  • '; Chris@76: Chris@76: // If they *can* quote? Chris@76: if ($post['can_quote']) Chris@76: echo ' Chris@76:
  • ', $txt['quote'], '
  • '; Chris@76: Chris@76: // Can we request notification of topics? Chris@76: if ($post['can_mark_notify']) Chris@76: echo ' Chris@76:
  • ', $txt['notify'], '
  • '; Chris@76: Chris@76: // How about... even... remove it entirely?! Chris@76: if ($post['can_delete']) Chris@76: echo ' Chris@76:
  • ', $txt['remove'], '
  • '; Chris@76: Chris@76: if ($post['can_reply'] || $post['can_mark_notify'] || $post['can_delete']) Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: } Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Looks like we need to do all the attachments instead! Chris@76: $alternate = false; Chris@76: foreach ($context['attachments'] as $attachment) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: Chris@76: // No posts? Just end the table with a informative message. Chris@76: if ((isset($context['attachments']) && empty($context['attachments'])) || (!isset($context['attachments']) && empty($context['posts']))) Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
Chris@76: Chris@76: ', $txt['show_attach_filename'], ' Chris@76: ', ($context['sort_order'] == 'filename' ? '' : ''), ' Chris@76: Chris@76: Chris@76: Chris@76: ', $txt['show_attach_downloads'], ' Chris@76: ', ($context['sort_order'] == 'downloads' ? '' : ''), ' Chris@76: Chris@76: Chris@76: Chris@76: ', $txt['message'], ' Chris@76: ', ($context['sort_order'] == 'subject' ? '' : ''), ' Chris@76: Chris@76: Chris@76: Chris@76: ', $txt['show_attach_posted'], ' Chris@76: ', ($context['sort_order'] == 'posted' ? '' : ''), ' Chris@76: Chris@76:
', $attachment['filename'], '', !$attachment['approved'] ? ' (' . $txt['awaiting_approval'] . ')' : '', '', $attachment['downloads'], '', $attachment['subject'], '', $attachment['posted'], '
Chris@76: ', isset($context['attachments']) ? $txt['show_attachments_none'] : ($context['is_topics'] ? $txt['show_topics_none'] : $txt['show_posts_none']), ' Chris@76:
'; Chris@76: } Chris@76: // Show more page numbers. Chris@76: echo ' Chris@76:
Chris@76: ', $txt['pages'], ': ', $context['page_index'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Template for showing all the buddies of the current user. Chris@76: function template_editBuddies() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: ', $txt['editBuddies'], ' Chris@76:

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // If they don't have any buddies don't list them! Chris@76: if (empty($context['buddies'])) Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Now loop through each buddy showing info on each. Chris@76: $alternate = false; Chris@76: foreach ($context['buddies'] as $buddy) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $txt['name'], '', $txt['status'], '', $txt['email'], '', $txt['icq'], '', $txt['aim'], '', $txt['yim'], '', $txt['msn'], '
', $txt['no_buddies'], '
', $buddy['link'], '', $buddy['online']['label'], '', ($buddy['show_email'] == 'no' ? '' : '' . $txt['email'] . ''), '', $buddy['icq']['link'], '', $buddy['aim']['link'], '', $buddy['yim']['link'], '', $buddy['msn']['link'], '', $txt['buddy_remove'], '
'; Chris@76: Chris@76: // Add a new buddy? Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:

', $txt['buddy_add'], '

Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: // Template for showing the ignore list of the current user. Chris@76: function template_editIgnoreList() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: ', $txt['editIgnoreList'], ' Chris@76:

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // If they don't have anyone on their ignore list, don't list it! Chris@76: if (empty($context['ignore_list'])) Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Now loop through each buddy showing info on each. Chris@76: $alternate = false; Chris@76: foreach ($context['ignore_list'] as $member) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
', $txt['name'], '', $txt['status'], '', $txt['email'], '', $txt['icq'], '', $txt['aim'], '', $txt['yim'], '', $txt['msn'], '
', $txt['no_ignore'], '
', $member['link'], '', $member['online']['label'], '', ($member['show_email'] == 'no' ? '' : '' . $txt['email'] . ''), '', $member['icq']['link'], '', $member['aim']['link'], '', $member['yim']['link'], '', $member['msn']['link'], '', $txt['ignore_remove'], '
'; Chris@76: Chris@76: // Add a new buddy? Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:

', $txt['ignore_add'], '

Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: // This template shows an admin information on a users IP addresses used and errors attributed to them. Chris@76: function template_trackActivity() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $txt; Chris@76: Chris@76: // The first table shows IP information about the user. Chris@76: echo ' Chris@76:
Chris@76:

', $txt['view_ips_by'], ' ', $context['member']['name'], '

Chris@76:
'; Chris@76: Chris@76: // The last IP the user used. Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
', $txt['most_recent_ip'], ': Chris@76: ', (empty($context['last_ip2']) ? '' : '
Chris@76: (' . $txt['why_two_ip_address'] . ')'), ' Chris@76:
Chris@76:
Chris@76: ', $context['last_ip'], ''; Chris@76: Chris@76: // Second address detected? Chris@76: if (!empty($context['last_ip2'])) Chris@76: echo ' Chris@76: , ', $context['last_ip2'], ''; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Lists of IP addresses used in messages / error messages. Chris@76: echo ' Chris@76:
', $txt['ips_in_messages'], ':
Chris@76:
Chris@76: ', (count($context['ips']) > 0 ? implode(', ', $context['ips']) : '(' . $txt['none'] . ')'), ' Chris@76:
Chris@76:
', $txt['ips_in_errors'], ':
Chris@76:
Chris@76: ', (count($context['ips']) > 0 ? implode(', ', $context['error_ips']) : '(' . $txt['none'] . ')'), ' Chris@76:
'; Chris@76: Chris@76: // List any members that have used the same IP addresses as the current member. Chris@76: echo ' Chris@76:
', $txt['members_in_range'], ':
Chris@76:
Chris@76: ', (count($context['members_in_range']) > 0 ? implode(', ', $context['members_in_range']) : '(' . $txt['none'] . ')'), ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Show the track user list. Chris@76: template_show_list('track_user_list'); Chris@76: } Chris@76: Chris@76: // The template for trackIP, allowing the admin to see where/who a certain IP has been used. Chris@76: function template_trackIP() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $txt; Chris@76: Chris@76: // This function always defaults to the last IP used by a member but can be set to track any IP. Chris@76: // The first table in the template gives an input box to allow the admin to enter another IP to track. Chris@76: echo ' Chris@76:
Chris@76:

', $txt['trackIP'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
', $txt['enter_ip'], ':    
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // The table inbetween the first and second table shows links to the whois server for every region. Chris@76: if ($context['single_ip']) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $txt['whois_title'], ' ', $context['ip'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: foreach ($context['whois_servers'] as $server) Chris@76: echo ' Chris@76: ', $server['name'], '
'; Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // The second table lists all the members who have been logged as using this IP address. Chris@76: echo ' Chris@76:
Chris@76:

', $txt['members_from_ip'], ' ', $context['ip'], '

Chris@76:
'; Chris@76: if (empty($context['ips'])) Chris@76: echo ' Chris@76:

', $txt['no_members_from_ip'], '

'; Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Loop through each of the members and display them. Chris@76: foreach ($context['ips'] as $ip => $memberlist) Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['ip_address'], '', $txt['display_name'], '
', $ip, '', implode(', ', $memberlist), '
Chris@76:
'; Chris@76: } Chris@76: Chris@76: template_show_list('track_message_list'); Chris@76: Chris@76: echo '
'; Chris@76: Chris@76: template_show_list('track_user_list'); Chris@76: } Chris@76: Chris@76: function template_showPermissions() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: ', $txt['showPermissions'], ' Chris@76:

Chris@76:
'; Chris@76: Chris@76: if ($context['member']['has_all_permissions']) Chris@76: { Chris@76: echo ' Chris@76:

', $txt['showPermissions_all'], '

'; Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:

',$txt['showPermissions_help'],'

Chris@76:
'; Chris@76: Chris@76: if (!empty($context['no_access_boards'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:

', $txt['showPermissions_restricted_boards'], '

Chris@76:
Chris@76:
Chris@76: Chris@76:
', $txt['showPermissions_restricted_boards_desc'], ':
'; Chris@76: foreach ($context['no_access_boards'] as $no_access_board) Chris@76: echo ' Chris@76: ', $no_access_board['name'], '', $no_access_board['is_last'] ? '' : ', '; Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // General Permissions section. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['showPermissions_general'], '

Chris@76:
'; Chris@76: if (!empty($context['member']['permissions']['general'])) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: foreach ($context['member']['permissions']['general'] as $permission) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: echo ' Chris@76: Chris@76:
', $txt['showPermissions_permission'], '', $txt['showPermissions_status'], '
Chris@76: ', $permission['is_denied'] ? '' . $permission['name'] . '' : $permission['name'], ' Chris@76: '; Chris@76: Chris@76: if ($permission['is_denied']) Chris@76: echo ' Chris@76: ', $txt['showPermissions_denied'], ': ', implode(', ', $permission['groups']['denied']),''; Chris@76: else Chris@76: echo ' Chris@76: ', $txt['showPermissions_given'], ': ', implode(', ', $permission['groups']['allowed']); Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

'; Chris@76: } Chris@76: else Chris@76: echo ' Chris@76:

', $txt['showPermissions_none_general'], '

'; Chris@76: Chris@76: // Board permission section. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['showPermissions_select'], ': Chris@76: Chris@76:

Chris@76:
Chris@76:
'; Chris@76: if (!empty($context['member']['permissions']['board'])) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: foreach ($context['member']['permissions']['board'] as $permission) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: echo ' Chris@76: Chris@76:
', $txt['showPermissions_permission'], '', $txt['showPermissions_status'], '
Chris@76: ', $permission['is_denied'] ? '' . $permission['name'] . '' : $permission['name'], ' Chris@76: '; Chris@76: Chris@76: if ($permission['is_denied']) Chris@76: { Chris@76: echo ' Chris@76: ', $txt['showPermissions_denied'], ': ', implode(', ', $permission['groups']['denied']), ''; Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: ', $txt['showPermissions_given'], ':  ', implode(', ', $permission['groups']['allowed']); Chris@76: } Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: else Chris@76: echo ' Chris@76:

', $txt['showPermissions_none_board'], '

'; Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: } Chris@76: Chris@76: // Template for user statistics, showing graphs and the like. Chris@76: function template_statPanel() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: // First, show a few text statistics such as post/topic count. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:

Chris@76: Chris@76: ', $txt['statPanel_generalStats'], ' - ', $context['member']['name'], ' Chris@76: Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
', $txt['statPanel_total_time_online'], ':
Chris@76:
', $context['time_logged_in'], '
Chris@76:
', $txt['statPanel_total_posts'], ':
Chris@76:
', $context['num_posts'], ' ', $txt['statPanel_posts'], '
Chris@76:
', $txt['statPanel_total_topics'], ':
Chris@76:
', $context['num_topics'], ' ', $txt['statPanel_topics'], '
Chris@76:
', $txt['statPanel_users_polls'], ':
Chris@76:
', $context['num_polls'], ' ', $txt['statPanel_polls'], '
Chris@76:
', $txt['statPanel_users_votes'], ':
Chris@76:
', $context['num_votes'], ' ', $txt['statPanel_votes'], '
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // This next section draws a graph showing what times of day they post the most. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['statPanel_activityTime'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // If they haven't post at all, don't draw the graph. Chris@76: if (empty($context['posts_by_time'])) Chris@76: echo ' Chris@76: ', $txt['statPanel_noPosts'], ''; Chris@76: // Otherwise do! Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
    '; Chris@76: Chris@76: // The labels. Chris@76: foreach ($context['posts_by_time'] as $time_of_day) Chris@76: { Chris@76: echo ' Chris@76: Chris@76:
    Chris@76:
    Chris@76: ', sprintf($txt['statPanel_activityTime_posts'], $time_of_day['posts'], $time_of_day['posts_percent']), ' Chris@76:
    Chris@76:
    Chris@76: ', $time_of_day['hour_format'], ' Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Two columns with the most popular boards by posts and activity (activity = users posts / total posts). Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['statPanel_topBoards'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: if (empty($context['popular_boards'])) Chris@76: echo ' Chris@76: ', $txt['statPanel_noPosts'], ''; Chris@76: Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Draw a bar for every board. Chris@76: foreach ($context['popular_boards'] as $board) Chris@76: { Chris@76: echo ' Chris@76:
', $board['link'], '
Chris@76:
Chris@76:
Chris@76: ', sprintf($txt['statPanel_topBoards_memberposts'], $board['posts'], $board['total_posts_member'], $board['posts_percent']), ' Chris@76:
Chris@76: ', empty($context['hide_num_posts']) ? $board['posts'] : '', ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['statPanel_topBoardsActivity'], ' Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: if (empty($context['board_activity'])) Chris@76: echo ' Chris@76: ', $txt['statPanel_noPosts'], ''; Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Draw a bar for every board. Chris@76: foreach ($context['board_activity'] as $activity) Chris@76: { Chris@76: echo ' Chris@76:
', $activity['link'], '
Chris@76:
Chris@76:
Chris@76: ', sprintf($txt['statPanel_topBoards_posts'], $activity['posts'], $activity['total_posts'], $activity['posts_percent']), ' Chris@76:
Chris@76: ', $activity['percent'], '% Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Template for editing profile options. Chris@76: function template_edit_options() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: // The main header! Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: '; Chris@76: Chris@76: // Don't say "Profile" if this isn't the profile... Chris@76: if (!empty($context['profile_header_text'])) Chris@76: echo ' Chris@76: ', $context['profile_header_text']; Chris@76: else Chris@76: echo ' Chris@76: ', $txt['profile']; Chris@76: Chris@76: echo ' Chris@76: Chris@76:

Chris@76:
'; Chris@76: Chris@76: // Have we some description? Chris@76: if ($context['page_desc']) Chris@76: echo ' Chris@76:

', $context['page_desc'], '

'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // Any bits at the start? Chris@76: if (!empty($context['profile_prehtml'])) Chris@76: echo ' Chris@76:
', $context['profile_prehtml'], '
'; Chris@76: Chris@76: if (!empty($context['profile_fields'])) Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Start the big old loop 'of love. Chris@76: $lastItem = 'hr'; Chris@76: foreach ($context['profile_fields'] as $key => $field) Chris@76: { Chris@76: // We add a little hack to be sure we never get more than one hr in a row! Chris@76: if ($lastItem == 'hr' && $field['type'] == 'hr') Chris@76: continue; Chris@76: Chris@76: $lastItem = $field['type']; Chris@76: if ($field['type'] == 'hr') Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: elseif ($field['type'] == 'callback') Chris@76: { Chris@76: if (isset($field['callback_func']) && function_exists('template_profile_' . $field['callback_func'])) Chris@76: { Chris@76: $callback_func = 'template_profile_' . $field['callback_func']; Chris@76: $callback_func(); Chris@76: } Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: ', $field['label'], ''; Chris@76: Chris@76: // Does it have any subtext to show? Chris@76: if (!empty($field['subtext'])) Chris@76: echo ' Chris@76:
Chris@76: ', $field['subtext'], ''; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Want to put something infront of the box? Chris@76: if (!empty($field['preinput'])) Chris@76: echo ' Chris@76: ', $field['preinput']; Chris@76: Chris@76: // What type of data are we showing? Chris@76: if ($field['type'] == 'label') Chris@76: echo ' Chris@76: ', $field['value']; Chris@76: Chris@76: // Maybe it's a text box - very likely! Chris@76: elseif (in_array($field['type'], array('int', 'float', 'text', 'password'))) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // You "checking" me out? ;) Chris@76: elseif ($field['type'] == 'check') Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Always fun - select boxes! Chris@76: elseif ($field['type'] == 'select') Chris@76: { Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: Chris@76: // Something to end with? Chris@76: if (!empty($field['postinput'])) Chris@76: echo ' Chris@76: ', $field['postinput']; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: } Chris@76: Chris@76: if (!empty($context['profile_fields'])) Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Are there any custom profile fields - if so print them! Chris@76: if (!empty($context['custom_fields'])) Chris@76: { Chris@76: if ($lastItem != 'hr') Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: foreach ($context['custom_fields'] as $field) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: ', $field['name'], ':
Chris@76: ', $field['desc'], ' Chris@76:
Chris@76:
Chris@76: ', $field['input_html'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: } Chris@76: Chris@76: // Any closing HTML? Chris@76: if (!empty($context['profile_posthtml'])) Chris@76: echo ' Chris@76:
', $context['profile_posthtml'], '
'; Chris@76: elseif ($lastItem != 'hr') Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // Only show the password box if it's actually needed. Chris@76: if ($context['require_password']) Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: ', $txt['current_password'], ':
Chris@76: ', $txt['required_security_reasons'], ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: // The button shouldn't say "Change profile" unless we're changing the profile... Chris@76: if (!empty($context['submit_button_text'])) Chris@76: echo ' Chris@76: '; Chris@76: else Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Some javascript! Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Any final spellchecking stuff? Chris@76: if (!empty($context['show_spellchecking'])) Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Personal Message settings. Chris@76: function template_profile_pm_settings() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
'; Chris@76: Chris@76: } Chris@76: Chris@76: // Template for showing theme settings. Note: template_options() actually adds the theme specific options. Chris@76: function template_profile_theme_settings() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_notification() Chris@76: { Chris@76: global $context, $settings, $options, $txt, $scripturl, $modSettings; Chris@76: Chris@76: // The main containing header. Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: ', $txt['profile'], ' Chris@76:

Chris@76:
Chris@76:

', $txt['notification_info'], '

Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Allow notification on announcements to be disabled? Chris@76: if (!empty($modSettings['allow_disableAnnounce'])) Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: Chris@76: // More notification options. Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: Chris@76: if (empty($modSettings['disallow_sendBody'])) Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76: Chris@76:

Chris@76: Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: template_show_list('topic_notification_list'); Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: template_show_list('board_notification_list'); Chris@76: } Chris@76: Chris@76: // Template for choosing group membership. Chris@76: function template_groupMembership() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: // The main containing header. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['profile'], ' Chris@76:

Chris@76:
Chris@76:

', $txt['groupMembership_info'], '

'; Chris@76: Chris@76: // Do we have an update message? Chris@76: if (!empty($context['update_message'])) Chris@76: echo ' Chris@76:
Chris@76: ', $context['update_message'], '. Chris@76:
'; Chris@76: Chris@76: // Requesting membership to a group? Chris@76: if (!empty($context['group_request'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

', $txt['request_group_membership'], '

Chris@76:
Chris@76: Chris@76:
Chris@76: ', $txt['request_group_membership_desc'], ': Chris@76: Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: else Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alternate = true; Chris@76: foreach ($context['groups']['member'] as $group) Chris@76: { Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: if ($context['can_edit_primary']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['current_membergroups'], '
Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Can they leave their group? Chris@76: if ($group['can_leave']) Chris@76: echo ' Chris@76: ' . $txt['leave_group'] . ''; Chris@76: echo ' Chris@76:
'; Chris@76: Chris@76: if ($context['can_edit_primary']) Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // Any groups they can join? Chris@76: if (!empty($context['groups']['available'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: $alternate = true; Chris@76: foreach ($context['groups']['available'] as $group) Chris@76: { Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: $alternate = !$alternate; Chris@76: } Chris@76: echo ' Chris@76: Chris@76:
Chris@76: ', $txt['available_groups'], ' Chris@76:
Chris@76: ', (empty($group['color']) ? $group['name'] : '' . $group['name'] . ''), '', (!empty($group['desc']) ? '
' . $group['desc'] . '' : ''), ' Chris@76:
'; Chris@76: Chris@76: if ($group['type'] == 3) Chris@76: echo ' Chris@76: ', $txt['join_group'], ''; Chris@76: elseif ($group['type'] == 2 && $group['pending']) Chris@76: echo ' Chris@76: ', $txt['approval_pending']; Chris@76: elseif ($group['type'] == 2) Chris@76: echo ' Chris@76: ', $txt['request_group'], ''; Chris@76: Chris@76: echo ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Javascript for the selector stuff. Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_ignoreboards() Chris@76: { Chris@76: global $context, $txt, $settings, $scripturl; Chris@76: // The main containing header. Chris@76: echo ' Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['profile'], ' Chris@76:

Chris@76:
Chris@76:

', $txt['ignoreboards_info'], '

Chris@76:
Chris@76: Chris@76:
Chris@76:
    '; Chris@76: Chris@76: $i = 0; Chris@76: $limit = ceil($context['num_boards'] / 2); Chris@76: foreach ($context['categories'] as $category) Chris@76: { Chris@76: if ($i == $limit) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
    '; Chris@76: Chris@76: $i++; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
  • Chris@76: ', $category['name'], ' Chris@76:
      '; Chris@76: Chris@76: foreach ($category['boards'] as $board) Chris@76: { Chris@76: if ($i == $limit) Chris@76: echo ' Chris@76:
    Chris@76:
  • Chris@76:
Chris@76:
    Chris@76:
  • Chris@76:
      '; Chris@76: Chris@76: echo ' Chris@76:
    • Chris@76: Chris@76:
    • '; Chris@76: Chris@76: $i++; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
    Chris@76:
  • '; Chris@76: } Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Show the standard "Save Settings" profile button. Chris@76: template_profile_save(); Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Simple load some theme variables common to several warning templates. Chris@76: function template_load_warning_variables() Chris@76: { Chris@76: global $modSettings, $context; Chris@76: Chris@76: $context['warningBarWidth'] = 200; Chris@76: // Setup the colors - this is a little messy for theming. Chris@76: $context['colors'] = array( Chris@76: 0 => 'green', Chris@76: $modSettings['warning_watch'] => 'darkgreen', Chris@76: $modSettings['warning_moderate'] => 'orange', Chris@76: $modSettings['warning_mute'] => 'red', Chris@76: ); Chris@76: Chris@76: // Work out the starting color. Chris@76: $context['current_color'] = $context['colors'][0]; Chris@76: foreach ($context['colors'] as $limit => $color) Chris@76: if ($context['member']['warning'] >= $limit) Chris@76: $context['current_color'] = $color; Chris@76: } Chris@76: Chris@76: // Show all warnings of a user? Chris@76: function template_viewWarning() Chris@76: { Chris@76: global $context, $txt, $scripturl, $settings; Chris@76: Chris@76: template_load_warning_variables(); Chris@76: Chris@76: echo ' Chris@76:
Chris@76:

Chris@76: Chris@76: ', sprintf($txt['profile_viewwarning_for_user'], $context['member']['name']), ' Chris@76: Chris@76:

Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['profile_warning_name'], ': Chris@76:
Chris@76:
Chris@76: ', $context['member']['name'], ' Chris@76:
Chris@76:
Chris@76: ', $txt['profile_warning_level'], ': Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:
', $context['member']['warning'], '%
Chris@76:
 
Chris@76:
Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: // There's some impact of this? Chris@76: if (!empty($context['level_effects'][$context['current_level']])) Chris@76: echo ' Chris@76:
Chris@76: ', $txt['profile_viewwarning_impact'], ': Chris@76:
Chris@76:
Chris@76: ', $context['level_effects'][$context['current_level']], ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: template_show_list('view_warnings'); Chris@76: } Chris@76: Chris@76: // Show a lovely interface for issuing warnings. Chris@76: function template_issueWarning() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: template_load_warning_variables(); Chris@76: Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: Chris@76: ', $context['user']['is_owner'] ? $txt['profile_warning_level'] : $txt['profile_issue_warning'], ' Chris@76: Chris@76:

Chris@76:
'; Chris@76: Chris@76: if (!$context['user']['is_owner']) Chris@76: echo ' Chris@76:

', $txt['profile_warning_desc'], '

'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: if (!$context['user']['is_owner']) Chris@76: echo ' Chris@76:
Chris@76: ', $txt['profile_warning_name'], ': Chris@76:
Chris@76:
Chris@76: ', $context['member']['name'], ' Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['profile_warning_level'], ':'; Chris@76: Chris@76: // Is there only so much they can apply? Chris@76: if ($context['warning_limit']) Chris@76: echo ' Chris@76:
', sprintf($txt['profile_warning_limit_attribute'], $context['warning_limit']), ''; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:  ', $txt['profile_warning_max'], ' Chris@76:
', $txt['profile_warning_impact'], ':
'; Chris@76: // For non-javascript give a better list. Chris@76: foreach ($context['level_effects'] as $limit => $effect) Chris@76: echo ' Chris@76: ', sprintf($txt['profile_warning_effect_text'], $limit, $effect), '
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: if (!$context['user']['is_owner']) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: ', $txt['profile_warning_reason'], ':
Chris@76: ', $txt['profile_warning_reason_desc'], ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['profile_warning_notify'], ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['profile_warning_notify_subject'], ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['profile_warning_notify_body'], ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // Previous warnings? Chris@76: echo '
Chris@76:
Chris@76:

Chris@76: ', $txt['profile_warning_previous'], ' Chris@76:

Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: // Print the warnings. Chris@76: $alternate = 0; Chris@76: foreach ($context['previous_warnings'] as $warning) Chris@76: { Chris@76: $alternate = !$alternate; Chris@76: echo ' Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: Chris@76: '; Chris@76: } Chris@76: Chris@76: if (empty($context['previous_warnings'])) Chris@76: echo ' Chris@76: Chris@76: Chris@76: '; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
', $txt['profile_warning_previous_issued'], '', $txt['profile_warning_previous_time'], '', $txt['profile_warning_previous_reason'], '', $txt['profile_warning_previous_level'], '
', $warning['issuer']['link'], '', $warning['time'], ' Chris@76:
Chris@76: ', $warning['reason'], ' Chris@76:
'; Chris@76: Chris@76: if (!empty($warning['id_notice'])) Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: echo ' Chris@76:
', $warning['counter'], '
Chris@76: ', $txt['profile_warning_previous_none'], ' Chris@76:
Chris@76:
', $txt['pages'], ': ', $context['page_index'], '
'; Chris@76: Chris@76: // Do our best to get pretty javascript enabled. Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: Chris@76: // Template to show for deleting a users account - now with added delete post capability! Chris@76: function template_deleteAccount() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $txt, $scripturl; Chris@76: Chris@76: // The main containing header. Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['deleteAccount'], ' Chris@76:

Chris@76:
'; Chris@76: // If deleting another account give them a lovely info box. Chris@76: if (!$context['user']['is_owner']) Chris@76: echo ' Chris@76:

', $txt['deleteAccount_desc'], '

'; Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
'; Chris@76: Chris@76: // If they are deleting their account AND the admin needs to approve it - give them another piece of info ;) Chris@76: if ($context['needs_approval']) Chris@76: echo ' Chris@76:
', $txt['deleteAccount_approval'], '
'; Chris@76: Chris@76: // If the user is deleting their own account warn them first - and require a password! Chris@76: if ($context['user']['is_owner']) Chris@76: { Chris@76: echo ' Chris@76:
', $txt['own_profile_confirm'], '
Chris@76:
Chris@76: ', $txt['current_password'], ': Chris@76:      Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
'; Chris@76: } Chris@76: // Otherwise an admin doesn't need to enter a password - but they still get a warning - plus the option to delete lovely posts! Chris@76: else Chris@76: { Chris@76: echo ' Chris@76:
', $txt['deleteAccount_warning'], '
'; Chris@76: Chris@76: // Only actually give these options if they are kind of important. Chris@76: if ($context['can_delete_posts']) Chris@76: echo ' Chris@76:
Chris@76: ', $txt['deleteAccount_posts'], ': Chris@76: Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
'; Chris@76: } Chris@76: echo ' Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Template for the password box/save button stuck at the bottom of every profile page. Chris@76: function template_profile_save() Chris@76: { Chris@76: global $context, $settings, $options, $txt; Chris@76: Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: Chris@76: // Only show the password box if it's actually needed. Chris@76: if ($context['require_password']) Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: ', $txt['current_password'], ':
Chris@76: ', $txt['required_security_reasons'], ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Small template for showing an error message upon a save problem in the profile. Chris@76: function template_error_message() Chris@76: { Chris@76: global $context, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', !empty($context['custom_error_title']) ? $context['custom_error_title'] : $txt['profile_errors_occurred'], ': Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Display a load of drop down selectors for allowing the user to change group. Chris@76: function template_profile_group_manage() Chris@76: { Chris@76: global $context, $txt, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['primary_membergroup'], ':
Chris@76: (', $txt['moderator_why_missing'], ') Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['additional_membergroups'], ': Chris@76:
Chris@76:
Chris@76: Chris@76: '; Chris@76: // For each membergroup show a checkbox so members can be assigned to more than one group. Chris@76: foreach ($context['member_groups'] as $member_group) Chris@76: if ($member_group['can_be_additional']) Chris@76: echo ' Chris@76:
'; Chris@76: echo ' Chris@76:
Chris@76: Chris@76: Chris@76:
'; Chris@76: Chris@76: } Chris@76: Chris@76: // Callback function for entering a birthdate! Chris@76: function template_profile_birthdate() Chris@76: { Chris@76: global $txt, $context; Chris@76: Chris@76: // Just show the pretty box! Chris@76: echo ' Chris@76:
Chris@76: ', $txt['dob'], ':
Chris@76: ', $txt['dob_year'], ' - ', $txt['dob_month'], ' - ', $txt['dob_day'], ' Chris@76:
Chris@76:
Chris@76: - Chris@76: - Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Show the signature editing box? Chris@76: function template_profile_signature_modify() Chris@76: { Chris@76: global $txt, $context, $settings; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['signature'], ':
Chris@76: ', $txt['sig_info'], '
Chris@76:
'; Chris@76: Chris@76: if ($context['show_spellchecking']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: // If there is a limit at all! Chris@76: if (!empty($context['signature_limits']['max_length'])) Chris@76: echo ' Chris@76: ', sprintf($txt['max_sig_characters'], $context['signature_limits']['max_length']), ' ', $context['signature_limits']['max_length'], '
'; Chris@76: Chris@76: if ($context['signature_warning']) Chris@76: echo ' Chris@76: ', $context['signature_warning'], ''; Chris@76: Chris@76: // Load the spell checker? Chris@76: if ($context['show_spellchecking']) Chris@76: echo ' Chris@76: '; Chris@76: Chris@76: // Some javascript used to count how many characters have been used so far in the signature. Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: function template_profile_avatar_select() Chris@76: { Chris@76: global $context, $txt, $modSettings; Chris@76: Chris@76: // Start with the upper menu Chris@76: echo ' Chris@76:
Chris@76: ', $txt['personal_picture'], ' Chris@76:
Chris@76: ', !empty($context['member']['avatar']['allow_server_stored']) ? '
' : '', ' Chris@76: ', !empty($context['member']['avatar']['allow_external']) ? '
' : '', ' Chris@76: ', !empty($context['member']['avatar']['allow_upload']) ? '' : '', ' Chris@76:
Chris@76:
'; Chris@76: Chris@76: // If users are allowed to choose avatars stored on the server show selection boxes to choice them from. Chris@76: if (!empty($context['member']['avatar']['allow_server_stored'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Do Nothing
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // If the user can link to an off server avatar, show them a box to input the address. Chris@76: if (!empty($context['member']['avatar']['allow_external'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76:
', $txt['avatar_by_url'], '
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // If the user is able to upload avatars to the server show them an upload box. Chris@76: if (!empty($context['member']['avatar']['allow_upload'])) Chris@76: { Chris@76: echo ' Chris@76:
Chris@76: Chris@76: ', ($context['member']['avatar']['id_attach'] > 0 ? '

' : ''), ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: echo ' Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Callback for modifying karam. Chris@76: function template_profile_karma_modify() Chris@76: { Chris@76: global $context, $modSettings, $txt; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $modSettings['karmaLabel'], ' Chris@76:
Chris@76:
Chris@76: ', $modSettings['karmaApplaudLabel'], ' ', $modSettings['karmaSmiteLabel'], '
Chris@76: (', $txt['total'], ': ', ($context['member']['karma']['good'] - $context['member']['karma']['bad']), ') Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Select the time format! Chris@76: function template_profile_timeformat_modify() Chris@76: { Chris@76: global $context, $modSettings, $txt, $scripturl, $settings; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['time_format'], ':
Chris@76: ', $txt['help'], ' Chris@76:  ', $txt['date_format'], ' Chris@76:
Chris@76:
Chris@76:
Chris@76: Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Time offset? Chris@76: function template_profile_timeoffset_modify() Chris@76: { Chris@76: global $txt, $context; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['time_offset'], ':
Chris@76: ', $txt['personal_time_offset'], ' Chris@76:
Chris@76:
Chris@76: ', $txt['timeoffset_autodetect'], '
', $txt['current_time'], ': ', $context['current_forum_time'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Theme? Chris@76: function template_profile_theme_pick() Chris@76: { Chris@76: global $txt, $context, $scripturl; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['current_theme'], ': Chris@76:
Chris@76:
Chris@76: ', $context['member']['theme']['name'], ' ', $txt['change'], ' Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Smiley set picker. Chris@76: function template_profile_smiley_pick() Chris@76: { Chris@76: global $txt, $context, $modSettings, $settings; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: ', $txt['smileys_current'], ': Chris@76:
Chris@76:
Chris@76: :) Chris@76:
'; Chris@76: } Chris@76: Chris@76: // Change the way you login to the forum. Chris@76: function template_authentication_method() Chris@76: { Chris@76: global $context, $settings, $options, $scripturl, $modSettings, $txt; Chris@76: Chris@76: // The main header! Chris@76: echo ' Chris@76: Chris@76:
Chris@76:
Chris@76:

Chris@76: ', $txt['authentication'], ' Chris@76:

Chris@76:
Chris@76:

', $txt['change_authentication'], '

Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:  (?)
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['authenticate_openid_url'], ': Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['choose_pass'], ': Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: ', $txt['verify_pass'], ': Chris@76:
Chris@76:
Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76:
Chris@76:
'; Chris@76: Chris@76: if ($context['require_password']) Chris@76: echo ' Chris@76:
Chris@76:
Chris@76:
Chris@76: ', $txt['current_password'], ':
Chris@76: ', $txt['required_security_reasons'], ' Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: echo ' Chris@76:
Chris@76: Chris@76: Chris@76: Chris@76: Chris@76:
Chris@76:
Chris@76: Chris@76:
Chris@76:
'; Chris@76: Chris@76: // The password stuff. Chris@76: echo ' Chris@76: '; Chris@76: } Chris@76: Chris@76: ?>