]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Contact.php
Corrected variable name
[friendica.git] / src / Model / Contact.php
index 0e542316dbabbd0d1890fbda2339af5f6142d555..becc80c0c3c6e09e557e77778aaf37cc59882b80 100644 (file)
@@ -1142,7 +1142,7 @@ class Contact
 
                // Fetch contact data from the contact table for the given user
                $r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
-                       `keywords`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`, `rel`, `pending`
+                       `keywords`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self`, `rel`, `pending`,`baseurl`
                        FROM `contact` WHERE `addr` = '%s' AND `uid` = %d AND NOT `deleted`",
                        DBA::escape($addr),
                        intval($uid)
@@ -1150,7 +1150,7 @@ class Contact
                // Fetch the data from the contact table with "uid=0" (which is filled automatically)
                if (!DBA::isResult($r)) {
                        $r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
-                               `keywords`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`, `rel`, `pending`
+                               `keywords`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`, `rel`, `pending`, `baseurl`
                                FROM `contact` WHERE `addr` = '%s' AND `uid` = 0 AND NOT `deleted`",
                                DBA::escape($addr)
                        );
@@ -1159,7 +1159,7 @@ class Contact
                // Fetch the data from the gcontact table
                if (!DBA::isResult($r)) {
                        $r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
-                               `keywords`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`, 2 AS `rel`, 0 AS `pending`
+                               `keywords`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`, 2 AS `rel`, 0 AS `pending`, `server_url` AS `baseurl`
                                FROM `gcontact` WHERE `addr` = '%s'",
                                DBA::escape($addr)
                        );
@@ -1235,7 +1235,7 @@ class Contact
                }
 
                if (($contact['network'] == Protocol::DFRN) && !$contact['self'] && empty($contact['pending'])) {
-                       $poke_link = DI::baseUrl() . '/poke/?c=' . $contact['id'];
+                       $poke_link = 'contact/' . $contact['id'] . '/poke';
                }
 
                $contact_url = DI::baseUrl() . '/contact/' . $contact['id'];
@@ -1621,6 +1621,9 @@ class Contact
                                // Update the gcontact entry
                                if ($uid == 0) {
                                        GContact::updateFromPublicContactID($contact_id);
+                                       if (($data['network'] == Protocol::ACTIVITYPUB) && in_array(DI::config()->get('system', 'gcontact_discovery'), [GContact::DISCOVERY_DIRECT, GContact::DISCOVERY_RECURSIVE])) {
+                                               GContact::discoverFollowers($data['url']);
+                                       }
                                }
                        }
                } else {
@@ -1911,19 +1914,24 @@ class Contact
         * @param int    $cid    Contact id
         * @param bool   $force  force picture update
         *
-        * @return array Returns array of the different avatar sizes
+        * @return void
         * @throws HTTPException\InternalServerErrorException
+        * @throws HTTPException\NotFoundException
         * @throws \ImagickException
         */
        public static function updateAvatar($avatar, $uid, $cid, $force = false)
        {
                $contact = DBA::selectFirst('contact', ['avatar', 'photo', 'thumb', 'micro', 'nurl'], ['id' => $cid, 'self' => false]);
                if (!DBA::isResult($contact)) {
-                       return false;
-               } else {
-                       $data = [$contact["photo"], $contact["thumb"], $contact["micro"]];
+                       return;
                }
 
+               $data = [
+                       $contact['photo'] ?? '',
+                       $contact['thumb'] ?? '',
+                       $contact['micro'] ?? '',
+               ];
+
                foreach ($data as $image_uri) {
                        $image_rid = Photo::ridFromURI($image_uri);
                        if ($image_rid && !Photo::exists(['resource-id' => $image_rid, 'uid' => $uid])) {
@@ -1946,12 +1954,8 @@ class Contact
                                                DBA::update('contact', $fields, ['id' => $pcontact['id']]);
                                        }
                                }
-
-                               return $photos;
                        }
                }
-
-               return $data;
        }
 
        /**
@@ -2053,6 +2057,7 @@ class Contact
 
                        Worker::add(PRIORITY_HIGH, 'MergeContact', $first, $duplicate['id'], $uid);
                }
+               DBA::close($duplicates);
                Logger::info('Duplicates handled', ['uid' => $uid, 'nurl' => $nurl]);
                return true;
        }
@@ -2728,6 +2733,7 @@ class Contact
                                );
                        }
                }
+               DBA::close($contacts);
        }
 
        /**