From 3df235e5bd2666fdb4043e374d1df15414a355bd Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Thu, 5 May 2016 12:02:51 +0200 Subject: [PATCH] The global contact for server users is now stored directly --- include/dfrn.php | 4 ++-- mod/noscrape.php | 4 ++-- mod/profiles.php | 13 ++++++++++++- mod/settings.php | 9 ++++++--- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/include/dfrn.php b/include/dfrn.php index daa1aae25c..f1b325b571 100644 --- a/include/dfrn.php +++ b/include/dfrn.php @@ -492,12 +492,12 @@ class dfrn { // Is the profile hidden or shouldn't be published in the net? Then add the "hide" element $r = q("SELECT `id` FROM `profile` INNER JOIN `user` ON `user`.`uid` = `profile`.`uid` - WHERE `hidewall` OR NOT `net-publish` AND `user`.`uid` = %d", + WHERE (`hidewall` OR NOT `net-publish`) AND `user`.`uid` = %d", intval($owner['uid'])); if ($r) xml::add_element($doc, $author, "dfrn:hide", "true"); - // The following fields will only be generated if this isn't for a public feed + // The following fields will only be generated if the data isn't meant for a public feed if ($public) return $author; diff --git a/mod/noscrape.php b/mod/noscrape.php index 42931cf382..2a04605469 100644 --- a/mod/noscrape.php +++ b/mod/noscrape.php @@ -15,11 +15,11 @@ function noscrape_init(&$a) { profile_load($a,$which,$profile); - if(!$a->profile['net-publish']) { + if (!$a->profile['net-publish'] OR $a->profile['hidewall']) { header('Content-type: application/json; charset=utf-8'); $json_info = array("hide" => true); echo json_encode($json_info); - killme(); + exit; } $keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : ''); diff --git a/mod/profiles.php b/mod/profiles.php index 39382fbdd5..4ab35455ce 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -484,7 +484,7 @@ function profiles_post(&$a) { if($is_default) { $location = formatted_location(array("locality" => $locality, "region" => $region, "country-name" => $country_name)); - $r = q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` = 1 AND `uid` = %d", + q("UPDATE `contact` SET `about` = '%s', `location` = '%s', `keywords` = '%s', `gender` = '%s' WHERE `self` AND `uid` = %d", dbesc($about), dbesc($location), dbesc($pub_keywords), @@ -492,6 +492,17 @@ function profiles_post(&$a) { intval(local_user()) ); + $r = q("SELECT `avatar`, `notify`, `url` FROM `contact` WHERE `self` AND `uid` = %d", + intval(local_user())); + + $gcontact = array("name" => $name, "location" => $location, "about" => $about, + "gender" => $gender, "keywords" => $pub_keywords, "birthday" => $dob, + "photo" => $r[0]["avatar"], "notify" => $r[0]["notify"], + "generation" => 1, "network" => NETWORK_DFRN, + "url" => $r[0]["url"], "updated" => datetime_convert()); + + update_gcontact($gcontact); + // Update global directory in background $url = $_SESSION['my_url']; if($url && strlen(get_config('system','directory'))) diff --git a/mod/settings.php b/mod/settings.php index 1a7905ef64..682bee3756 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -620,9 +620,12 @@ function settings_post(&$a) { $r = q("SELECT `url` FROM `contact` WHERE `self` AND `uid` = %d", intval(local_user())); if ($r) { + $nickname = $a->user['nickname']; + $addr = $nickname.'@'.str_replace(array("http://", "https://"), "", App::get_baseurl()); $gcontact = array("name" => $username, "generation" => 1, "hide" => ($hidewall OR !$net_publish), + "nick" => $nickname, "addr" => $addr, + "connect" => $addr, "server_url" => App::get_baseurl(), "network" => NETWORK_DFRN, "url" => $r[0]["url"], "updated" => datetime_convert()); - update_gcontact($gcontact); } @@ -637,7 +640,7 @@ function settings_post(&$a) { } - goaway('settings' ); + goaway('settings'); return; // NOTREACHED } @@ -1287,7 +1290,7 @@ function settings_content(&$a) { '$notify7' => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''), '$notify8' => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''), - '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')), + '$desktop_notifications' => array('desktop_notifications', t('Activate desktop notifications') , false, t('Show desktop popup on new notifications')), '$email_textonly' => array('email_textonly', t('Text-only notification emails'), get_pconfig(local_user(),'system','email_textonly'), -- 2.39.5