} #$recent = $db->get_results( "SELECT * FROM support_threads $where ORDER BY dt DESC LIMIT $offset, 20" ); // this query is uuugly but it works - it's called a group-wise maximum query. // it finds the threads with the highest message_ids (i.e. the threads that have most recently been replied to) $query = "FROM {$db->threads} INNER JOIN {$db->messages} ON {$db->messages}.thread_id={$db->threads}.thread_id {$where} AND {$db->messages}.message_id=(SELECT MAX(m2.message_id) FROM {$db->messages} m2 WHERE m2.thread_id={$db->threads}.thread_id) ORDER BY {$db->messages}.dt DESC"; $recent = $db->get_results("SELECT *, {$db->threads}.email as t_email {$query} LIMIT {$offset}, 20"); if (!empty($db->last_error)) { var_dump($db->last_error, $db->last_query); } $i = 0; $total = $db->get_var("SELECT COUNT(*) {$query}"); foreach ((array) $recent as $t) { $class = $i % 2 ? ' class="alt"' : ''; $excerpt = ''; $parts = mime_split($t->content); if ($part = find_first_part($parts)) { $excerpt = substr(message_meat($part->content), 0, 300); } echo "<tr {$class} id='tr{$t->thread_id}'>\r\n\t<td><input type='checkbox' name='thread_ids[]' value='{$t->thread_id}' class='mcheck' id='mcheck{$t->thread_id}' /></td>\r\n\t<td><a href='index.php?email={$t->email}'>{$t->t_email}</a></td><td><a title='" . htmlspecialchars($excerpt, ENT_QUOTES) . "' href='thread.php?t={$t->thread_id}&replies={$t->messages}'>" . htmlspecialchars($t->subject ? mime_header_decode($t->subject) : '-') . "</a></td>\r\n\t<td>" . thread_tags($t->thread_id) . "</td>\r\n\t<td>" . short_time_diff($t->dt) . "</td>\r\n\t<td>{$t->messages}</td>\r\n\t</tr>"; ++$i; } ?> <tr> <td colspan="2"> <label>With checked:</label> <input type="submit" name="status-close" value="Close" class="enablewhenselected" /> </td> <td colspan="3" align="right"> <?php $page_links = paginate_links(array('base' => add_query_arg('apage', '%#%'), 'total' => ceil($total / 20), 'current' => $page));
$permalink = add_query_arg('message', $m->message_id) . '#m' . $m->message_id; $plinked = @$_GET['message'] == $m->message_id ? ' highlight' : ''; echo "\r\n<div class='message{$plinked} {$m->message_type} n{$i} n-{$in}' id='m{$m->message_id}'>\r\n<p class='avatar message-toggle'>{$avatar}</p>\r\n<p class='wrote message-toggle'>{$staff_reply}<a href='index.php?email={$m->email}' class='email'>{$m->email}</a> wrote on <a href='{$permalink}'>{$m->dt}</a>: <span class='meat'>" . htmlspecialchars($meat) . " …</span></p>\r\n<div class='mainpart'>\r\n<p class='content' id='c{$m->message_id}'>{$html_message}</p>"; if ($m->message_type == 'support') { echo "<p class='action'><input type='button' class='inlinereply' value='Reply' name='ir{$m->message_id}' /></p>"; } ?> <form action="thread-reply.php" method="post" class="inlinereplyform" style="display: none;" id="<?php echo "ir{$m->message_id}"; ?> "> <p> <?php if ($parts = mime_split($m->content)) { $part = find_first_part($parts, 'text/plain'); $reply_message = $part->content; } if (!$reply_message) { $reply_message = trim($m->content); } $reply_message = htmlspecialchars($reply_message); $reply_message = preg_replace("|(-- \n.*)\$|s", '', $reply_message); // strip the sig $reply_message = wordwrap($reply_message, 74, "\n"); $reply_message = trim($reply_message); $reply_message = preg_replace("/(\\A|\n)/", "\$1> ", $reply_message); $reply_message = $reply_message . "\n\n"; ?> <select class="predefined_message"> <option value="">Predefined Reply</option>