From 2d99e86b12ec004411c1443ec7cf2eb1e0293e74 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 14 Aug 2017 20:17:17 +0000 Subject: [PATCH] Bugfix for PR 3630: "get_contact_details_by_url" not always returned a value --- include/Contact.php | 9 +++++---- mod/hovercard.php | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/Contact.php b/include/Contact.php index 00c25df83..c7b512cea 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -210,23 +210,24 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) { `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self` FROM `contact` WHERE `nurl` = ? AND `uid` = ?", normalise_link($url), $uid); + $r = dba::inArray($s); // Fetch the data from the contact table with "uid=0" (which is filled automatically) - if (!dbm::is_result($s)) + if (!dbm::is_result($r)) $s = dba::p("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`, `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self` FROM `contact` WHERE `nurl` = ? AND `uid` = 0", normalise_link($url)); + $r = dba::inArray($s); // Fetch the data from the gcontact table - if (!dbm::is_result($s)) + if (!dbm::is_result($r)) $s = dba::p("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`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self` FROM `gcontact` WHERE `nurl` = ?", normalise_link($url)); - if (dbm::is_result($s)) { - $r = dba::inArray($s); + if (dbm::is_result($r)) { // If there is more than one entry we filter out the connector networks if (count($r) > 1) { foreach ($r AS $id => $result) { diff --git a/mod/hovercard.php b/mod/hovercard.php index 5c9ef61fc..83306aa11 100644 --- a/mod/hovercard.php +++ b/mod/hovercard.php @@ -39,7 +39,7 @@ function hovercard_content() { // If a contact is connected the url is internally changed to "redir/CID". We need the pure url to search for // the contact. So we strip out the contact id from the internal url and look in the contact table for // the real url (nurl) - if(local_user() && strpos($profileurl, "redir/") === 0) { + if (local_user() && strpos($profileurl, "redir/") === 0) { $cid = intval(substr($profileurl, 6)); $r = dba::select('contact', array('nurl', 'self'), array('id' => $cid), array('limit' => 1)); $profileurl = ($r["nurl"] ? $r["nurl"] : "");