From efbdb57f926dc840a162ac960f5a1f3b0fdf0353 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sat, 10 Oct 2015 11:06:18 +0200 Subject: [PATCH] Reworked contact relations between Friendica and Diaspora --- include/conversation.php | 3 ++- include/diaspora.php | 4 ++-- include/follow.php | 10 ++-------- mod/contacts.php | 6 ++++++ view/templates/contact_edit.tpl | 3 +++ 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index bbb0b921a3..92afcaa1f6 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -897,7 +897,8 @@ function item_photo_menu($item){ if ($a->contacts[$clean_url]['network'] === NETWORK_DFRN) $menu[t("Poke")] = $poke_link; - if (($cid == 0) AND in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) + if (($cid == 0) AND + in_array($item['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA))) $menu[t("Connect/Follow")] = $a->get_baseurl($ssl_state)."/follow?url=".urlencode($item['author-link']); $args = array('item' => $item, 'menu' => $menu); diff --git a/include/diaspora.php b/include/diaspora.php index 61a0dfc3cf..757cf1a6ba 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -592,7 +592,7 @@ function diaspora_request($importer,$xml) { // perhaps we were already sharing with this person. Now they're sharing with us. // That makes us friends. - if($contact['rel'] == CONTACT_IS_FOLLOWER && !in_array($importer['page-flags'], array(PAGE_COMMUNITY, PAGE_SOAPBOX))) { + if($contact['rel'] == CONTACT_IS_FOLLOWER && in_array($importer['page-flags'], array(PAGE_FREELOVE))) { q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), intval($contact['id']), @@ -774,7 +774,7 @@ function diaspora_post_allow($importer,$contact, $is_comment = false) { // perhaps we were already sharing with this person. Now they're sharing with us. // That makes us friends. // Normally this should have handled by getting a request - but this could get lost - if($contact['rel'] == CONTACT_IS_FOLLOWER && !in_array($importer['page-flags'], array(PAGE_COMMUNITY, PAGE_SOAPBOX))) { + if($contact['rel'] == CONTACT_IS_FOLLOWER && in_array($importer['page-flags'], array(PAGE_FREELOVE))) { q("UPDATE `contact` SET `rel` = %d, `writable` = 1 WHERE `id` = %d AND `uid` = %d", intval(CONTACT_IS_FRIEND), intval($contact['id']), diff --git a/include/follow.php b/include/follow.php index ca0228cc0f..21c05c8f3e 100644 --- a/include/follow.php +++ b/include/follow.php @@ -154,11 +154,7 @@ function new_contact($uid,$url,$interactive = false) { $hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0); - if($ret['network'] === NETWORK_MAIL) { - $writeable = 1; - - } - if($ret['network'] === NETWORK_DIASPORA) + if(in_array($ret['network'], array(NETWORK_MAIL, NETWORK_DIASPORA))) $writeable = 1; // check if we already have a contact @@ -215,9 +211,7 @@ function new_contact($uid,$url,$interactive = false) { return $result; } - $new_relation = (($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); - if($ret['network'] === NETWORK_DIASPORA) - $new_relation = CONTACT_IS_FOLLOWER; + $new_relation = ((in_array($ret['network'], array(NETWORK_MAIL, NETWORK_DIASPORA))) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); // create contact record $r = q("INSERT INTO `contact` ( `uid`, `created`, `url`, `nurl`, `addr`, `alias`, `batch`, `notify`, `poll`, `poco`, `name`, `nick`, `network`, `pubkey`, `rel`, `priority`, diff --git a/mod/contacts.php b/mod/contacts.php index ee62bf3c9e..c562c9822d 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -590,6 +590,10 @@ function contacts_content(&$a) { if ($contact['network'] == NETWORK_DFRN) $profile_select = contact_profile_assign($contact['profile-id'],(($contact['network'] !== NETWORK_DFRN) ? true : false)); + if (in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_OSTATUS)) AND + ($contact['rel'] == CONTACT_IS_FOLLOWER)) + $follow = $a->get_baseurl(true)."/follow?url=".urlencode($contact["url"]); + $o .= replace_macros($tpl, array( '$header' => t('Contact Editor'), '$tab_str' => $tab_str, @@ -617,6 +621,8 @@ function contacts_content(&$a) { '$updpub' => t('Update public posts'), '$last_update' => $last_update, '$udnow' => t('Update now'), + '$follow' => $follow, + '$follow_text' => t("Connect/Follow"), '$profile_select' => $profile_select, '$contact_id' => $contact['id'], '$block_text' => (($contact['blocked']) ? t('Unblock') : t('Block') ), diff --git a/view/templates/contact_edit.tpl b/view/templates/contact_edit.tpl index 06141081cb..95e8e5d29a 100644 --- a/view/templates/contact_edit.tpl +++ b/view/templates/contact_edit.tpl @@ -51,6 +51,9 @@ {{if $lblsuggest}}
  • {{$lblsuggest}}
  • {{/if}} + {{if $follow}} +
  • + {{/if}}