X-Git-Url: http://git.shiar.net/minimedit.git/blobdiff_plain/1e6e0732eb889ea7f8ca17ba467bf2a9a2ff5cbd..b130f5a583949b90a36df32be8ce337959759578:/widget/issue/activity.php?ds=inline diff --git a/widget/issue/activity.php b/widget/issue/activity.php index cd99e48..a153f87 100644 --- a/widget/issue/activity.php +++ b/widget/issue/activity.php @@ -7,29 +7,51 @@ $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); +$rows = $query->fetchall(); + +$msgformat = [ + "{(?=
\n).+}s" => ' (Meer op de site)', + '{(.*)(]+>
)\s*}s' => "$2\n$1", + '{(?<='; -$group = NULL; -while ($row = $query->fetch()) { - $rowuser = new User("profile/{$row->author}"); - if ($group !== $row->issue) { - $group = $row->issue; +$prev = NULL; +foreach ($rows as $i => $row) { + $next = $rows[$i + 1] ?? NULL; + + if ($next and $next->issue === $row->issue + and preg_match('/\A(?:]*><\/p>)+\z/', $row->message)) { + # postpone related image to the following message + $next->message = $row->message . $next->message; + continue; + } + + if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author + or !preg_match('/\A
message)) { print '
%s", $row->message); - print "