X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2FContact.php;h=3799e0b189a98830aec305d5da37d2122f7310f8;hb=6072e17a642deeafffd9eaefdac09063109435ec;hp=db5480f5170d68f3a5742d5bf4b4abe6d938d598;hpb=3b11436b02cf1e6aa080f69d87438d4b079f96a6;p=friendica.git diff --git a/include/Contact.php b/include/Contact.php index db5480f517..3799e0b189 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -132,8 +132,8 @@ function terminate_friendship($user,$self,$contact) { diaspora_unshare($user,$contact); } elseif($contact['network'] === NETWORK_DFRN) { - require_once('include/items.php'); - dfrn_deliver($user,$contact,'placeholder', 1); + require_once('include/dfrn.php'); + dfrn::deliver($user,$contact,'placeholder', 1); } } @@ -144,7 +144,7 @@ function terminate_friendship($user,$self,$contact) { // and we won't waste any more time trying to communicate with them. // This provides for the possibility that their database is temporarily messed // up or some other transient event and that there's a possibility we could recover from it. - + if(! function_exists('mark_for_death')) { function mark_for_death($contact) { @@ -159,14 +159,15 @@ function mark_for_death($contact) { } else { - // TODO: We really should send a notification to the owner after 2-3 weeks - // so they won't be surprised when the contact vanishes and can take - // remedial action if this was a serious mistake or glitch + /// @todo + /// We really should send a notification to the owner after 2-3 weeks + /// so they won't be surprised when the contact vanishes and can take + /// remedial action if this was a serious mistake or glitch $expiry = $contact['term-date'] . ' + 32 days '; if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) { - // relationship is really truly dead. + // relationship is really truly dead. // archive them rather than delete // though if the owner tries to unarchive them we'll start the whole process over again @@ -192,67 +193,61 @@ function unmark_for_death($contact) { }} function get_contact_details_by_url($url, $uid = -1) { - require_once("mod/proxy.php"); - require_once("include/bbcode.php"); - if ($uid == -1) $uid = local_user(); - $r = q("SELECT `url`, `name`, `nick`, `photo`, `location`, `about`, `keywords`, `gender`, `community`, `network` FROM `gcontact` WHERE `nurl` = '%s' LIMIT 1", + $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))); - if ($r) + if ($r) { $profile = $r[0]; - else { - $r = q("SELECT `url`, `name`, `nick`, `avatar` AS `photo`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'", - dbesc(normalise_link($url))); - if (count($r)) { - $profile = $r[0]; - $profile["keywords"] = ""; - $profile["gender"] = ""; - $profile["community"] = false; - $profile["network"] = ""; - } + 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"]); } // Fetching further contact data from the contact table - $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `network` = '%s'", + $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"])); - if (!count($r)) - $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d", + 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)); - if (!count($r)) - $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0", + 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($r[0]["url"]) AND $r[0]["url"]) + if (!isset($profile["url"]) AND $r[0]["url"]) $profile["url"] = $r[0]["url"]; - if (isset($r[0]["name"]) AND $r[0]["name"]) + if (!isset($profile["name"]) AND $r[0]["name"]) $profile["name"] = $r[0]["name"]; - if (isset($r[0]["nick"]) AND $r[0]["nick"] AND ($profile["nick"] == "")) + if (!isset($profile["nick"]) AND $r[0]["nick"]) $profile["nick"] = $r[0]["nick"]; - if (isset($r[0]["photo"]) AND $r[0]["photo"]) + 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($r[0]["location"]) AND $r[0]["location"]) + if (!isset($profile["location"]) AND $r[0]["location"]) $profile["location"] = $r[0]["location"]; - if (isset($r[0]["about"]) AND $r[0]["about"]) + if (!isset($profile["about"]) AND $r[0]["about"]) $profile["about"] = $r[0]["about"]; - if (isset($r[0]["keywords"]) AND $r[0]["keywords"]) + if (!isset($profile["keywords"]) AND $r[0]["keywords"]) $profile["keywords"] = $r[0]["keywords"]; - if (isset($r[0]["gender"]) AND $r[0]["gender"]) + 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($r[0]["network"]) AND $r[0]["network"]) + if (!isset($profile["network"]) AND $r[0]["network"]) $profile["network"] = $r[0]["network"]; - if (isset($r[0]["addr"]) AND $r[0]["addr"]) + if (!isset($profile["addr"]) AND $r[0]["addr"]) $profile["addr"] = $r[0]["addr"]; - if (isset($r[0]["bd"]) AND $r[0]["bd"]) + 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 @@ -260,15 +255,6 @@ function get_contact_details_by_url($url, $uid = -1) { } else $profile["cid"] = 0; - if (isset($profile["photo"])) - $profile["photo"] = proxy_url($profile["photo"], false, PROXY_SIZE_SMALL); - - if (isset($profile["location"])) - $profile["location"] = bbcode($profile["location"]); - - if (isset($profile["about"])) - $profile["about"] = bbcode($profile["about"]); - if (($profile["cid"] == 0) AND ($profile["network"] == NETWORK_DIASPORA)) { $profile["location"] = ""; $profile["about"] = ""; @@ -278,7 +264,7 @@ function get_contact_details_by_url($url, $uid = -1) { } if(! function_exists('contact_photo_menu')){ -function contact_photo_menu($contact) { +function contact_photo_menu($contact, $uid = 0) { $a = get_app(); @@ -290,6 +276,33 @@ function contact_photo_menu($contact) { $contact_drop_link = ""; $poke_link=""; + if ($uid == 0) + $uid = local_user(); + + if ($contact["uid"] != $uid) { + if ($uid == 0) { + $profile_link = zrl($contact['url']); + $menu = Array('profile' => array(t("View Profile"), $profile_link, true)); + + return $menu; + } + + $r = q("SELECT * FROM `contact` WHERE `nurl` = '%s' AND `network` = '%s' AND `uid` = %d", + dbesc($contact["nurl"]), dbesc($contact["network"]), intval($uid)); + if ($r) + return contact_photo_menu($r[0], $uid); + else { + $profile_link = zrl($contact['url']); + $connlnk = 'follow/?url='.$contact['url']; + $menu = Array( + 'profile' => array(t("View Profile"), $profile_link, true), + 'follow' => array(t("Connect/Follow"), $connlnk, true) + ); + + return $menu; + } + } + $sparkle = false; if($contact['network'] === NETWORK_DFRN) { $sparkle = true; @@ -314,19 +327,23 @@ function contact_photo_menu($contact) { $poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id']; $contact_url = $a->get_baseurl() . '/contacts/' . $contact['id']; - $posts_link = $a->get_baseurl() . '/network/0?nets=all&cid=' . $contact['id']; + $posts_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/posts'; $contact_drop_link = $a->get_baseurl() . "/contacts/" . $contact['id'] . '/drop?confirm=1'; + /** + * menu array: + * "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ] + */ $menu = Array( - 'status' => array(t("View Status"), $status_link), - 'profile' => array(t("View Profile"), $profile_link), - 'photos' => array(t("View Photos"), $photos_link), - 'network' => array(t("Network Posts"), $posts_link), - 'edit' => array(t("Edit Contact"), $contact_url), - 'drop' => array(t("Drop Contact"), $contact_drop_link), - 'pm' => array(t("Send PM"), $pm_url), - 'poke' => array(t("Poke"), $poke_link), + 'status' => array(t("View Status"), $status_link, true), + 'profile' => array(t("View Profile"), $profile_link, true), + 'photos' => array(t("View Photos"), $photos_link,true), + 'network' => array(t("Network Posts"), $posts_link,false), + 'edit' => array(t("Edit Contact"), $contact_url, false), + 'drop' => array(t("Drop Contact"), $contact_drop_link, false), + 'pm' => array(t("Send PM"), $pm_url, false), + 'poke' => array(t("Poke"), $poke_link, false), ); @@ -334,31 +351,11 @@ function contact_photo_menu($contact) { call_hooks('contact_photo_menu', $args); -/* $o = ""; - foreach($menu as $k=>$v){ - if ($v!="") { - if(($k !== t("Network Posts")) && ($k !== t("Send PM")) && ($k !== t('Edit Contact'))) - $o .= "