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(); forum_check_webtag_available($webtag); if (!isset($_SESSION['UID']) || !is_numeric($_SESSION['UID'])) { 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 ($_SESSION['UID'] != $message['FROM_UID']) { if ($from_user_permissions & USER_PERM_WORMED && !$perm_is_moderator) { light_message_display_deleted($tid, $message['PID']); return; } } if (!$is_preview && !isset($message['APPROVED'])) { light_message_display_approval_req($tid, $message['PID']); return; } if (isset($message['RELATIONSHIP']) && $message['RELATIONSHIP'] & USER_IGNORED_COMPLETELY) { light_message_display_deleted($tid, $message['PID']); return; } if (isset($message['RECIPIENTS']) && sizeof($message['RECIPIENTS']) == 1) { $recipient = array_slice(array_values($message['RECIPIENTS']), 0, 1); if (isset($recipient['RELATIONSHIP']) && $recipient['RELATIONSHIP'] & USER_IGNORED_COMPLETELY) { light_message_display_deleted($tid, $message['PID']); return; } } if (!$is_preview && isset($message['MOVED_TID']) && isset($message['MOVED_PID'])) { light_message_display_moved($message); return; } if (isset($_SESSION['IMAGES_TO_LINKS']) && $_SESSION['IMAGES_TO_LINKS'] == 'Y') { $message['CONTENT'] = message_images_to_links($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']}&return_msg={$tid}.{$first_msg}\" class=\"message_full_view\">" . gettext("View full message") . ".</a>"; } if ($in_list && isset($message['PID'])) { echo "<a name=\"a{$tid}_{$message['PID']}\"></a>"; } if ($in_list && isset($message['PID'])) { echo "<div class=\"message\" id=\"message_{$tid}_{$message['PID']}\">\n"; } else { echo "<div class=\"message\">\n"; } echo "<div class=\"message_header\">\n"; echo "<div class=\"message_from\">\n"; echo gettext("From"), ": ", word_filter_add_ob_tags(format_user_name($message['FROM_LOGON'], $message['FROM_NICKNAME']), true); if (isset($message['RELATIONSHIP']) && $message['RELATIONSHIP'] & USER_FRIEND) { echo html_style_image('friend', gettext("Friend")); } else { if (isset($message['RELATIONSHIP']) && $message['RELATIONSHIP'] & USER_IGNORED) { echo html_style_image('enemy', gettext("Ignored user")); } } // 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 && isset($message['RELATIONSHIP']) && $message['RELATIONSHIP'] & USER_IGNORED) { $message['RELATIONSHIP'] -= USER_IGNORED; } if (isset($message['RELATIONSHIP']) && $message['RELATIONSHIP'] & USER_IGNORED && $limit_text && $_SESSION['UID'] > 0) { echo "<span class=\"message_ignored\">", gettext("Ignored message"), "</span>\n"; } else { if ($in_list) { if ($from_user_permissions & USER_PERM_WORMED) { echo gettext("Wormed user"); } echo "<span class=\"message_time\">", format_date_time($message['CREATED']), "</span>\n"; } } echo "<div class=\"clearer\"></div>\n"; echo "</div>"; echo "<div class=\"message_to\">", gettext("To"), ": "; if (isset($message['RECIPIENTS']) && sizeof($message['RECIPIENTS']) > 0) { foreach ($message['RECIPIENTS'] as $recipient) { if (isset($recipient['RELATIONSHIP']) && $recipient['RELATIONSHIP'] & USER_IGNORED_COMPLETELY) { continue; } echo word_filter_add_ob_tags(format_user_name($recipient['LOGON'], $recipient['NICKNAME']), true), "\n"; if (isset($recipient['VIEWED']) && $recipient['VIEWED'] > 0) { echo "<span>", html_style_image('post_read', sprintf(gettext("Read: %s"), format_date_time($recipient['VIEWED']))), "</span>\n"; } else { if ($is_preview == false) { echo "<span>", html_style_image('post_unread', gettext("Unread Message")), "</span>\n"; } } } } else { echo 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"; if (!$is_poll || isset($message['PID']) && $message['PID'] > 1) { $message['CONTENT'] = message_apply_formatting($message['CONTENT'], true); } if ($limit_text && mb_strlen(strip_tags($message['CONTENT'])) > intval(forum_get_setting('maximum_post_length', null, 6226))) { $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<p align=\"center\"><a href=\"display.php?webtag={$webtag}&msg={$tid}.{$message['PID']}&return_msg={$tid}.{$first_msg}\" target=\"_self\">" . gettext("View full message") . "</a>"; } $message['CONTENT'] = light_spoiler_enable($message['CONTENT']); if (!$is_poll || $is_poll && isset($message['PID']) && $message['PID'] > 1) { $message['CONTENT'] = word_filter_add_ob_tags($message['CONTENT'], false); } if ($is_preview || !isset($message['RELATIONSHIP']) || !($message['RELATIONSHIP'] & USER_IGNORED)) { if ($in_list && $msg_count > 0) { echo "<div class=\"message_links\">\n"; 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"; } else { echo "<div class=\"message_links\"> </div>\n"; } echo "<div class=\"message_body\">\n"; echo $message['CONTENT']; if (!$is_preview && isset($message['EDITED'])) { 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'])) !== false) { echo "<div class=\"edit_text\">", sprintf(gettext("EDITED: %s by %s"), format_date_time($message['EDITED']), $edit_user), "</div>\n"; } } } if (!$is_preview && isset($message['APPROVED']) && isset($message['APPROVED_BY'])) { if ($message['APPROVED_BY'] != $message['FROM_UID'] && ($approved_user = user_get_logon($message['APPROVED_BY'])) !== false) { echo "<div class=\"edit_text\">", sprintf(gettext("APPROVED: %s by %s"), format_date_time($message['APPROVED']), $approved_user), "</div>\n"; } } echo "</div>\n"; if (isset($message['ATTACHMENTS']) && sizeof($message['ATTACHMENTS']) > 0) { if (($attachments_array = attachments_get($message['FROM_UID'], $message['ATTACHMENTS'])) !== false) { 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)) !== false) { echo "<li>", html_style_image('attach'), $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}&reply_to={$tid}.{$message['PID']}&return_msg={$tid}.{$first_msg}\" class=\"reply\">" . html_style_image('post') . gettext("Reply") . "</a>"; } if ($_SESSION['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']}&return_msg={$tid}.{$first_msg}\" class=\"delete\">" . html_style_image('delete') . gettext("Delete") . "</a>"; } if (!session::check_perm(USER_PERM_PILLORIED, 0) && ($_SESSION['UID'] != $message['FROM_UID'] && $from_user_permissions & USER_PERM_PILLORIED || $_SESSION['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']}&return_msg={$tid}.{$first_msg}\" class=\"edit\">" . html_style_image('edit') . gettext("Edit") . "</a>"; } } if (sizeof($links_array) > 0) { echo "<div class=\"message_footer\">\n"; echo " <div class=\"message_footer_links\">", implode(' ', $links_array), "</div>\n"; echo " <div class=\"message_vote_form\" data-msg=\"{$tid}.{$message['PID']}\">\n"; echo " ", light_message_get_vote_form_html($message), "\n"; echo " </div>\n"; echo "</div>\n"; } } else { echo "<div class=\"message_footer_links\"></div>\n"; } } echo "</div>"; }
list($tid, $pid) = explode('.', $_GET['msg']); if (!isset($_GET['post_rating']) || !in_array($_GET['post_rating'], array(-1, 1))) { header_status(500, 'Internal Server Error'); exit; } $post_rating = $_GET['post_rating']; if (!post_set_user_rating($tid, $pid, $_SESSION['UID'], $post_rating)) { header_status(500, 'Internal Server Error'); exit; } if (!($message = messages_get($tid, $pid, 1))) { header_status(500, 'Internal Server Error'); exit; } if (isset($_GET['mobile']) && $_GET['mobile'] == 'Y') { if (!($content = light_message_get_vote_form_html($message))) { header_status(500, 'Internal Server Error'); exit; } } else { if (!($content = message_get_vote_form_html($message))) { header_status(500, 'Internal Server Error'); exit; } } break; case 'poll_add_question': if (!session::logged_in()) { break; } cache_disable();