issue/activity: only concatenate messages after images
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 27 Apr 2021 19:51:34 +0000 (21:51 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Tue, 27 Apr 2021 19:54:36 +0000 (21:54 +0200)
Fix cascading floats in mixed threads.

widget/issue/activity.php

index 23b95c6b9890d050c5bd282711d724df289e5ff5..371f11a665216d744b6526918b1363fadd2d05a1 100644 (file)
@@ -11,7 +11,7 @@ $query = $Db->query($sql);
 
 $msgformat = [
        "{(?=</p>\n).+}s" => ' <small class="footer">(Meer op de site)</small>',
-       '{(.*)(<p><img [^>]+></p>)\s*}' => "$2\n$1",
+       '{(.*)(<p><img [^>]+></p>)\s*}s' => "$2\n$1",
        '{(?<=<img src=")(?=/)}' => '/thumb/300x',
 ];
 
@@ -19,7 +19,8 @@ print '<dl class="replies">';
 
 $prev = NULL;
 while ($row = $query->fetch()) {
-       if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author) {
+       if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author
+       or !preg_match('/\A<p><img/', $prev->message)) {
                print '<dt>';
                if (!$prev or $prev->issue !== $row->issue) {
                        printf('<a href="/%s">%s</a>', $row->page, $row->subject);