]> git.mxchange.org Git - friendica.git/commitdiff
Separate loop to fetch thread parents
authorMichael <heluecht@pirati.ca>
Sat, 30 Apr 2022 06:19:18 +0000 (06:19 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 30 Apr 2022 06:19:18 +0000 (06:19 +0000)
src/Content/Conversation.php

index 48695b2193800b44152e705312f87eb6e0b26fdb..9f93d0efad8d56c9fa83becd7309b97894a7dcf8 100644 (file)
@@ -930,8 +930,6 @@ class Conversation
                        $max_comments = $this->config->get('system', 'max_display_comments', 1000);
                }
 
-               $params = ['order' => ['uri-id' => true, 'uid' => true]];
-
                $activities      = [];
                $uriids          = [];
                $commentcounter  = [];
@@ -965,10 +963,21 @@ class Conversation
                $condition = DBA::mergeConditions($condition,
                        ["`uid` IN (0, ?) AND (`vid` != ? OR `vid` IS NULL)", $uid, Verb::getID(Activity::FOLLOW)]);
 
+               $params = ['order' => ['uri-id' => false, 'uid' => true]];
+               $thread_parents = Post::select(['uri-id', 'causer-id'], $condition, $params);
+
+               $thr_parent = [];
+
+               while ($row = Post::fetch($thread_parents)) {
+                       $thr_parent[$row['uri-id']] = $row;
+               }
+               DBA::close($thread_parents);
+
+               $params = ['order' => ['uri-id' => true, 'uid' => true]];
+
                $thread_items = Post::selectForUser($uid, array_merge(ItemModel::DISPLAY_FIELDLIST, ['featured', 'contact-uid', 'gravity', 'post-type', 'post-reason']), $condition, $params);
 
                $items = [];
-               $thr_parent = [];
 
                while ($row = Post::fetch($thread_items)) {
                        if (!empty($items[$row['uri-id']]) && ($row['uid'] == 0)) {
@@ -984,11 +993,7 @@ class Conversation
                                }
                        }
 
-                       if (empty($thr_parent[$row['thr-parent-id']])) {
-                               $thr_parent[$row['thr-parent-id']] = Post::selectFirst(['causer-id'], ['uri-id' => $row['thr-parent-id'], 'uid' => $row['uid']]);
-                       }
-
-                       $items[$row['uri-id']] = $this->addRowInformation($row, $activities[$row['uri-id']] ?? [], $thr_parent[$row['thr-parent-id']]);
+                       $items[$row['uri-id']] = $this->addRowInformation($row, $activities[$row['uri-id']] ?? [], $thr_parent[$row['thr-parent-id']] ?? []);
                }
 
                DBA::close($thread_items);