require_once 'database.inc.php';
$limit = $Page->place['n'] ?? 50;
-$cols = 'm.*, i.subject, i.closed';
+$cols = 'm.*, i.subject, i.updated, i.closed';
$sql = "SELECT $cols FROM messages m JOIN issues i ON i.id = issue";
+$sql .= " WHERE message IS NOT NULL";
$sql .= " ORDER BY m.created DESC LIMIT $limit";
+$sql = "SELECT * FROM ($sql) x ORDER BY updated DESC, created, id"; # grouped issues
$query = $Db->query($sql);
-print '<ul class="replies">';
+print '<dl class="replies">';
+$group = NULL;
while ($row = $query->fetch()) {
$rowuser = new User("profile/{$row->author}");
- print '<li>';
+ if ($group !== $row->issue) {
+ $group = $row->issue;
+ print '<dt>';
+ printf('<a href="/%s">%s</a>', $row->page, $row->subject);
+ if ($row->closed) {
+ print ' <em>(opgelost)</em>';
+ }
+ print '</dt>';
+ }
+ print '<dd>';
printf('<strong>%s</strong> <small class="date">%s</small>',
$rowuser->html, showdate(preg_split('/\D/', $row->created))
);
- printf("\n\t".'<a href="/%s">%s</a>', $row->page, $row->subject);
- if ($row->closed) {
- print ' <em>(opgelost)</em>';
- }
printf("\n\t<blockquote>%s</blockquote>", $row->message);
- print "</li>\n";
+ print "</dd>\n";
}
-print "</ul>\n";
+print "</dl>\n";