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