$preview_message['RECIPIENTS'] = $to_logon_array; $preview_fuser = user_get($_SESSION['UID']); $preview_message['FROM_LOGON'] = $preview_fuser['LOGON']; $preview_message['FROM_NICKNAME'] = $preview_fuser['NICKNAME']; $preview_message['FROM_UID'] = $preview_fuser['UID']; $preview_message['CONTENT'] = $content; if ($allow_sig == true && strlen(trim($sig)) > 0) { $preview_message['CONTENT'] = $preview_message['CONTENT'] . "<div class=\"sig\">" . $sig . "</div>"; } $preview_message['CREATED'] = time(); $preview_message['ATTACHMENTS'] = $attachments; light_message_display(0, $preview_message, 0, 0, 0, false, false, false, false, true); } if (!$new_thread) { if (isset($thread_data['CLOSED']) && $thread_data['CLOSED'] > 0 && !session::check_perm(USER_PERM_FOLDER_MODERATE, $fid)) { light_html_display_warning_msg(gettext("This thread is closed, you cannot post in it!")); } } echo "<form accept-charset=\"utf-8\" name=\"f_post\" action=\"lpost.php\" method=\"post\">\n"; echo " ", form_csrf_token_field(), "\n"; echo form_input_hidden('webtag', htmlentities_array($webtag)); echo form_input_hidden('dedupe', htmlentities_array($dedupe)); echo "<div class=\"post\">\n"; if (!isset($threadtitle)) { $threadtitle = ""; } if (!isset($fid)) { $fid = 1; } if ($new_thread) { echo form_input_hidden("newthread", "Y");
if (!isset($t_fid)) { $t_fid = 1; } if ($new_thread && !($folder_dropdown = folder_draw_dropdown($t_fid, "t_fid", "", FOLDER_ALLOW_NORMAL_THREAD, USER_PERM_THREAD_CREATE, "", "post_folder_dropdown"))) { light_html_draw_error(gettext("You cannot create new threads.")); } if (isset($thread_data['CLOSED']) && $thread_data['CLOSED'] > 0 && !session::check_perm(USER_PERM_FOLDER_MODERATE, $t_fid)) { light_html_draw_error(gettext("This thread is closed, you cannot post in it!")); } light_html_draw_top(sprintf("title=%s", gettext("Post message"))); echo "<h1>", gettext("Post message"), "</h1>\n"; if (isset($error_msg_array) && sizeof($error_msg_array) > 0) { light_html_display_error_array($error_msg_array); } if (!$new_thread && isset($thread_data['CLOSED']) && $thread_data['CLOSED'] > 0 && session::check_perm(USER_PERM_FOLDER_MODERATE, $t_fid)) { light_html_display_warning_msg(gettext("Warning: this thread is closed for posting to normal users.")); } if ($valid && isset($_POST['preview'])) { echo "<h3>", gettext("Message Preview"), "</h3>"; if ($t_to_uid == 0) { $preview_message['TLOGON'] = gettext("ALL"); $preview_message['TNICK'] = gettext("ALL"); } else { if ($t_to_uid > 0) { $preview_tuser = user_get($t_to_uid); $preview_message['TLOGON'] = $preview_tuser['LOGON']; $preview_message['TNICK'] = $preview_tuser['NICKNAME']; $preview_message['TO_UID'] = $preview_tuser['UID']; } } $preview_tuser = user_get($uid);
function light_draw_pm_inbox() { $webtag = get_webtag(); forum_check_webtag_available($webtag); $new_count = 0; $outbox_count = 0; $unread_count = 0; $current_folder = PM_FOLDER_INBOX; pm_get_message_count($new_count, $outbox_count, $unread_count); if (!($folder_names_array = pm_get_folder_names())) { $folder_names_array = array(PM_FOLDER_INBOX => gettext("Inbox"), PM_FOLDER_SENT => gettext("Sent Items"), PM_FOLDER_OUTBOX => gettext("Outbox"), PM_FOLDER_SAVED => gettext("Saved Items"), PM_FOLDER_DRAFTS => gettext("Drafts")); } if (isset($_GET['page']) && is_numeric($_GET['page'])) { $page = $_GET['page'] > 0 ? $_GET['page'] : 1; } else { if (isset($_POST['page']) && is_numeric($_POST['page'])) { $page = $_POST['page'] > 0 ? $_POST['page'] : 1; } else { $page = 1; } } if (isset($_GET['mid']) && is_numeric($_GET['mid'])) { $mid = $_GET['mid'] > 0 ? $_GET['mid'] : 0; } else { if (isset($_POST['mid']) && is_numeric($_POST['mid'])) { $mid = $_POST['mid'] > 0 ? $_POST['mid'] : 0; } else { $mid = null; } } if (isset($_GET['folder'])) { if ($_GET['folder'] == PM_FOLDER_INBOX) { $current_folder = PM_FOLDER_INBOX; } else { if ($_GET['folder'] == PM_FOLDER_SENT) { $current_folder = PM_FOLDER_SENT; } else { if ($_GET['folder'] == PM_FOLDER_OUTBOX) { $current_folder = PM_FOLDER_OUTBOX; } else { if ($_GET['folder'] == PM_FOLDER_SAVED) { $current_folder = PM_FOLDER_SAVED; } else { if ($_GET['folder'] == PM_FOLDER_DRAFTS) { $current_folder = PM_FOLDER_DRAFTS; } else { if ($_GET['folder'] == PM_SEARCH_RESULTS) { $current_folder = PM_SEARCH_RESULTS; } } } } } } } else { if (isset($_POST['folder'])) { if ($_POST['folder'] == PM_FOLDER_INBOX) { $current_folder = PM_FOLDER_INBOX; } else { if ($_POST['folder'] == PM_FOLDER_SENT) { $current_folder = PM_FOLDER_SENT; } else { if ($_POST['folder'] == PM_FOLDER_OUTBOX) { $current_folder = PM_FOLDER_OUTBOX; } else { if ($_POST['folder'] == PM_FOLDER_SAVED) { $current_folder = PM_FOLDER_SAVED; } else { if ($_POST['folder'] == PM_FOLDER_DRAFTS) { $current_folder = PM_FOLDER_DRAFTS; } else { if ($_POST['folder'] == PM_SEARCH_RESULTS) { $current_folder = PM_SEARCH_RESULTS; } } } } } } } } if (isset($_GET['delete_msg']) && is_numeric($_GET['delete_msg']) && ($message_data = pm_message_get($_GET['delete_msg']))) { $delete_mid = $_GET['delete_msg']; $type = pm_get_folder_type($current_folder); $message_data['CONTENT'] = pm_get_content($delete_mid); if (isset($_POST['pm_delete_confirm'])) { if (pm_delete_message($delete_mid)) { header_redirect("lpm.php?webtag={$webtag}&folder={$current_folder}&deleted=true"); exit; } } else { if (isset($_POST['cancel'])) { header_redirect("lpm.php?webtag={$webtag}&folder={$current_folder}&mid={$delete_mid}"); exit; } } echo "<form method=\"post\" action=\"lpm.php?delete_msg={$delete_mid}&folder={$current_folder}\">"; echo form_csrf_token_field(); light_pm_display($message_data, true); echo "<div class=\"post_buttons\">"; echo light_form_submit("pm_delete_confirm", gettext("Delete")); echo light_form_submit("cancel", gettext("Cancel")); echo "</div>\n"; return; } if (isset($mid) && is_numeric($mid) && $mid > 0) { if (!($message_data = pm_message_get($mid))) { light_html_display_error_msg(gettext("Message not found. Check that it hasn't been deleted.")); } else { if (isset($_GET['message_sent'])) { light_html_display_success_msg(gettext("Message sent successfully.")); } else { if (isset($_GET['deleted'])) { light_html_display_success_msg(gettext("Successfully deleted selected messages")); } else { if (isset($_GET['message_saved'])) { light_html_display_success_msg(gettext("Message was successfully saved to 'Drafts' folder")); } } } $message_data['CONTENT'] = pm_get_content($mid); light_pm_display($message_data); if ($current_folder == PM_FOLDER_INBOX && $message_data['TYPE'] == PM_UNREAD) { pm_mark_as_read($mid); } } } else { if (isset($_GET['message_sent'])) { light_html_display_success_msg(gettext("Message sent successfully.")); } else { if (isset($_GET['deleted'])) { light_html_display_success_msg(gettext("Successfully deleted selected messages")); } else { if (isset($_GET['message_saved'])) { light_html_display_success_msg(gettext("Message was successfully saved to 'Drafts' folder")); } } } $message_count_array = pm_get_folder_message_counts(); echo "<div id=\"folder_view\">\n"; echo "<form accept-charset=\"utf-8\" method=\"get\" action=\"lpm.php\">\n"; echo "<ul>\n"; echo "<li>", light_form_dropdown_array("folder", $folder_names_array, $current_folder), "</li>\n"; echo "<li class=\"right_col\">", light_form_submit("go", gettext("Go!")), "</li>\n"; echo "</ul>\n"; echo "</form>\n"; echo "</div>\n"; if (isset($message_count_array[$current_folder]) && is_numeric($message_count_array[$current_folder])) { echo "<div class=\"folder\">"; echo " <h3>", html_style_image('folder'), "{$folder_names_array[$current_folder]}</h3>\n"; echo " <div class=\"folder_inner\">\n"; echo " <div class=\"folder_info\">{$message_count_array[$current_folder]} ", gettext("Messages"), "</div>\n"; if ($current_folder == PM_FOLDER_INBOX) { $messages_array = pm_get_inbox(false, false, $page, 20); } else { if ($current_folder == PM_FOLDER_SENT) { $messages_array = pm_get_sent(false, false, $page, 20); } else { if ($current_folder == PM_FOLDER_OUTBOX) { $messages_array = pm_get_outbox(false, false, $page, 20); } else { if ($current_folder == PM_FOLDER_SAVED) { $messages_array = pm_get_saved_items(false, false, $page, 20); } else { if ($current_folder == PM_FOLDER_DRAFTS) { $messages_array = pm_get_drafts(false, false, $page, 20); } } } } } if (isset($messages_array['message_array']) && sizeof($messages_array['message_array']) > 0) { if ($page > 1) { echo "<div class=\"folder_pagination\"><a href=\"lpm.php?webtag={$webtag}&folder={$current_folder}&page=", $page - 1, "\">", gettext("Previous"), "</a></div>\n"; } echo "<ul>\n"; foreach ($messages_array['message_array'] as $message) { echo "<li>"; echo "<span class=\"pm_icon\">"; if ($message['TYPE'] == PM_UNREAD) { echo html_style_image('pm_unread'); } else { echo html_style_image('pm_read'); } echo "</span><span class=\"pm_title\">"; echo "<a href=\"lpm.php?webtag={$webtag}&folder={$current_folder}&mid={$message['MID']}\">{$message['SUBJECT']}</a>"; echo "</span>"; echo "<span class=\"pm_time\">", format_date_time($message['CREATED']), "</span>"; echo "</li>\n"; } echo "</ul>\n"; $more_messages = $message_count_array[$current_folder] - $page - 1; if ($more_messages > 0) { echo "<div class=\"folder_pagination\"><a href=\"lpm.php?webtag={$webtag}&folder={$current_folder}&page=", $page + 1, "\">", gettext("Next"), "</a></div>\n"; } } echo " </div>\n"; echo "</div>\n"; } $free_space = pm_get_free_space($_SESSION['UID']); $max_user_messages = forum_get_setting('pm_max_user_messages', null, 100); $used_percent = 100 / $max_user_messages * ($max_user_messages - $free_space); echo "<div class=\"pm_bar\">\n"; echo "<div class=\"pm_bar_inner\" style=\"width: {$used_percent}%\"></div>\n"; echo "</div>\n"; echo "<div class=\"pm_folder_usage\">", sprintf(gettext("Your PM folders are %s full"), "{$used_percent}%"), "</div>\n"; if (pm_auto_prune_enabled()) { light_html_display_warning_msg(gettext("PM Folder pruning is enabled!")); } } }
function light_message_display($tid, $message, $msg_count, $first_msg, $folder_fid, $in_list = true, $closed = false, $limit_text = true, $is_poll = false, $is_preview = false) { $perm_is_moderator = session::check_perm(USER_PERM_FOLDER_MODERATE, $folder_fid); $post_edit_time = forum_get_setting('post_edit_time', null, 0); $post_edit_grace_period = forum_get_setting('post_edit_grace_period', null, 0); $webtag = get_webtag(); $attachments_array = array(); $image_attachments_array = array(); if (($uid = session::get_value('UID')) === false) { return; } if ((!isset($message['CONTENT']) || $message['CONTENT'] == "") && !$is_preview) { light_message_display_deleted($tid, isset($message['PID']) ? $message['PID'] : 0); return; } $from_user_permissions = perm_get_user_permissions($message['FROM_UID']); if ($uid != $message['FROM_UID']) { if ($from_user_permissions & USER_PERM_WORMED && !$perm_is_moderator) { light_message_display_deleted($tid, $message['PID']); return; } } if (!isset($message['FROM_RELATIONSHIP'])) { $message['FROM_RELATIONSHIP'] = 0; } if (!isset($message['TO_RELATIONSHIP'])) { $message['TO_RELATIONSHIP'] = 0; } if ($message['TO_RELATIONSHIP'] & USER_IGNORED_COMPLETELY || $message['FROM_RELATIONSHIP'] & USER_IGNORED_COMPLETELY) { light_message_display_deleted($tid, $message['PID']); return; } if (forum_get_setting('require_post_approval', 'Y') && $message['FROM_UID'] != $uid) { if (isset($message['APPROVED']) && $message['APPROVED'] == 0 && !$perm_is_moderator) { light_message_display_approval_req($tid, $message['PID']); return; } } // OUTPUT MESSAGE ---------------------------------------------------------- if (!$is_preview && $message['MOVED_TID'] > 0 && $message['MOVED_PID'] > 0) { $post_link = "<a href=\"messages.php?webtag={$webtag}&msg=%s.%s\" target=\"_self\">%s</a>"; $post_link = sprintf($post_link, $message['MOVED_TID'], $message['MOVED_PID'], gettext("here")); light_html_display_warning_msg(gettext("<b>Thread Split:</b> This post has been moved %s"), $post_link); return; } if ($in_list) { echo "<a name=\"a{$tid}_{$message['PID']}\"></a>"; } echo "<div class=\"message\">\n"; if (session::get_value('IMAGES_TO_LINKS') == 'Y') { $message['CONTENT'] = preg_replace('/<a([^>]*)href="([^"]*)"([^\\>]*)><img[^>]*src="([^"]*)"[^>]*><\\/a>/iu', '[img: <a\\1href="\\2"\\3>\\4</a>]', $message['CONTENT']); $message['CONTENT'] = preg_replace('/<img[^>]*src="([^"]*)"[^>]*>/iu', '[img: <a href="\\1">\\1</a>]', $message['CONTENT']); $message['CONTENT'] = preg_replace('/<embed[^>]*src="([^"]*)"[^>]*>/iu', '[object: <a href="\\1">\\1</a>]', $message['CONTENT']); } if (mb_strlen(strip_tags($message['CONTENT'])) > intval(forum_get_setting('maximum_post_length', null, 6226)) && $limit_text) { $cut_msg = mb_substr($message['CONTENT'], 0, intval(forum_get_setting('maximum_post_length', null, 6226))); $cut_msg = preg_replace("/(<[^>]+)?\$/Du", "", $cut_msg); $message['CONTENT'] = fix_html($cut_msg); $message['CONTENT'] .= "…[" . gettext("Message Truncated") . "]\n"; $message['CONTENT'] .= "<a href=\"ldisplay.php?webtag={$webtag}&msg={$tid}.{$message['PID']}\" class=\"message_full_view\">" . gettext("View full message") . ".</a>"; } echo "<div class=\"message_header\">\n"; echo "<div class=\"message_from\">\n"; echo "", gettext("From"), ": ", word_filter_add_ob_tags(format_user_name($message['FLOGON'], $message['FNICK']), true); if ($message['FROM_RELATIONSHIP'] & USER_FRIEND) { echo "<span class=\"user_friend\" title=\"", gettext("Friend"), "\">[F]</span>"; } else { if ($message['FROM_RELATIONSHIP'] & USER_IGNORED) { echo "<span class=\"user_enemy\" title=\"", gettext("Ignored user"), "\">[E]</span>"; } } // If the user posting a poll is ignored, remove ignored status for this message only so the poll can be seen if ($is_poll && $message['PID'] == 1 && $message['FROM_RELATIONSHIP'] & USER_IGNORED) { $message['FROM_RELATIONSHIP'] -= USER_IGNORED; } if ($message['FROM_RELATIONSHIP'] & USER_IGNORED && $limit_text) { echo gettext("Ignored message"); } else { if ($in_list) { if ($from_user_permissions & USER_PERM_WORMED) { echo gettext("Wormed user"); } echo "<span class=\"message_time\">", format_time($message['CREATED']), "</span>\n"; } } echo "<div class=\"clearer\"></div>\n"; echo "</div>"; echo "<div class=\"message_to\">\n"; if ($message['TLOGON'] != gettext("ALL") && $message['TO_UID'] != 0) { echo "", gettext("To"), ": ", word_filter_add_ob_tags(format_user_name($message['TLOGON'], $message['TNICK']), true); if ($message['TO_RELATIONSHIP'] & USER_FRIEND) { echo "<span class=\"user_friend\" title=\"", gettext("Friend"), "\">[F]</span>"; } else { if ($message['TO_RELATIONSHIP'] & USER_IGNORED) { echo "<span class=\"user_enemy\" title=\"", gettext("Ignored user"), "\">[E]</span>"; } } if (!$is_preview) { if (isset($message['VIEWED']) && $message['VIEWED'] > 0) { echo "<span class=\"message_read\">", format_time($message['VIEWED']), "</span>"; } else { echo "<span class=\"message_unread\" title=\"", gettext("Unread"), "\"></span>"; } } } else { echo "", gettext("To"), ": ", gettext("ALL"), ""; } if ($in_list && $msg_count > 0) { echo "<span class=\"message_count\">", sprintf(gettext("%s of %s"), $message['PID'], $msg_count), "</span>"; } echo "<div class=\"clearer\"></div>\n"; echo "</div>\n"; echo "</div>\n"; echo "<div class=\"message_links\">\n"; if ($in_list && $msg_count > 0) { echo "<a href=\"lmessages.php?webtag={$webtag}&msg={$tid}.{$message['PID']}\">{$tid}.{$message['PID']}</a>"; if ($message['REPLY_TO_PID'] > 0) { echo " ", gettext("In reply to"), " "; if (intval($message['REPLY_TO_PID']) >= intval($first_msg)) { echo "<a href=\"#a{$tid}_{$message['REPLY_TO_PID']}\" target=\"_self\">{$tid}.{$message['REPLY_TO_PID']}</a>"; } else { echo "<a href=\"lmessages.php?webtag={$webtag}&msg={$tid}.{$message['REPLY_TO_PID']}\">{$tid}.{$message['REPLY_TO_PID']}</a>"; } } } echo "</div>\n"; if (!$is_poll || $is_poll && isset($message['PID']) && $message['PID'] > 1) { $message['CONTENT'] = message_apply_formatting($message['CONTENT'], true); } $message['CONTENT'] = light_spoiler_enable($message['CONTENT']); if ($is_poll !== true) { $message['CONTENT'] = word_filter_add_ob_tags($message['CONTENT']); } echo "<div class=\"message_body\">\n"; echo $message['CONTENT']; if (isset($message['EDITED']) && $message['EDITED'] > 0) { if ($post_edit_grace_period == 0 || $message['EDITED'] - $message['CREATED'] > $post_edit_grace_period * MINUTE_IN_SECONDS) { if ($edit_user = user_get_logon($message['EDITED_BY'])) { echo "<div class=\"edit_text\">", sprintf(gettext("EDITED: %s by %s"), format_time($message['EDITED']), $edit_user), "</div>\n"; } } } echo "</div>\n"; if ($tid != 0 && isset($message['PID']) || isset($message['AID'])) { $aid = isset($message['AID']) ? $message['AID'] : attachments_get_id($tid, $message['PID']); if (attachments_get($message['FROM_UID'], $aid, $attachments_array, $image_attachments_array)) { if (sizeof($attachments_array) > 0) { echo "<div class=\"message_attachments\">\n"; echo " <span>", gettext("Attachments"), ":</span>\n"; echo " <ul>\n"; foreach ($attachments_array as $attachment) { if ($attachment_link = light_attachments_make_link($attachment)) { echo "<li>", $attachment_link, "</li>\n"; } } echo " </ul>\n"; echo "</div>\n"; } if (sizeof($image_attachments_array) > 0) { echo "<div class=\"message_attachments\">\n"; echo " <span>", gettext("Image Attachments"), ":</span>\n"; echo " <ul>\n"; foreach ($image_attachments_array as $attachment) { if ($attachment_link = light_attachments_make_link($attachment)) { echo "<li>", $attachment_link, "</li>\n"; } } echo " </ul>\n"; echo "</div>\n"; } } } if (!$is_preview && $msg_count > 0) { $links_array = array(); if (!$closed && session::check_perm(USER_PERM_POST_CREATE, $folder_fid)) { $links_array[] = "<a href=\"lpost.php?webtag={$webtag}&replyto={$tid}.{$message['PID']}\" class=\"reply\">" . gettext("Reply") . "</a>"; } if ($uid == $message['FROM_UID'] && session::check_perm(USER_PERM_POST_DELETE, $folder_fid) && !session::check_perm(USER_PERM_PILLORIED, 0) || $perm_is_moderator) { $links_array[] = "<a href=\"ldelete.php?webtag={$webtag}&msg={$tid}.{$message['PID']}\" class=\"delete\">" . gettext("Delete") . "</a>"; } if (!session::check_perm(USER_PERM_PILLORIED, 0) && ($uid != $message['FROM_UID'] && $from_user_permissions & USER_PERM_PILLORIED || $uid == $message['FROM_UID']) && session::check_perm(USER_PERM_POST_EDIT, $folder_fid) && ($post_edit_time == 0 || time() - $message['CREATED'] < $post_edit_time * HOUR_IN_SECONDS) && forum_get_setting('allow_post_editing', 'Y') || $perm_is_moderator) { if (!$is_poll || $is_poll && isset($message['PID']) && $message['PID'] > 1) { $links_array[] = "<a href=\"ledit.php?webtag={$webtag}&msg={$tid}.{$message['PID']}\" class=\"edit\">" . gettext("Edit") . "</a>"; } } if (sizeof($links_array) > 0) { echo "<div class=\"message_footer_links\">", implode(' ', $links_array), "</div>\n"; } } else { echo "<div class=\"message_footer_links\"></div>\n"; } echo "</div>"; }