]> git.mxchange.org Git - friendica.git/blobdiff - include/Contact.php
fix some method names (camelcase) in Probe.php and Lock.php
[friendica.git] / include / Contact.php
index a1597cf304bbd1cc9e1fb527fb6c0e09be5b3388..feeb040acc909246094dca2793a6a4f0e5608403 100644 (file)
@@ -567,26 +567,27 @@ function get_contact($url, $uid = 0, $no_update = false) {
                // Get data from the gcontact table
                $gcontacts = dba::select('gcontact', array('name', 'nick', 'url', 'photo', 'addr', 'alias', 'network'),
                                                array('nurl' => normalise_link($url)), array('limit' => 1));
-               if (!$gcontacts) {
+               if (!dbm::is_result($gcontacts)) {
                        return 0;
                }
 
-               $data = $gcontacts;
+               $data = array_merge($data, $gcontacts);
        }
 
        $url = $data["url"];
-
        if (!$contact_id) {
                dba::insert('contact', array('uid' => $uid, 'created' => datetime_convert(), 'url' => $data["url"],
                                        'nurl' => normalise_link($data["url"]), 'addr' => $data["addr"],
                                        'alias' => $data["alias"], 'notify' => $data["notify"], 'poll' => $data["poll"],
                                        'name' => $data["name"], 'nick' => $data["nick"], 'photo' => $data["photo"],
+                                       'keywords' => $data["keywords"], 'location' => $data["location"], 'about' => $data["about"],
                                        'network' => $data["network"], 'pubkey' => $data["pubkey"],
                                        'rel' => CONTACT_IS_SHARING, 'priority' => $data["priority"],
-                                       'batch' => $data["batch"], 'request' => $data["request"], 'confirm' => $data["confirm"],
-                                       'poco' => $data["poco"], 'name-date' => datetime_convert(),
-                                       'uri-date' => datetime_convert(), 'avatar-date' => datetime_convert(),
-                                       'writable' => 1, 'blocked' => 0, 'readonly' => 0, 'pending' => 0));
+                                       'batch' => $data["batch"], 'request' => $data["request"],
+                                       'confirm' => $data["confirm"], 'poco' => $data["poco"],
+                                       'name-date' => datetime_convert(), 'uri-date' => datetime_convert(),
+                                       'avatar-date' => datetime_convert(), 'writable' => 1, 'blocked' => 0,
+                                       'readonly' => 0, 'pending' => 0));
 
                $contacts = q("SELECT `id` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d ORDER BY `id` LIMIT 2",
                                dbesc(normalise_link($data["url"])),
@@ -601,6 +602,16 @@ function get_contact($url, $uid = 0, $no_update = false) {
                $gcontact = dba::select('gcontact', array('location', 'about', 'keywords', 'gender'),
                                        array('nurl' => normalise_link($data["url"])), array('limit' => 1));
                if (dbm::is_result($gcontact)) {
+                       // Only use the information when the probing hadn't fetched these values
+                       if ($data['keywords'] != '') {
+                               unset($gcontact['keywords']);
+                       }
+                       if ($data['location'] != '') {
+                               unset($gcontact['location']);
+                       }
+                       if ($data['about'] != '') {
+                               unset($gcontact['about']);
+                       }
                        dba::update('contact', $gcontact, array('id' => $contact_id));
                }
 
@@ -614,7 +625,7 @@ function get_contact($url, $uid = 0, $no_update = false) {
 
        update_contact_avatar($data["photo"], $uid, $contact_id);
 
-       $contact = dba::select('contact', array('addr', 'alias', 'name', 'nick', 'avatar-date'),
+       $contact = dba::select('contact', array('addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date'),
                                array('id' => $contact_id), array('limit' => 1));
 
        // This condition should always be true
@@ -627,6 +638,16 @@ function get_contact($url, $uid = 0, $no_update = false) {
                        'name' => $data['name'],
                        'nick' => $data['nick']);
 
+       if ($data['keywords'] != '') {
+               $updated['keywords'] = $data['keywords'];
+       }
+       if ($data['location'] != '') {
+               $updated['location'] = $data['location'];
+       }
+       if ($data['about'] != '') {
+               $updated['about'] = $data['about'];
+       }
+
        if (($data["addr"] != $contact["addr"]) || ($data["alias"] != $contact["alias"])) {
                $updated['uri-date'] = datetime_convert();
        }