X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/0be29a130e7eba18671353565336cbe63296b723..b3561aa61e022b65d5c0601edaf27059ff7f2da4:/widget/issue/activity.php diff --git a/widget/issue/activity.php b/widget/issue/activity.php index f986a53..371f11a 100644 --- a/widget/issue/activity.php +++ b/widget/issue/activity.php @@ -7,31 +7,40 @@ $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); +$msgformat = [ + "{(?=

\n).+}s" => ' (Meer op de site)', + '{(.*)(

]+>

)\s*}s' => "$2\n$1", + '{(?<='; -$group = NULL; +$prev = NULL; while ($row = $query->fetch()) { - if ($group !== $row->issue) { - $group = $row->issue; + if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author + or !preg_match('/\A

message)) { print '

'; - printf('%s', $row->page, $row->subject); - if ($row->closed) { - print ' (opgelost)'; + if (!$prev or $prev->issue !== $row->issue) { + printf('%s', $row->page, $row->subject); + if ($row->closed) { + print ' (opgelost)'; + } + } + print ''; + if ($row->author and $rowuser = new User("profile/{$row->author}")) { + printf('%s ', $rowuser->html); } + printf('%s', + showdate(preg_split('/\D/', $row->created)) + ); + print ""; print '
'; + print '
'; } - print '
'; - if ($row->author and $rowuser = new User("profile/{$row->author}")) { - printf('%s ', $rowuser->html); - } - printf('%s', - showdate(preg_split('/\D/', $row->created)) - ); - printf("\n\t
%s
", $row->message); - print "
\n"; + print preg_replace(array_keys($msgformat), array_values($msgformat), $row->message); + $prev = $row; } print "\n";