Follow/Unfollow contact with a single click
This commit is contained in:
@@ -41,31 +41,7 @@ function follow_post(App $a)
|
||||
DI::baseUrl()->redirect('contact');
|
||||
}
|
||||
|
||||
$url = Probe::cleanURI($_REQUEST['url']);
|
||||
$return_path = 'follow?url=' . urlencode($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 = Contact::createFromProbe($a->user, $url, true);
|
||||
|
||||
if ($result['success'] == false) {
|
||||
// Possibly it is a remote item and not an account
|
||||
follow_remote_item($url);
|
||||
|
||||
if ($result['message']) {
|
||||
notice($result['message']);
|
||||
}
|
||||
DI::baseUrl()->redirect($return_path);
|
||||
} elseif ($result['cid']) {
|
||||
DI::baseUrl()->redirect('contact/' . $result['cid']);
|
||||
}
|
||||
|
||||
notice(DI::l10n()->t('The contact could not be added.'));
|
||||
|
||||
DI::baseUrl()->redirect($return_path);
|
||||
// NOTREACHED
|
||||
follow_process($a);
|
||||
}
|
||||
|
||||
function follow_content(App $a)
|
||||
@@ -92,6 +68,10 @@ function follow_content(App $a)
|
||||
DI::baseUrl()->redirect($return_path);
|
||||
}
|
||||
|
||||
if (!empty($_REQUEST['auto'])) {
|
||||
follow_process($a);
|
||||
}
|
||||
|
||||
$submit = DI::l10n()->t('Submit Request');
|
||||
|
||||
// Don't try to add a pending contact
|
||||
@@ -195,6 +175,34 @@ function follow_content(App $a)
|
||||
return $o;
|
||||
}
|
||||
|
||||
function follow_process(App $a)
|
||||
{
|
||||
$url = Probe::cleanURI($_REQUEST['url']);
|
||||
$return_path = 'follow?url=' . urlencode($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 = Contact::createFromProbe($a->user, $url, true);
|
||||
|
||||
if ($result['success'] == false) {
|
||||
// Possibly it is a remote item and not an account
|
||||
follow_remote_item($url);
|
||||
|
||||
if ($result['message']) {
|
||||
notice($result['message']);
|
||||
}
|
||||
DI::baseUrl()->redirect($return_path);
|
||||
} elseif ($result['cid']) {
|
||||
DI::baseUrl()->redirect('contact/' . $result['cid']);
|
||||
}
|
||||
|
||||
notice(DI::l10n()->t('The contact could not be added.'));
|
||||
|
||||
DI::baseUrl()->redirect($return_path);
|
||||
}
|
||||
|
||||
function follow_remote_item($url)
|
||||
{
|
||||
$item_id = Item::fetchByLink($url, local_user());
|
||||
|
||||
Reference in New Issue
Block a user