X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Ffollow.php;h=54c20e5093ac4924f7891b4dd37a54785c14cc3f;hb=2aad62190fd2c0d85e636d01b7e6607a2510906b;hp=b9401ee82541cfaea8d2e86194967f424e73b8cb;hpb=1058d055d16f0cd7ce000c22b038dbad86334ce3;p=friendica.git diff --git a/mod/follow.php b/mod/follow.php old mode 100755 new mode 100644 index b9401ee825..54c20e5093 --- a/mod/follow.php +++ b/mod/follow.php @@ -2,6 +2,7 @@ require_once('include/Scrape.php'); require_once('include/follow.php'); +require_once('include/contact_selectors.php'); function follow_content(&$a) { @@ -14,8 +15,13 @@ function follow_content(&$a) { $uid = local_user(); $url = notags(trim($_REQUEST['url'])); - $r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND (`nurl` = '%s' OR `alias` = '%s' OR `alias` = '%s') LIMIT 1", - intval(local_user()), dbesc(normalise_link($url)), dbesc(normalise_link($url)), dbesc($url)); + // There is a current issue. It seems as if you can't start following a Friendica that is following you + // With Diaspora this works - but Friendica is special, it seems ... + $r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND ((`rel` != %d) OR (`network` = '%s')) AND + (`nurl` = '%s' OR `alias` = '%s' OR `alias` = '%s') AND + `network` != '%s' LIMIT 1", + intval(local_user()), dbesc(CONTACT_IS_FOLLOWER), dbesc(NETWORK_DFRN), dbesc(normalise_link($url)), + dbesc(normalise_link($url)), dbesc($url), dbesc(NETWORK_STATUSNET)); if ($r) { notice(t('You already added this contact.').EOL); @@ -25,6 +31,15 @@ function follow_content(&$a) { $ret = probe_url($url); + if ($ret["network"] == NETWORK_PHANTOM) { + notice( t("The network type couldn't be detected. Contact can't be added.") . EOL); + goaway($_SESSION['return_url']); + // NOTREACHED + } + + if ($ret["network"] == NETWORK_MAIL) + $ret["url"] = $ret["addr"]; + if($ret['network'] === NETWORK_DFRN) { $request = $ret["request"]; $tpl = get_markup_template('dfrn_request.tpl'); @@ -46,28 +61,54 @@ function follow_content(&$a) { // Makes the connection request for friendica contacts easier $_SESSION["fastlane"] = $ret["url"]; + $r = q("SELECT `location`, `about`, `keywords` FROM `gcontact` WHERE `nurl` = '%s'", + normalise_link($ret["url"])); + + if (!$r) + $r = array(array("location" => "", "about" => "", "keywords" => "")); + + if($ret['network'] === NETWORK_DIASPORA) { + $r[0]["location"] = ""; + $r[0]["about"] = ""; + } + + $header = $ret["name"]; + + if ($ret["addr"] != "") + $header .= " <".$ret["addr"].">"; + + $header .= " (".network_to_name($ret['network'], $ret['url']).")"; + $o = replace_macros($tpl,array( - '$header' => $ret["name"]." (".$ret["addr"].")", - '$photo' => $ret["photo"], - '$desc' => "", - '$pls_answer' => t('Please answer the following:'), - '$does_know_you' => array('knowyou', sprintf(t('Does %s know you?'),$ret["name"]), false, '', array(t('No'),t('Yes'))), - '$add_note' => t('Add a personal note:'), - '$page_desc' => "", - '$friendica' => "", - '$statusnet' => "", - '$diaspora' => "", - '$diasnote' => "", - '$your_address' => t('Your Identity Address:'), - '$invite_desc' => "", - '$emailnet' => "", - '$submit' => t('Submit Request'), - '$cancel' => t('Cancel'), - '$nickname' => "", - '$name' => $ret["name"], - '$url' => $ret["url"], - '$myaddr' => $myaddr, - '$request' => $request + '$header' => htmlentities($header), + '$photo' => proxy_url($ret["photo"], false, PROXY_SIZE_SMALL), + '$desc' => "", + '$pls_answer' => t('Please answer the following:'), + '$does_know_you' => array('knowyou', sprintf(t('Does %s know you?'),$ret["name"]), false, '', array(t('No'),t('Yes'))), + '$add_note' => t('Add a personal note:'), + '$page_desc' => "", + '$friendica' => "", + '$statusnet' => "", + '$diaspora' => "", + '$diasnote' => "", + '$your_address' => t('Your Identity Address:'), + '$invite_desc' => "", + '$emailnet' => "", + '$submit' => t('Submit Request'), + '$cancel' => t('Cancel'), + '$nickname' => "", + '$name' => $ret["name"], + '$url' => $ret["url"], + '$zrl' => zrl($ret["url"]), + '$url_label' => t("Profile URL"), + '$myaddr' => $myaddr, + '$request' => $request, + '$location' => bbcode($r[0]["location"]), + '$location_label' => t("Location:"), + '$about' => bbcode($r[0]["about"], false, false), + '$about_label' => t("About:"), + '$keywords' => $r[0]["keywords"], + '$keywords_label' => t("Tags:") )); return $o; }