mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-15 03:46:25 +00:00
112 lines
2.6 KiB
PHP
112 lines
2.6 KiB
PHP
<?
|
|
include(SERVER_ROOT.'/classes/text.class.php');
|
|
$Text = new TEXT;
|
|
|
|
$ConvID = $_GET['id'];
|
|
if (!$ConvID || !is_number($ConvID)) {
|
|
print json_encode(array('status' => 'failure'));
|
|
die();
|
|
}
|
|
|
|
|
|
|
|
$UserID = $LoggedUser['ID'];
|
|
$DB->query("
|
|
SELECT InInbox, InSentbox
|
|
FROM pm_conversations_users
|
|
WHERE UserID='$UserID'
|
|
AND ConvID='$ConvID'");
|
|
if (!$DB->has_results()) {
|
|
print json_encode(array('status' => 'failure'));
|
|
die();
|
|
}
|
|
list($InInbox, $InSentbox) = $DB->next_record();
|
|
|
|
|
|
|
|
|
|
if (!$InInbox && !$InSentbox) {
|
|
print json_encode(array('status' => 'failure'));
|
|
die();
|
|
}
|
|
|
|
// Get information on the conversation
|
|
$DB->query("
|
|
SELECT
|
|
c.Subject,
|
|
cu.Sticky,
|
|
cu.UnRead,
|
|
cu.ForwardedTo,
|
|
um.Username
|
|
FROM pm_conversations AS c
|
|
JOIN pm_conversations_users AS cu ON c.ID=cu.ConvID
|
|
LEFT JOIN users_main AS um ON um.ID=cu.ForwardedTo
|
|
WHERE c.ID='$ConvID'
|
|
AND UserID='$UserID'");
|
|
list($Subject, $Sticky, $UnRead, $ForwardedID, $ForwardedName) = $DB->next_record();
|
|
|
|
$DB->query("
|
|
SELECT um.ID, Username
|
|
FROM pm_messages AS pm
|
|
JOIN users_main AS um ON um.ID=pm.SenderID
|
|
WHERE pm.ConvID='$ConvID'");
|
|
|
|
while (list($PMUserID, $Username) = $DB->next_record()) {
|
|
$PMUserID = (int)$PMUserID;
|
|
$Users[$PMUserID]['UserStr'] = Users::format_username($PMUserID, true, true, true, true);
|
|
$Users[$PMUserID]['Username'] = $Username;
|
|
$UserInfo = Users::user_info($PMUserID);
|
|
$Users[$PMUserID]['Avatar'] = $UserInfo['Avatar'];
|
|
}
|
|
$Users[0]['UserStr'] = 'System'; // in case it's a message from the system
|
|
$Users[0]['Username'] = 'System';
|
|
$Users[0]['Avatar'] = '';
|
|
|
|
|
|
|
|
if ($UnRead == '1') {
|
|
|
|
$DB->query("
|
|
UPDATE pm_conversations_users
|
|
SET UnRead='0'
|
|
WHERE ConvID='$ConvID'
|
|
AND UserID='$UserID'");
|
|
// Clear the caches of the inbox and sentbox
|
|
$Cache->decrement('inbox_new_'.$UserID);
|
|
}
|
|
|
|
// Get messages
|
|
$DB->query("
|
|
SELECT SentDate, SenderID, Body, ID
|
|
FROM pm_messages AS m
|
|
WHERE ConvID='$ConvID'
|
|
ORDER BY ID");
|
|
|
|
$JsonMessages = array();
|
|
while (list($SentDate, $SenderID, $Body, $MessageID) = $DB->next_record()) {
|
|
$JsonMessage = array(
|
|
'messageId' => (int) $MessageID,
|
|
'senderId' => (int) $SenderID,
|
|
'senderName' => $Users[(int)$SenderID]['Username'],
|
|
'sentDate' => $SentDate,
|
|
'avatar' => $Users[(int)$SenderID]['Avatar'],
|
|
'bbBody' => $Body,
|
|
'body' => $Text->full_format($Body)
|
|
);
|
|
$JsonMessages[] = $JsonMessage;
|
|
}
|
|
|
|
print
|
|
json_encode(
|
|
array(
|
|
'status' => 'success',
|
|
'response' => array(
|
|
'convId' => (int) $ConvID,
|
|
'subject' => $Subject.($ForwardedID > 0 ? " (Forwarded to $ForwardedName)" : ''),
|
|
'sticky' => $Sticky == 1,
|
|
'messages' => $JsonMessages
|
|
)
|
|
)
|
|
);
|
|
?>
|