mirror of
https://github.com/WhatCD/Gazelle.git
synced 2024-12-13 10:56:26 +00:00
184 lines
6.1 KiB
PHP
184 lines
6.1 KiB
PHP
<?php
|
|
|
|
|
|
$UserID = $LoggedUser['ID'];
|
|
|
|
|
|
if (empty($_GET['action'])) {
|
|
$Section = 'inbox';
|
|
} else {
|
|
$Section = $_GET['action']; // either 'inbox' or 'sentbox'
|
|
}
|
|
if (!in_array($Section, array('inbox', 'sentbox'))) {
|
|
error(404);
|
|
}
|
|
|
|
list($Page, $Limit) = Format::page_limit(MESSAGES_PER_PAGE);
|
|
|
|
View::show_header('Inbox');
|
|
?>
|
|
<div class="thin">
|
|
<h2><?=(($Section == 'sentbox') ? 'Sentbox' : 'Inbox')?></h2>
|
|
<div class="linkbox">
|
|
<?
|
|
|
|
if ($Section == 'inbox') { ?>
|
|
<a href="inbox.php?action=sentbox" class="brackets">Sentbox</a>
|
|
<? } elseif ($Section == 'sentbox') { ?>
|
|
<a href="inbox.php" class="brackets">Inbox</a>
|
|
<? }
|
|
|
|
?>
|
|
<br /><br />
|
|
<?
|
|
|
|
$Sort = (empty($_GET['sort']) || $_GET['sort'] != 'unread' ? 'Date DESC' : "cu.Unread = '1' DESC, DATE DESC");
|
|
|
|
$sql = "
|
|
SELECT
|
|
SQL_CALC_FOUND_ROWS
|
|
c.ID,
|
|
c.Subject,
|
|
cu.Unread,
|
|
cu.Sticky,
|
|
cu.ForwardedTo,
|
|
cu2.UserID,";
|
|
$sql .= ($Section == 'sentbox')? ' cu.SentDate ' : ' cu.ReceivedDate ';
|
|
$sql .= "AS Date
|
|
FROM pm_conversations AS c
|
|
LEFT JOIN pm_conversations_users AS cu ON cu.ConvID=c.ID AND cu.UserID='$UserID'
|
|
LEFT JOIN pm_conversations_users AS cu2 ON cu2.ConvID=c.ID AND cu2.UserID!='$UserID' AND cu2.ForwardedTo=0
|
|
LEFT JOIN users_main AS um ON um.ID=cu2.UserID";
|
|
|
|
if (!empty($_GET['search']) && $_GET['searchtype'] == "message") {
|
|
$sql .= " JOIN pm_messages AS m ON c.ID=m.ConvID";
|
|
}
|
|
$sql .= " WHERE ";
|
|
if (!empty($_GET['search'])) {
|
|
$Search = db_string($_GET['search']);
|
|
if ($_GET['searchtype'] == "user") {
|
|
$sql .= "um.Username LIKE '".$Search."' AND ";
|
|
} elseif ($_GET['searchtype'] == "subject") {
|
|
$Words = explode(' ', $Search);
|
|
$sql .= "c.Subject LIKE '%".implode("%' AND c.Subject LIKE '%", $Words)."%' AND ";
|
|
} elseif ($_GET['searchtype'] == "message") {
|
|
$Words = explode(' ', $Search);
|
|
$sql .= "m.Body LIKE '%".implode("%' AND m.Body LIKE '%", $Words)."%' AND ";
|
|
}
|
|
}
|
|
$sql .= ($Section == 'sentbox')? ' cu.InSentbox' : ' cu.InInbox';
|
|
$sql .="='1'";
|
|
|
|
$sql .=" GROUP BY c.ID
|
|
ORDER BY cu.Sticky, ".$Sort." LIMIT $Limit";
|
|
$Results = $DB->query($sql);
|
|
$DB->query('SELECT FOUND_ROWS()');
|
|
list($NumResults) = $DB->next_record();
|
|
$DB->set_query_id($Results);
|
|
$Count = $DB->record_count();
|
|
|
|
$CurURL = Format::get_url(array('sort'));
|
|
if (empty($CurURL)) {
|
|
$CurURL = 'inbox.php?';
|
|
} else {
|
|
$CurURL = "inbox.php?$CurURL&";
|
|
}
|
|
|
|
$Pages = Format::get_pages($Page, $NumResults, MESSAGES_PER_PAGE, 9);
|
|
echo $Pages;
|
|
?>
|
|
</div>
|
|
|
|
<div class="box pad">
|
|
<? if ($Count == 0 && empty($_GET['search'])) { ?>
|
|
<h2>Your <?= ($Section == 'sentbox') ? 'sentbox' : 'inbox' ?> is currently empty</h2>
|
|
<? } else { ?>
|
|
<form class="search_form" name="<?=(($Section == 'sentbox') ? 'sentbox' : 'inbox')?>" action="inbox.php" method="get" id="searchbox">
|
|
<div>
|
|
<input type="hidden" name="action" value="<?=$Section?>" />
|
|
<input type="radio" name="searchtype" value="user"<?=(empty($_GET['searchtype']) || $_GET['searchtype'] == 'user' ? ' checked="checked"' : '')?> /> User
|
|
<input type="radio" name="searchtype" value="subject"<?=(!empty($_GET['searchtype']) && $_GET['searchtype'] == 'subject' ? ' checked="checked"' : '')?> /> Subject
|
|
<input type="radio" name="searchtype" value="message"<?=(!empty($_GET['searchtype']) && $_GET['searchtype'] == 'message' ? ' checked="checked"' : '')?> /> Message
|
|
<span style="float: right;">
|
|
<? if (empty($_GET['sort']) || $_GET['sort'] != "unread") { ?>
|
|
<a href="<?=$CurURL?>sort=unread" class="brackets">List unread first</a>
|
|
<? } else { ?>
|
|
<a href="<?=$CurURL?>" class="brackets">List latest first</a>
|
|
<? } ?>
|
|
</span>
|
|
<br />
|
|
<input type="text" name="search" value="<?=(!empty($_GET['search']) ? display_str($_GET['search']) : 'Search '.($Section == 'sentbox' ? 'Sentbox' : 'Inbox'))?>" style="width: 98%;"
|
|
onfocus="if (this.value == 'Search <?= ($Section == 'sentbox') ? 'Sentbox' : 'Inbox' ?>') this.value='';"
|
|
onblur="if (this.value == '') this.value='Search <?= ($Section == 'sentbox') ? 'Sentbox' : 'Inbox' ?>';"
|
|
/>
|
|
</div>
|
|
</form>
|
|
<form class="manage_form" name="messages" action="inbox.php" method="post" id="messageform">
|
|
<input type="hidden" name="action" value="masschange" />
|
|
<input type="hidden" name="auth" value="<?=$LoggedUser['AuthKey']?>" />
|
|
<input type="submit" name="read" value="Mark as read" />
|
|
<input type="submit" name="unread" value="Mark as unread" />
|
|
<input type="submit" name="delete" value="Delete message(s)" />
|
|
|
|
<table class="message_table checkboxes">
|
|
<tr class="colhead">
|
|
<td width="10"><input type="checkbox" onclick="toggleChecks('messageform',this)" /></td>
|
|
<td width="50%">Subject</td>
|
|
<td><?=(($Section == 'sentbox') ? 'Receiver' : 'Sender')?></td>
|
|
<td>Date</td>
|
|
<? if (check_perms('users_mod')) { ?>
|
|
<td>Forwarded to</td>
|
|
<? } ?>
|
|
</tr>
|
|
<?
|
|
if ($Count == 0) { ?>
|
|
<tr class="a">
|
|
<td colspan="5">No results.</td>
|
|
</tr>
|
|
<? } else {
|
|
$Row = 'a';
|
|
while (list($ConvID, $Subject, $Unread, $Sticky, $ForwardedID, $SenderID, $Date) = $DB->next_record()) {
|
|
if ($Unread === '1') {
|
|
$RowClass = 'unreadpm';
|
|
} else {
|
|
$Row = ($Row === 'a') ? 'b' : 'a';
|
|
$RowClass = 'row'.$Row;
|
|
}
|
|
?>
|
|
<tr class="<?=$RowClass?>">
|
|
<td class="center"><input type="checkbox" name="messages[]=" value="<?=$ConvID?>" /></td>
|
|
<td>
|
|
<? if ($Unread) {
|
|
echo '<strong>';
|
|
}
|
|
if ($Sticky) {
|
|
echo 'Sticky: ';
|
|
}
|
|
?>
|
|
<a href="inbox.php?action=viewconv&id=<?=$ConvID?>"><?=$Subject?></a>
|
|
<?
|
|
if ($Unread) {
|
|
echo '</strong>';
|
|
} ?>
|
|
</td>
|
|
<td><?=Users::format_username($SenderID, true, true, true, true)?></td>
|
|
<td><?=time_diff($Date)?></td>
|
|
<? if (check_perms('users_mod')) { ?>
|
|
<td><?=(($ForwardedID && $ForwardedID != $LoggedUser['ID']) ? Users::format_username($ForwardedID, false, false, false) : '')?></td>
|
|
<? } ?>
|
|
</tr>
|
|
<? }
|
|
} ?>
|
|
</table>
|
|
<input type="submit" name="read" value="Mark as read" />
|
|
<input type="submit" name="unread" value="Mark as unread" />
|
|
<input type="submit" name="delete" value="Delete message(s)" />
|
|
</form>
|
|
<? } ?>
|
|
</div>
|
|
<div class="linkbox"><?=$Pages?></div>
|
|
</div>
|
|
<?
|
|
View::show_footer();
|
|
?>
|