Merge pull request #1505 from annando/1504-unified-follow
The behaviour when following a new contact is now unified
This commit is contained in:
commit
8b2742dc7d
8 changed files with 128 additions and 16 deletions
|
@ -664,6 +664,21 @@ function dfrn_request_content(&$a) {
|
|||
$dfrn_url = notags(trim(hex2bin($_GET['dfrn_url'])));
|
||||
$aes_allow = (((x($_GET,'aes_allow')) && ($_GET['aes_allow'] == 1)) ? 1 : 0);
|
||||
$confirm_key = (x($_GET,'confirm_key') ? $_GET['confirm_key'] : "");
|
||||
|
||||
// Checking fastlane for validity
|
||||
if (x($_SESSION, "fastlane") AND (normalise_link($_SESSION["fastlane"]) == normalise_link($dfrn_url))) {
|
||||
$_POST["dfrn_url"] = $dfrn_url;
|
||||
$_POST["confirm_key"] = $confirm_key;
|
||||
$_POST["localconfirm"] = 1;
|
||||
$_POST["hidden-contact"] = 0;
|
||||
$_POST["submit"] = t('Confirm');
|
||||
|
||||
dfrn_request_post($a);
|
||||
|
||||
killme();
|
||||
return; // NOTREACHED
|
||||
}
|
||||
|
||||
$tpl = get_markup_template("dfrn_req_confirm.tpl");
|
||||
$o = replace_macros($tpl,array(
|
||||
'$dfrn_url' => $dfrn_url,
|
||||
|
|
|
@ -193,11 +193,13 @@ function display_fetchauthor($a, $item) {
|
|||
}
|
||||
|
||||
if (local_user()) {
|
||||
if ($profiledata["network"] == NETWORK_DFRN) {
|
||||
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"])."&addr=".bin2hex($a->get_baseurl()."/profile/".$a->user["nickname"]);
|
||||
$profiledata["remoteconnect"] = $connect;
|
||||
} elseif ($profiledata["network"] == NETWORK_DIASPORA)
|
||||
$profiledata["remoteconnect"] = $a->get_baseurl()."/contacts?add=".GetProfileUsername($profiledata["url"], "", true);
|
||||
if (in_array($profiledata["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS)))
|
||||
$profiledata["remoteconnect"] = $a->get_baseurl()."/follow?url=".urlencode($profiledata["url"]);
|
||||
//if ($profiledata["network"] == NETWORK_DFRN) {
|
||||
// $connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"])."&addr=".bin2hex($a->get_baseurl()."/profile/".$a->user["nickname"]);
|
||||
// $profiledata["remoteconnect"] = $connect;
|
||||
//} elseif ($profiledata["network"] == NETWORK_DIASPORA)
|
||||
// $profiledata["remoteconnect"] = $a->get_baseurl()."/contacts?add=".GetProfileUsername($profiledata["url"], "", true);
|
||||
} elseif ($profiledata["network"] == NETWORK_DFRN) {
|
||||
$connect = str_replace("/profile/", "/dfrn_request/", $profiledata["url"]);
|
||||
$profiledata["remoteconnect"] = $connect;
|
||||
|
|
84
mod/follow.php
Normal file → Executable file
84
mod/follow.php
Normal file → Executable file
|
@ -3,7 +3,7 @@
|
|||
require_once('include/Scrape.php');
|
||||
require_once('include/follow.php');
|
||||
|
||||
function follow_init(&$a) {
|
||||
function follow_content(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -11,10 +11,85 @@ function follow_init(&$a) {
|
|||
// NOTREACHED
|
||||
}
|
||||
|
||||
$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));
|
||||
|
||||
if ($r) {
|
||||
notice(t('You already added this contact.').EOL);
|
||||
goaway($_SESSION['return_url']);
|
||||
// NOTREACHED
|
||||
}
|
||||
|
||||
$ret = probe_url($url);
|
||||
|
||||
if($ret['network'] === NETWORK_DFRN) {
|
||||
$request = $ret["request"];
|
||||
$tpl = get_markup_template('dfrn_request.tpl');
|
||||
} else {
|
||||
$request = $a->get_baseurl()."/follow";
|
||||
$tpl = get_markup_template('auto_request.tpl');
|
||||
}
|
||||
|
||||
$r = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `self` LIMIT 1", intval($uid));
|
||||
|
||||
if (!$r) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
goaway($_SESSION['return_url']);
|
||||
// NOTREACHED
|
||||
}
|
||||
|
||||
$myaddr = $r[0]["url"];
|
||||
|
||||
// Makes the connection request for friendica contacts easier
|
||||
$_SESSION["fastlane"] = $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
|
||||
));
|
||||
return $o;
|
||||
}
|
||||
|
||||
function follow_post(&$a) {
|
||||
|
||||
if(! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
goaway($_SESSION['return_url']);
|
||||
// NOTREACHED
|
||||
}
|
||||
|
||||
if ($_REQUEST['cancel'])
|
||||
goaway($_SESSION['return_url']);
|
||||
|
||||
$uid = local_user();
|
||||
$url = notags(trim($_REQUEST['url']));
|
||||
$return_url = $_SESSION['return_url'];
|
||||
|
||||
// Makes the connection request for friendica contacts easier
|
||||
// This is just a precaution if maybe this page is called somewhere directly via POST
|
||||
$_SESSION["fastlane"] = $url;
|
||||
|
||||
$result = new_contact($uid,$url,true);
|
||||
|
||||
|
@ -22,12 +97,13 @@ function follow_init(&$a) {
|
|||
if($result['message'])
|
||||
notice($result['message']);
|
||||
goaway($return_url);
|
||||
}
|
||||
} elseif ($result['cid'])
|
||||
goaway($a->get_baseurl().'/contacts/'.$result['cid']);
|
||||
|
||||
info( t('Contact added') . EOL);
|
||||
info( t('Contact added').EOL);
|
||||
|
||||
if(strstr($return_url,'contacts'))
|
||||
goaway($a->get_baseurl() . '/contacts/' . $contact_id);
|
||||
goaway($a->get_baseurl().'/contacts/'.$contact_id);
|
||||
|
||||
goaway($return_url);
|
||||
// NOTREACHED
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue