|
|
@ -192,72 +192,58 @@ function unmark_for_death($contact) { |
|
|
|
); |
|
|
|
}} |
|
|
|
|
|
|
|
function get_contact_details_by_url($url, $uid = -1) { |
|
|
|
function get_contact_details_by_url($url, $uid = -1, $default = array()) { |
|
|
|
if ($uid == -1) |
|
|
|
$uid = local_user(); |
|
|
|
|
|
|
|
$r = q("SELECT `id` AS `gid`, `url`, `name`, `nick`, `addr`, `photo`, `location`, `about`, `keywords`, `gender`, `community`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", |
|
|
|
dbesc(normalise_link($url))); |
|
|
|
// community, nurl, alias, nsfw, birthday
|
|
|
|
|
|
|
|
if ($r) { |
|
|
|
$profile = $r[0]; |
|
|
|
|
|
|
|
if ((($profile["addr"] == "") OR ($profile["name"] == "")) AND |
|
|
|
in_array($profile["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) |
|
|
|
proc_run('php',"include/update_gcontact.php", $profile["gid"]); |
|
|
|
} |
|
|
|
// Fetch contact data from the contact table for the user and given network
|
|
|
|
$r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`,
|
|
|
|
`keywords`, `gender`, `photo`, `thumb`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `bd`, `bd` AS `birthday`, `self` |
|
|
|
FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `network` IN ('%s', '')",
|
|
|
|
dbesc(normalise_link($url)), intval($uid), dbesc($profile["network"])); |
|
|
|
|
|
|
|
// Fetching further contact data from the contact table
|
|
|
|
$r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `addr`, `location`, `about`, `keywords`, `gender`, `photo`, `thumb`, `addr`, `forum`, `prv`, `bd`, `self` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `network` IN ('%s', '')", |
|
|
|
dbesc(normalise_link($url)), intval($uid), dbesc($profile["network"])); |
|
|
|
// Is the contact present for the user in a different network? (Can happen with OStatus and the "Statusnet" addon)
|
|
|
|
if (!count($r) AND !isset($profile)) |
|
|
|
$r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`,
|
|
|
|
`keywords`, `gender`, `photo`, `thumb`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `bd`, `bd` AS `birthday`, `self` |
|
|
|
FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d",
|
|
|
|
dbesc(normalise_link($url)), intval($uid)); |
|
|
|
|
|
|
|
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
|
|
|
|
if (!count($r) AND !isset($profile)) |
|
|
|
$r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `addr`, `location`, `about`, `keywords`, `gender`, `photo`, `thumb`, `addr`, `forum`, `prv`, `bd`, `self` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d", |
|
|
|
dbesc(normalise_link($url)), intval($uid)); |
|
|
|
$r = q("SELECT `id`, 0 AS `cid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`,
|
|
|
|
`keywords`, `gender`, `photo`, `thumb`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `bd`, `bd` AS `birthday`, 0 AS `self` |
|
|
|
FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0",
|
|
|
|
dbesc(normalise_link($url))); |
|
|
|
|
|
|
|
// Fetch the data from the gcontact table
|
|
|
|
if (!count($r) AND !isset($profile)) |
|
|
|
$r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `addr`, `location`, `about`, `keywords`, `gender`, `photo`, `thumb`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0", |
|
|
|
dbesc(normalise_link($url))); |
|
|
|
|
|
|
|
if ($r) { |
|
|
|
if (!isset($profile["url"]) AND $r[0]["url"]) |
|
|
|
$profile["url"] = $r[0]["url"]; |
|
|
|
if (!isset($profile["name"]) AND $r[0]["name"]) |
|
|
|
$profile["name"] = $r[0]["name"]; |
|
|
|
if (!isset($profile["nick"]) AND $r[0]["nick"]) |
|
|
|
$profile["nick"] = $r[0]["nick"]; |
|
|
|
if (!isset($profile["addr"]) AND $r[0]["addr"]) |
|
|
|
$profile["addr"] = $r[0]["addr"]; |
|
|
|
if ((!isset($profile["photo"]) OR $r[0]["self"]) AND $r[0]["photo"]) |
|
|
|
$profile["photo"] = $r[0]["photo"]; |
|
|
|
if (!isset($profile["location"]) AND $r[0]["location"]) |
|
|
|
$profile["location"] = $r[0]["location"]; |
|
|
|
if (!isset($profile["about"]) AND $r[0]["about"]) |
|
|
|
$profile["about"] = $r[0]["about"]; |
|
|
|
if (!isset($profile["keywords"]) AND $r[0]["keywords"]) |
|
|
|
$profile["keywords"] = $r[0]["keywords"]; |
|
|
|
if (!isset($profile["gender"]) AND $r[0]["gender"]) |
|
|
|
$profile["gender"] = $r[0]["gender"]; |
|
|
|
if (isset($r[0]["forum"]) OR isset($r[0]["prv"])) |
|
|
|
$profile["community"] = ($r[0]["forum"] OR $r[0]["prv"]); |
|
|
|
if (!isset($profile["network"]) AND $r[0]["network"]) |
|
|
|
$profile["network"] = $r[0]["network"]; |
|
|
|
if (!isset($profile["addr"]) AND $r[0]["addr"]) |
|
|
|
$profile["addr"] = $r[0]["addr"]; |
|
|
|
if (!isset($profile["bd"]) AND $r[0]["bd"]) |
|
|
|
$profile["bd"] = $r[0]["bd"]; |
|
|
|
if (isset($r[0]["thumb"])) |
|
|
|
$profile["thumb"] = $r[0]["thumb"]; |
|
|
|
if ($r[0]["uid"] == 0) |
|
|
|
$profile["cid"] = 0; |
|
|
|
else |
|
|
|
$profile["cid"] = $r[0]["id"]; |
|
|
|
} else |
|
|
|
$profile["cid"] = 0; |
|
|
|
$r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`,
|
|
|
|
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `community` AS `forum`, 0 AS `prv`, `community`, `birthday` AS `bd`, `birthday`, 0 AS `self` |
|
|
|
FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1",
|
|
|
|
dbesc(normalise_link($url))); |
|
|
|
|
|
|
|
if ($r) |
|
|
|
$profile = $r[0]; |
|
|
|
else { |
|
|
|
$profile = $default; |
|
|
|
if (!isset($profile["thumb"]) AND isset($profile["photo"])) |
|
|
|
$profile["thumb"] = $profile["photo"]; |
|
|
|
} |
|
|
|
|
|
|
|
if ((($profile["addr"] == "") OR ($profile["name"] == "")) AND ($profile["gid"] != 0) AND |
|
|
|
in_array($profile["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS))) { |
|
|
|
proc_run('php',"include/update_gcontact.php", $profile["gid"]); |
|
|
|
} |
|
|
|
|
|
|
|
// Show contact details of Diaspora contacts only if connected
|
|
|
|
if (($profile["cid"] == 0) AND ($profile["network"] == NETWORK_DIASPORA)) { |
|
|
|
$profile["location"] = ""; |
|
|
|
$profile["about"] = ""; |
|
|
|
$profile["gender"] = ""; |
|
|
|
$profile["birthday"] = "0000-00-00"; |
|
|
|
} |
|
|
|
|
|
|
|
return($profile); |
|
|
|