// 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) {
$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
);
}}
-function contact_data($url, $uid = -1) {
+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 {
+
+ 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"]);
+
+ } else {
$r = q("SELECT `url`, `name`, `nick`, `avatar` AS `photo`, `location`, `about` FROM `unique_contacts` WHERE `url` = '%s'",
dbesc(normalise_link($url)));
$profile["gender"] = "";
$profile["community"] = false;
$profile["network"] = "";
+ $profile["addr"] = "";
}
}
// 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`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = %d AND `network` = '%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",
+ $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `addr`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` 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",
+ $r = q("SELECT `id`, `uid`, `url`, `network`, `name`, `nick`, `addr`, `location`, `about`, `keywords`, `gender`, `photo`, `addr`, `forum`, `prv`, `bd` FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0",
dbesc(normalise_link($url)));
if ($r) {
$profile["name"] = $r[0]["name"];
if (isset($r[0]["nick"]) AND $r[0]["nick"] AND ($profile["nick"] == ""))
$profile["nick"] = $r[0]["nick"];
+ if (isset($r[0]["addr"]) AND $r[0]["addr"] AND ($profile["addr"] == ""))
+ $profile["addr"] = $r[0]["addr"];
if (isset($r[0]["photo"]) AND $r[0]["photo"])
$profile["photo"] = $r[0]["photo"];
if (isset($r[0]["location"]) AND $r[0]["location"])
$profile["keywords"] = $r[0]["keywords"];
if (isset($r[0]["gender"]) AND $r[0]["gender"])
$profile["gender"] = $r[0]["gender"];
- if (isset($r[0]["forum"]) AND isset($r[0]["prv"]))
+ 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"])
$profile["network"] = $r[0]["network"];
}
if(! function_exists('contact_photo_menu')){
-function contact_photo_menu($contact) {
+function contact_photo_menu($contact, $uid = 0) {
$a = get_app();
$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;
$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),
);
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 .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
- else
- $o .= "<li><a href=\"$v\">$k</a></li>\n";
- }
- }
- return $o;*/
-
- foreach($menu as $k=>$v){
- if ($v[1]!="") {
- if(($v[0] !== t("Network Posts")) && ($v[0] !== t("Send PM")) && ($v[0] !== t('Edit Contact')))
- $menu[$k][2] = 1;
- else
- $menu[$k][2] = 0;
- }
- }
-
$menucondensed = array();
- foreach ($menu AS $menuitem)
+ foreach ($menu AS $menuname=>$menuitem)
if ($menuitem[1] != "")
- $menucondensed[] = $menuitem;
+ $menucondensed[$menuname] = $menuitem;
return $menucondensed;
}}