X-Git-Url: http://git.shiar.nl/minimedit.git/blobdiff_plain/95b037f55a21f6bd70c50801f5c6b0a23daee27c..f8527c143033f51fecd929789ef7ad6589c8c2b4:/widget/issue/activity.php diff --git a/widget/issue/activity.php b/widget/issue/activity.php index 23b95c6..df872ae 100644 --- a/widget/issue/activity.php +++ b/widget/issue/activity.php @@ -8,18 +8,29 @@ $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"; $query = $Db->query($sql); +$rows = $query->fetchall(); $msgformat = [ + '{(.*)(

]+>

)\s*}s' => "$2$1", "{(?=

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

]+>

)\s*}' => "$2\n$1", - '{(?<= '/thumb/300x', ]; print '
'; $prev = NULL; -while ($row = $query->fetch()) { - if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author) { +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 '

'; if (!$prev or $prev->issue !== $row->issue) { printf('%s', $row->page, $row->subject); @@ -36,9 +47,10 @@ while ($row = $query->fetch()) { ); print ""; print '
'; - print '
'; } + print '
'; print preg_replace(array_keys($msgformat), array_values($msgformat), $row->message); + print "\n"; $prev = $row; }