function template_folder() { global $context, $settings, $options, $scripturl, $modSettings, $txt; // The every helpful javascript! echo ' <script type="text/javascript"><!-- // --><![CDATA[ var allLabels = {}; var currentLabels = {}; function loadLabelChoices() { var listing = document.forms.pmFolder.elements; var theSelect = document.forms.pmFolder.pm_action; var add, remove, toAdd = {length: 0}, toRemove = {length: 0}; if (theSelect.childNodes.length == 0) return;'; // This is done this way for internationalization reasons. echo ' if (!(\'-1\' in allLabels)) { for (var o = 0; o < theSelect.options.length; o++) if (theSelect.options[o].value.substr(0, 4) == "rem_") allLabels[theSelect.options[o].value.substr(4)] = theSelect.options[o].text; } for (var i = 0; i < listing.length; i++) { if (listing[i].name != "pms[]" || !listing[i].checked) continue; var alreadyThere = [], x; for (x in currentLabels[listing[i].value]) { if (!(x in toRemove)) { toRemove[x] = allLabels[x]; toRemove.length++; } alreadyThere[x] = allLabels[x]; } for (x in allLabels) { if (!(x in alreadyThere)) { toAdd[x] = allLabels[x]; toAdd.length++; } } } while (theSelect.options.length > 2) theSelect.options[2] = null; if (toAdd.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_apply'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_apply'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toAdd) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toAdd[i], "add_" + i); } } if (toRemove.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_remove'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_remove'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toRemove) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toRemove[i], "rem_" + i); } } } // ]]></script>'; echo ' <form action="', $scripturl, '?action=pm;sa=pmactions;', $context['display_mode'] == 2 ? 'conversation;' : '', 'f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', '" method="post" accept-charset="', $context['character_set'], '" name="pmFolder">'; // If we are not in single display mode show the subjects on the top! if ($context['display_mode'] != 1) { template_subject_list(); echo '<br />'; } // Got some messages to display? if ($context['get_pmessage']('message', true)) { // Show a few buttons if we are in conversation mode and outputting the first message. if ($context['display_mode'] == 2) { // Build the normal button array. $conversation_buttons = array('reply' => array('text' => 'reply_to_all', 'image' => 'reply.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=send;f=' . $context['folder'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';pmsg=' . $context['current_pm'] . ';u=all'), 'delete' => array('text' => 'delete_conversation', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=pmactions;pm_actions[' . $context['current_pm'] . ']=delete;conversation;f=' . $context['folder'] . ';start=' . $context['start'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';' . $context['session_var'] . '=' . $context['session_id'], 'custom' => 'onclick="return confirm(\'' . addslashes($txt['remove_message']) . '?\');"')); // Show the conversation buttons. echo ' <div class="modbuttons_top margintop flow_hidden">'; template_button_strip($conversation_buttons, 'right'); echo ' </div>'; } echo ' <div class="tborder" style="padding: 1px">'; // Show the helpful titlebar - generally. if ($context['display_mode'] != 1) { echo ' <div id="forumposts"> <h3 class="catbg3"> <span>', $txt['author'], '</span> <span id="top_subject">', $txt[$context['display_mode'] == 0 ? 'messages' : 'conversation'], '</span> </h3> </div>'; } // Cache some handy buttons. $quote_button = create_button('quote.gif', 'reply_quote', 'quote', 'align="middle"'); $reply_button = create_button('im_reply.gif', 'reply', 'reply', 'align="middle"'); $reply_all_button = create_button('im_reply_all.gif', 'reply_to_all', 'reply_to_all', 'align="middle"'); $forward_button = create_button('quote.gif', 'reply_quote', 'reply_quote', 'align="middle"'); $delete_button = create_button('delete.gif', 'remove_message', 'remove', 'align="middle"'); while ($message = $context['get_pmessage']('message')) { $is_first_post = !isset($is_first_post) ? true : false; // Show information about the poster of this message. echo ' <div class="bordercolor" id="msg', $message['id'], '"> <div class="clearfix ', !$is_first_post ? 'topborder ' : '', $message['alternate'] == 0 ? 'windowbg' : 'windowbg2', ' largepadding"> <div class="floatleft poster"> <h4>', $message['member']['link'], '</h4> <ul class="reset smalltext" id="msg_', $message['id'], '_extra_info">'; // Show the member's custom title, if they have one. if (isset($message['member']['title']) && $message['member']['title'] != '') { echo ' <li>', $message['member']['title'], '</li>'; } // Show the member's primary group (like 'Administrator') if they have one. if (isset($message['member']['group']) && $message['member']['group'] != '') { echo ' <li>', $message['member']['group'], '</li>'; } // Don't show these things for guests. if (!$message['member']['is_guest']) { // 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. if ((empty($settings['hide_post_group']) || $message['member']['group'] == '') && $message['member']['post_group'] != '') { echo ' <li>', $message['member']['post_group'], '</li>'; } echo ' <li>', $message['member']['group_stars'], '</li>'; // Is karma display enabled? Total or +/-? if ($modSettings['karmaMode'] == '1') { echo ' <li class="margintop">', $modSettings['karmaLabel'], ' ', $message['member']['karma']['good'] - $message['member']['karma']['bad'], '</li>'; } elseif ($modSettings['karmaMode'] == '2') { echo ' <li class="margintop">', $modSettings['karmaLabel'], ' +', $message['member']['karma']['good'], '/-', $message['member']['karma']['bad'], '</li>'; } // Is this user allowed to modify this member's karma? if ($message['member']['karma']['allow']) { echo ' <li> <a href="', $scripturl, '?action=modifykarma;sa=applaud;uid=', $message['member']['id'], ';f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pm=', $message['id'], ';', $context['session_var'], '=', $context['session_id'], '">', $modSettings['karmaApplaudLabel'], '</a> <a href="', $scripturl, '?action=modifykarma;sa=smite;uid=', $message['member']['id'], ';f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pm=', $message['id'], ';', $context['session_var'], '=', $context['session_id'], '">', $modSettings['karmaSmiteLabel'], '</a> </li>'; } // Show online and offline buttons? if (!empty($modSettings['onlineEnable'])) { echo ' <li>', $context['can_send_pm'] ? '<a href="' . $message['member']['online']['href'] . '" title="' . $message['member']['online']['label'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $message['member']['online']['image_href'] . '" alt="' . $message['member']['online']['text'] . '" border="0" style="margin-top: 2px;" />' : $message['member']['online']['text'], $context['can_send_pm'] ? '</a>' : '', $settings['use_image_buttons'] ? '<span class="smalltext"> ' . $message['member']['online']['text'] . '</span>' : '', '</li>'; } // Show the member's gender icon? if (!empty($settings['show_gender']) && $message['member']['gender']['image'] != '' && !isset($context['disabled_fields']['gender'])) { echo ' <li>', $txt['gender'], ': ', $message['member']['gender']['image'], '</li>'; } // Show how many posts they have made. if (!isset($context['disabled_fields']['posts'])) { echo ' <li>', $txt['member_postcount'], ': ', $message['member']['posts'], '</li>'; } // Any custom fields for standard placement? if (!empty($message['member']['custom_fields'])) { foreach ($message['member']['custom_fields'] as $custom) { if (empty($custom['placement']) && !empty($custom['value'])) { echo ' <li>', $custom['title'], ': ', $custom['value'], '</li>'; } } } // Show avatars, images, etc.? if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image'])) { echo ' <li class="margintop" style="overflow: auto;">', $message['member']['avatar']['image'], '</li>'; } // Show their personal text? if (!empty($settings['show_blurb']) && $message['member']['blurb'] != '') { echo ' <li class="margintop">', $message['member']['blurb'], '</li>'; } // Any custom fields to show as icons? if (!empty($message['member']['custom_fields'])) { $shown = false; foreach ($message['member']['custom_fields'] as $custom) { if ($custom['placement'] != 1 || empty($custom['value'])) { continue; } if (empty($shown)) { $shown = true; echo ' <li class="margintop"> <ul class="reset nolist">'; } echo ' <li>', $custom['value'], '</li>'; } if ($shown) { echo ' </ul> </li>'; } } // This shows the popular messaging icons. if ($message['member']['has_messenger'] && $message['member']['can_view_profile']) { echo ' <li class="margintop"> <ul class="reset nolist"> ', !isset($context['disabled_fields']['icq']) && !empty($message['member']['icq']['link']) ? '<li>' . $message['member']['icq']['link'] . '</li>' : '', ' ', !isset($context['disabled_fields']['msn']) && !empty($message['member']['msn']['link']) ? '<li>' . $message['member']['msn']['link'] . '</li>' : '', ' ', !isset($context['disabled_fields']['aim']) && !empty($message['member']['aim']['link']) ? '<li>' . $message['member']['aim']['link'] . '</li>' : '', ' ', !isset($context['disabled_fields']['yim']) && !empty($message['member']['yim']['link']) ? '<li>' . $message['member']['yim']['link'] . '</li>' : '', ' </ul> </li>'; } // Show the profile, website, email address, and personal message buttons. if ($settings['show_profile_buttons']) { echo ' <li class="margintop"> <ul class="reset nolist">'; // Don't show the profile button if you're not allowed to view the profile. if ($message['member']['can_view_profile']) { echo ' <li><a href="', $message['member']['href'], '">', $settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/icons/profile_sm.gif" alt="' . $txt['view_profile'] . '" title="' . $txt['view_profile'] . '" border="0" />' : $txt['view_profile'], '</a></li>'; } // Don't show an icon if they haven't specified a website. if ($message['member']['website']['url'] != '' && !isset($context['disabled_fields']['website'])) { echo ' <li><a href="', $message['member']['website']['url'], '" title="' . $message['member']['website']['title'] . '" target="_blank" class="new_win">', $settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/www_sm.gif" alt="' . $message['member']['website']['title'] . '" border="0" />' : $txt['www'], '</a></li>'; } // Don't show the email address if they want it hidden. if (in_array($message['member']['show_email'], array('yes', 'yes_permission_override', 'no_through_forum'))) { echo ' <li><a href="', $scripturl, '?action=emailuser;sa=email;uid=', $message['member']['id'], '" rel="nofollow">', $settings['use_image_buttons'] ? '<img src="' . $settings['images_url'] . '/email_sm.gif" alt="' . $txt['email'] . '" title="' . $txt['email'] . '" />' : $txt['email'], '</a></li>'; } // Since we know this person isn't a guest, you *can* message them. if ($context['can_send_pm']) { echo ' <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'] ? '<img src="' . $settings['images_url'] . '/im_' . ($message['member']['online']['is_online'] ? 'on' : 'off') . '.gif" alt="' . ($message['member']['online']['is_online'] ? $txt['pm_online'] : $txt['pm_offline']) . '" border="0" />' : ($message['member']['online']['is_online'] ? $txt['pm_online'] : $txt['pm_offline']), '</a></li>'; } echo ' </ul> </li>'; } // Are we showing the warning status? if ($message['member']['can_see_warning']) { echo ' <li>', $context['can_issue_warning'] ? '<a href="' . $scripturl . '?action=profile;area=issuewarning;u=' . $message['member']['id'] . '">' : '', '<img src="', $settings['images_url'], '/warning_', $message['member']['warning_status'], '.gif" alt="', $txt['user_warn_' . $message['member']['warning_status']], '" />', $context['can_issue_warning'] ? '</a>' : '', '<span class="warn_', $message['member']['warning_status'], '">', $txt['warn_' . $message['member']['warning_status']], '</span></li>'; } } // Done with the information about the poster... on to the post itself. echo ' </ul> </div> <div class="postarea"> <div class="flow_hidden"> <div class="keyinfo"> <h5> <strong>', $message['subject'], '</strong> </h5>'; // Show who the message was sent to. echo ' <div class="smalltext"> « <strong> ', $txt['sent_to'], ':</strong> '; // People it was sent directly to.... if (!empty($message['recipients']['to'])) { echo implode(', ', $message['recipients']['to']); } elseif ($context['folder'] != 'sent') { echo '(', $txt['pm_undisclosed_recipients'], ')'; } echo ' <strong> ', $txt['on'], ':</strong> ', $message['time'], ' » </div>'; // If we're in the sent items, show who it was sent to besides the "To:" people. if (!empty($message['recipients']['bcc'])) { echo ' <div class="smalltext">« <strong> ', $txt['pm_bcc'], ':</strong> ', implode(', ', $message['recipients']['bcc']), ' »</div>'; } if (!empty($message['is_replied_to'])) { echo ' <div class="smalltext">« ', $txt['pm_is_replied_to'], ' »</div>'; } echo ' </div> <ul class="reset smalltext postingbuttons">'; // Show reply buttons if you have the permission to send PMs. if ($context['can_send_pm']) { // You can't really reply if the member is gone. if (!$message['member']['is_guest']) { // Were than more than one recipient you can reply to? (Only shown when not in conversation mode.) if ($message['number_recipients'] > 1 && $context['display_mode'] != 2) { echo ' <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">', $reply_all_button, '</a></li>'; } echo ' <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'], '">', $reply_button, '</a></li> <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'], '">', $quote_button, '</a></li>'; } else { echo ' <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">', $forward_button, '</a></li>'; } } echo ' <li><a href="', $scripturl, '?action=pm;sa=pmactions;pm_actions[', $message['id'], ']=delete;f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';', $context['session_var'], '=', $context['session_id'], '" onclick="return confirm(\'', addslashes($txt['remove_message']), '?\');">', $delete_button, '</a></li>'; if (empty($context['display_mode'])) { echo ' <li><input style="vertical-align: middle;" type="checkbox" name="pms[]" id="deletedisplay', $message['id'], '" value="', $message['id'], '" onclick="document.getElementById(\'deletelisting', $message['id'], '\').checked = this.checked;" class="input_check" /></li>'; } echo ' </ul> </div> <div class="personalmessage"> <hr width="100%" size="1" class="hrcolor" /> ', $message['body'], ' </div>'; if (!empty($modSettings['enableReportPM']) && $context['folder'] != 'sent') { echo ' <div class="reportlinks smalltext righttext"> <a href="', $scripturl, '?action=pm;sa=report;l=', $context['current_label_id'], ';pmsg=', $message['id'], '">', $txt['pm_report_to_admin'], '</a> </div>'; } // Are there any custom profile fields for above the signature? if (!empty($message['member']['custom_fields'])) { $shown = false; foreach ($message['member']['custom_fields'] as $custom) { if ($custom['placement'] != 2 || empty($custom['value'])) { continue; } if (!$shown) { $shown = true; echo ' <div class="custom_fields_above_signature"> <ul class="reset nolist>'; } echo ' <li>', $custom['value'], '</li>'; } if ($shown) { echo ' </ul> </div>'; } } // Show the member's signature? if (!empty($message['member']['signature']) && empty($options['show_no_signatures']) && $context['signature_enabled']) { echo ' <div class="signature">', $message['member']['signature'], '</div>'; } // Add an extra line at the bottom if we have labels enabled. if ($context['folder'] != 'sent' && !empty($context['currently_using_labels']) && $context['display_mode'] != 2) { echo ' <div class="labels righttext">'; // Add the label drop down box. if (!empty($context['currently_using_labels'])) { echo ' <select name="pm_actions[', $message['id'], ']" onchange="if (this.options[this.selectedIndex].value) form.submit();"> <option value="">', $txt['pm_msg_label_title'], ':</option> <option value="" disabled="disabled">---------------</option>'; // Are there any labels which can be added to this? if (!$message['fully_labeled']) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_apply'], ':</option>'; foreach ($context['labels'] as $label) { if (!isset($message['labels'][$label['id']])) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } } // ... and are there any that can be removed? if (!empty($message['labels']) && (count($message['labels']) > 1 || !isset($message['labels'][-1]))) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_remove'], ':</option>'; foreach ($message['labels'] as $label) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } echo ' </select> <noscript> <input type="submit" value="', $txt['pm_apply'], '" class="button_submit" /> </noscript>'; } echo ' </div>'; } echo ' </div> </div> </div>'; } echo ' </div>'; if (empty($context['display_mode'])) { echo ' <div class="catbg flow_hidden" style="padding: 1px; margin-top: 1ex;"> <div class="floatleft pagesection">', $txt['pages'], ': ', $context['page_index'], '</div> <div class="floatright"><input type="submit" name="del_selected" value="', $txt['quickmod_delete_selected'], '" style="font-weight: normal;" onclick="if (!confirm(\'', $txt['delete_selected_confirm'], '\')) return false;" class="button_submit" /></div> </div>'; } elseif ($context['display_mode'] == 2 && isset($conversation_buttons)) { template_button_strip($conversation_buttons); } echo ' <br />'; } // Individual messages = buttom list! if ($context['display_mode'] == 1) { template_subject_list(); echo '<br />'; } echo ' <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" /> </form>'; }
function template_folder() { global $context, $settings, $options, $scripturl, $modSettings, $txt; // The every helpful javascript! echo ' <script type="text/javascript"><!-- // --><![CDATA[ var allLabels = {}; var currentLabels = {}; function loadLabelChoices() { var listing = document.forms.pmFolder.elements; var theSelect = document.forms.pmFolder.pm_action; var add, remove, toAdd = {length: 0}, toRemove = {length: 0}; if (theSelect.childNodes.length == 0) return;'; // This is done this way for internationalization reasons. echo ' if (!(\'-1\' in allLabels)) { for (var o = 0; o < theSelect.options.length; o++) if (theSelect.options[o].value.substr(0, 4) == "rem_") allLabels[theSelect.options[o].value.substr(4)] = theSelect.options[o].text; } for (var i = 0; i < listing.length; i++) { if (listing[i].name != "pms[]" || !listing[i].checked) continue; var alreadyThere = [], x; for (x in currentLabels[listing[i].value]) { if (!(x in toRemove)) { toRemove[x] = allLabels[x]; toRemove.length++; } alreadyThere[x] = allLabels[x]; } for (x in allLabels) { if (!(x in alreadyThere)) { toAdd[x] = allLabels[x]; toAdd.length++; } } } while (theSelect.options.length > 2) theSelect.options[2] = null; if (toAdd.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_apply'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_apply'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toAdd) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toAdd[i], "add_" + i); } } if (toRemove.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_remove'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_remove'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toRemove) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toRemove[i], "rem_" + i); } } } // ]]></script>'; echo ' <form class="flow_hidden" action="', $scripturl, '?action=pm;sa=pmactions;', $context['display_mode'] == 2 ? 'conversation;' : '', 'f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', '" method="post" accept-charset="', $context['character_set'], '" name="pmFolder">'; // If we are not in single display mode show the subjects on the top! if ($context['display_mode'] != 1) { template_subject_list(); echo '<div class="clear_right"><br /></div>'; } // Got some messages to display? if ($context['get_pmessage']('message', true)) { // Show the helpful titlebar - generally. if ($context['display_mode'] != 1) { echo ' <div class="cat_bar"> <h3 class="catbg"> <span id="author">', $txt['author'], '</span> <span id="topic_title">', $txt[$context['display_mode'] == 0 ? 'messages' : 'conversation'], '</span> </h3> </div>'; } // Show a few buttons if we are in conversation mode and outputting the first message. if ($context['display_mode'] == 2) { // Build the normal button array. $conversation_buttons = array('reply' => array('text' => 'reply_to_all', 'image' => 'reply.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=send;f=' . $context['folder'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';pmsg=' . $context['current_pm'] . ';u=all', 'active' => true), 'delete' => array('text' => 'delete_conversation', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=pmactions;pm_actions[' . $context['current_pm'] . ']=delete;conversation;f=' . $context['folder'] . ';start=' . $context['start'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';' . $context['session_var'] . '=' . $context['session_id'], 'custom' => 'onclick="return confirm(\'' . addslashes($txt['remove_message']) . '?\');"')); // Show the conversation buttons. echo ' <div class="pagesection">'; template_button_strip($conversation_buttons, 'right'); echo ' </div>'; } while ($message = $context['get_pmessage']('message')) { $window_class = $message['alternate'] == 0 ? 'windowbg' : 'windowbg2'; echo ' <div class="', $window_class, ' clear"> <div class="bwgrid"> <div class="bwcell2"> <a id="msg', $message['id'], '"></a> <h4>'; // Show online and offline buttons? if (!empty($modSettings['onlineEnable']) && !$message['member']['is_guest']) { echo ' <img src="', $message['member']['online']['image_href'], '" alt="', $message['member']['online']['text'], '" />'; } echo ' ', $message['member']['link'], ' </h4> <ul class="reset smalltext" id="msg_', $message['id'], '_extra_info">'; // Show the member's primary group (like 'Administrator') if they have one. if (isset($message['member']['group']) && $message['member']['group'] != '') { echo ' <li class="membergroup">', $message['member']['group'], '</li>'; } // Done with the information about the poster... on to the post itself. echo ' </ul> </div> <div class="bwcell14"> <div class="flow_hidden"> <div class="keyinfo"> <h5 id="subject_', $message['id'], '" class="largetext"> ', $message['subject'], ' </h5>'; // Show who the message was sent to. echo ' <span class="smalltext">« <strong> ', $txt['sent_to'], ':</strong> '; // People it was sent directly to.... if (!empty($message['recipients']['to'])) { echo implode(', ', $message['recipients']['to']); } elseif ($context['folder'] != 'sent') { echo '(', $txt['pm_undisclosed_recipients'], ')'; } echo ' <strong> ', $txt['on'], ':</strong> ', $message['time'], ' » </span>'; // If we're in the sent items, show who it was sent to besides the "To:" people. if (!empty($message['recipients']['bcc'])) { echo ' <br /><span class="smalltext">« <strong> ', $txt['pm_bcc'], ':</strong> ', implode(', ', $message['recipients']['bcc']), ' »</span>'; } if (!empty($message['is_replied_to'])) { echo ' <br /><span class="smalltext">« ', $txt['pm_is_replied_to'], ' »</span>'; } echo ' </div> </div> <div class="clear"> <div id="msg_', $message['id'], '"', ' class="post" style="margin-left: 0;">', $message['body'], '</div> <div class="smalltext reportlinks"> ', !empty($modSettings['enableReportPM']) && $context['folder'] != 'sent' ? '<div class="righttext"><a href="' . $scripturl . '?action=pm;sa=report;l=' . $context['current_label_id'] . ';pmsg=' . $message['id'] . '">' . $txt['pm_report_to_admin'] . '</a></div>' : ''; echo ' </div>'; // Add an extra line at the bottom if we have labels enabled. if ($context['folder'] != 'sent' && !empty($context['currently_using_labels']) && $context['display_mode'] != 2) { echo ' <div class="labels righttext">'; // Add the label drop down box. if (!empty($context['currently_using_labels'])) { echo ' <select name="pm_actions[', $message['id'], ']" onchange="if (this.options[this.selectedIndex].value) form.submit();"> <option value="">', $txt['pm_msg_label_title'], ':</option> <option value="" disabled="disabled">---------------</option>'; // Are there any labels which can be added to this? if (!$message['fully_labeled']) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_apply'], ':</option>'; foreach ($context['labels'] as $label) { if (!isset($message['labels'][$label['id']])) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } } // ... and are there any that can be removed? if (!empty($message['labels']) && (count($message['labels']) > 1 || !isset($message['labels'][-1]))) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_remove'], ':</option>'; foreach ($message['labels'] as $label) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } echo ' </select> <noscript> <input type="submit" value="', $txt['pm_apply'], '" class="button_submit" /> </noscript>'; } echo ' </div>'; } echo ' </div> <br class="clear" /> </div> </div> </div>'; } if (empty($context['display_mode'])) { echo ' <div class="pagesection"> <div class="floatleft">', $txt['pages'], ': ', $context['page_index'], '</div> <div class="floatright"><input type="submit" name="del_selected" value="', $txt['quickmod_delete_selected'], '" style="font-weight: normal;" onclick="if (!confirm(\'', $txt['delete_selected_confirm'], '\')) return false;" class="button_submit" /></div> </div>'; } elseif ($context['display_mode'] == 2 && isset($conversation_buttons)) { echo ' <div class="pagesection">'; template_button_strip($conversation_buttons, 'right'); echo ' </div>'; } echo ' <br />'; } // Individual messages = buttom list! if ($context['display_mode'] == 1) { template_subject_list(); echo '<br />'; } echo ' <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" /> </form>'; }
/** * Template layer to show items below the subject list */ function template_subject_list_below() { global $context; // Individual messages = button list! if ($context['display_mode'] == 1) { template_subject_list(); } }
function template_folder() { global $context, $settings, $options, $scripturl, $modSettings, $txt; $imgsrc = $settings['images_url'] . '/clipsrc.png'; // The every helpful javascript! echo ' <script type="text/javascript"><!-- // --><![CDATA[ var allLabels = {}; var currentLabels = {}; function loadLabelChoices() { var listing = document.forms.pmFolder.elements; var theSelect = document.forms.pmFolder.pm_action; var add, remove, toAdd = {length: 0}, toRemove = {length: 0}; if (theSelect.childNodes.length == 0) return;'; // This is done this way for internationalization reasons. echo ' if (!(\'-1\' in allLabels)) { for (var o = 0; o < theSelect.options.length; o++) if (theSelect.options[o].value.substr(0, 4) == "rem_") allLabels[theSelect.options[o].value.substr(4)] = theSelect.options[o].text; } for (var i = 0; i < listing.length; i++) { if (listing[i].name != "pms[]" || !listing[i].checked) continue; var alreadyThere = [], x; for (x in currentLabels[listing[i].value]) { if (!(x in toRemove)) { toRemove[x] = allLabels[x]; toRemove.length++; } alreadyThere[x] = allLabels[x]; } for (x in allLabels) { if (!(x in alreadyThere)) { toAdd[x] = allLabels[x]; toAdd.length++; } } } while (theSelect.options.length > 2) theSelect.options[2] = null; if (toAdd.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_apply'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_apply'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toAdd) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toAdd[i], "add_" + i); } } if (toRemove.length != 0) { theSelect.options[theSelect.options.length] = new Option("', $txt['pm_msg_label_remove'], '", ""); setInnerHTML(theSelect.options[theSelect.options.length - 1], "', $txt['pm_msg_label_remove'], '"); theSelect.options[theSelect.options.length - 1].disabled = true; for (i in toRemove) { if (i != "length") theSelect.options[theSelect.options.length] = new Option(toRemove[i], "rem_" + i); } } } // ]]></script>'; echo ' <form style="padding-right:5px;" action="', $scripturl, '?action=pm;sa=pmactions;', $context['display_mode'] == 2 ? 'conversation;' : '', 'f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', '" method="post" accept-charset="UTF-8" name="pmFolder">'; // If we are not in single display mode show the subjects on the top! if ($context['display_mode'] == 2) { template_subject_list(); echo '<div class="clear"><br /></div>'; } else { echo ' <div class="cat_bar2"> <div class="floatright tinytext"> <a href="', $scripturl, '?action=pm;view;f=', $context['folder'], ';start=', $context['start'], ';sort=', $context['sort_by'], $context['sort_direction'] == 'up' ? '' : ';desc', $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', '">', $txt['pm_change_view'], '</a> </div> <h3>', $context['pmboxname'], ' (', $context['display_mode'] == 1 ? $txt['pm_single_view'] : $txt['pm_flat_view'], ')</h3> </div>'; } echo ' <div class="clear"></div>'; // Got some messages to display? echo '<div class="posts_container">'; if ($context['get_pmessage']('message', true)) { // Show a few buttons if we are in conversation mode and outputting the first message. if ($context['display_mode'] == 2) { // Build the normal button array. $conversation_buttons = array('reply' => array('text' => 'reply_to_all', 'image' => 'reply.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=send;f=' . $context['folder'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';pmsg=' . $context['current_pm'] . ';u=all', 'active' => true), 'delete' => array('text' => 'delete_conversation', 'image' => 'delete.gif', 'lang' => true, 'url' => $scripturl . '?action=pm;sa=pmactions;pm_actions[' . $context['current_pm'] . ']=delete;conversation;f=' . $context['folder'] . ';start=' . $context['start'] . ($context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '') . ';' . $context['session_var'] . '=' . $context['session_id'], 'custom' => 'onclick="return confirm(\'' . addslashes($txt['remove_message']) . '?\');"')); // Show the conversation buttons. echo ' <div class="pagesection">'; template_button_strip($conversation_buttons, 'right'); echo ' </div>'; } while ($message = $context['get_pmessage']('message')) { EoS_Smarty::getSmartyInstance()->display('pm/pmbit.tpl'); } echo ' </div>'; if (empty($context['display_mode'])) { echo ' <div class="pagesection"> <div class="floatleft pagelinks">', $context['page_index'], '</div> <div class="floatright"><input type="submit" name="del_selected" value="', $txt['quickmod_delete_selected'], '" style="font-weight: normal;" onclick="if (!confirm(\'', $txt['delete_selected_confirm'], '\')) return false;" class="button_submit" /></div> </div>'; } elseif ($context['display_mode'] == 2 && isset($conversation_buttons)) { echo ' <div class="pagesection">'; template_button_strip($conversation_buttons, 'right'); echo ' </div>'; } } else { echo ' <div class="red_container norounded mediumpadding">', $txt['pm_no_messages'], ' </div>'; } // Individual messages = buttom list! if ($context['display_mode'] == 1) { template_subject_list(); echo '<br />'; } echo ' <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" /> </form>'; }
function template_folder() { global $context, $settings, $options, $scripturl, $modSettings, $txt; // The every helpful javascript! echo ' <script> var allLabels = {}; var currentLabels = {}; var txt_pm_msg_label_remove = "', $txt['pm_msg_label_remove'], '"; var txt_pm_msg_label_apply = "', $txt['pm_msg_label_apply'], '"; </script>'; echo ' <form class="flow_hidden" action="', $scripturl, '?action=pm;sa=pmactions;', $context['display_mode'] == 2 ? 'conversation;' : '', 'f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', '" method="post" accept-charset="', $context['character_set'], '" name="pmFolder">'; template_subject_list(); // Got some messages to display? if ($context['get_pmessage']('message', true)) { while ($message = $context['get_pmessage']('message')) { echo ' <ul data-role="listview" data-inset="true"> <li data-theme="b"> <span><a id="msg', $message['id'], '"></a></span>'; // Show avatars, images, etc.? if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image'])) { echo ' <div class="avatar">', $message['member']['avatar']['image'], '</div>'; } echo ' <h4 id="subject_', $message['id'], '">', $txt['subject'], ': ', $message['subject'], ' </h4> <p>', $txt['from'], ': ', $message['member']['link'], '</p> <p class="ui-li-aside">« <strong> ', $txt['sent_to'], ':</strong>'; // People it was sent directly to.... if (!empty($message['recipients']['to'])) { echo implode(', ', $message['recipients']['to']); } elseif ($context['folder'] != 'sent') { echo '(', $txt['pm_undisclosed_recipients'], ')'; } echo ' <strong> ', $txt['on'], ':</strong> ', $message['time'], ' » </p> </li>'; // Don't show these things for guests. // if (!$message['member']['is_guest']) // { // if ($message['can_report']) // echo ' // <li class="report_link"><a href="' . $scripturl . '?action=pm;sa=report;l=' . $context['current_label_id'] . ';pmsg=' . $message['id'] . '">' . $txt['pm_report_to_admin'] . '</a></li>'; // The post itself. echo ' <li> <p id="msg_', $message['id'], '">', $message['body'], '</p> <div data-role="controlgroup" data-mini="true" data-type="horizontal" class="ui-li-aside">'; // Show reply buttons if you have the permission to send PMs. if ($context['can_send_pm']) { // You can't really reply if the member is gone. if (!$message['member']['is_guest']) { // Is there than more than one recipient you can reply to? if ($message['number_recipients'] > 1) { echo ' <a data-role="button" 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" class="reply_all_button">', $txt['reply_to_all'], '</a>'; } echo ' <a data-role="button" 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'], '" class="reply_button">', $txt['reply'], '</a> <a data-role="button" 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'], '" class="quote_button">', $txt['quote'], '</a>'; } else { echo ' <a data-role="button" href="', $scripturl, '?action=pm;sa=send;f=', $context['folder'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';pmsg=', $message['id'], ';quote" class="quote_button">', $txt['reply_quote'], '</a>'; } } echo ' <a class="deleteMsg" data-role="button" href="', $scripturl, '?action=pm;sa=pmactions;pm_actions[', $message['id'], ']=delete;f=', $context['folder'], ';start=', $context['start'], $context['current_label_id'] != -1 ? ';l=' . $context['current_label_id'] : '', ';', $context['session_var'], '=', $context['session_id'], '">', $txt['delete'], '</a> </div> </li>'; // If we're in the sent items, show who it was sent to besides the "To:" people. if (!empty($message['recipients']['bcc'])) { echo ' <br /><span class="smalltext">« <strong> ', $txt['pm_bcc'], ':</strong> ', implode(', ', $message['recipients']['bcc']), ' »</span>'; } // Add an extra line at the bottom if we have labels enabled. if ($context['folder'] != 'sent' && !empty($context['currently_using_labels']) && $context['display_mode'] != 2) { echo ' <div class="labels righttext flow_auto">'; // Add the label drop down box. if (!empty($context['currently_using_labels'])) { echo ' <select name="pm_actions[', $message['id'], ']" onchange="if (this.options[this.selectedIndex].value) form.submit();"> <option value="">', $txt['pm_msg_label_title'], ':</option> <option value="" disabled="disabled">---------------</option>'; // Are there any labels which can be added to this? if (!$message['fully_labeled']) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_apply'], ':</option>'; foreach ($context['labels'] as $label) { if (!isset($message['labels'][$label['id']])) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } } // ... and are there any that can be removed? if (!empty($message['labels']) && (count($message['labels']) > 1 || !isset($message['labels'][-1]))) { echo ' <option value="" disabled="disabled">', $txt['pm_msg_label_remove'], ':</option>'; foreach ($message['labels'] as $label) { echo ' <option value="', $label['id'], '"> ', $label['name'], '</option>'; } } echo ' </select> <noscript> <input type="submit" value="', $txt['pm_apply'], '" class="button_submit" style="float: none" /> </noscript>'; } echo ' </div>'; } echo ' </ul>'; } } echo ' <input type="hidden" name="', $context['session_var'], '" value="', $context['session_id'], '" /> </form>'; }