]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Contact.php
New function for contact suggestions
[friendica.git] / src / Model / Contact.php
index 81b05559f7a5b1273e345f54ae85c0bb457db532..6fde8123a1b21c049d336851718e82506de655a2 100644 (file)
@@ -1273,7 +1273,7 @@ class Contact
                }
 
                if (empty($contact["network"]) || in_array($contact["network"], Protocol::FEDERATED)) {
-                       $sql = "(`item`.`uid` = 0 OR (`item`.`uid` = ? AND NOT `item`.`global`))";
+                       $sql = "`item`.`uid` IN (0, ?)";
                } else {
                        $sql = "`item`.`uid` = ?";
                }
@@ -1281,8 +1281,8 @@ class Contact
                $contact_field = ((($contact["contact-type"] == self::TYPE_COMMUNITY) || ($contact['network'] == Protocol::MAIL)) ? 'owner-id' : 'author-id');
 
                if ($thread_mode) {
-                       $condition = ["`$contact_field` = ? AND (`gravity` = ? OR (`gravity` = ? AND `vid` = ?)) AND " . $sql,
-                               $cid, GRAVITY_PARENT, GRAVITY_ACTIVITY, Verb::getID(Activity::ANNOUNCE), local_user()];
+                       $condition = ["(`$contact_field` = ? OR (`causer-id` = ? AND `post-type` = ?)) AND `gravity` = ? AND " . $sql,
+                               $cid, $cid, Item::PT_ANNOUNCEMENT, GRAVITY_PARENT, local_user()];
                } else {
                        $condition = ["`$contact_field` = ? AND `gravity` IN (?, ?) AND " . $sql,
                                $cid, GRAVITY_PARENT, GRAVITY_COMMENT, local_user()];
@@ -1298,7 +1298,7 @@ class Contact
 
                $pager = new Pager(DI::l10n(), DI::args()->getQueryString(), $itemsPerPage);
 
-               $params = ['order' => ['received' => true],
+               $params = ['order' => ['received' => true], 'group_by' => ['uri-id'],
                        'limit' => [$pager->getStart(), $pager->getItemsPerPage()]];
 
                if ($thread_mode) {