X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Ffollow.php;h=a1b9dba22f6e49cdfd846417098073407f96d37f;hb=5e846dd7c29fe93e583c195e97513e221dac31b9;hp=885730f07c511e995829476671c986a5f032f7e0;hpb=ee8689cc899beecaf0943ac175550a7fb49cf199;p=friendica.git diff --git a/mod/follow.php b/mod/follow.php index 885730f07c..a1b9dba22f 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -28,6 +28,7 @@ use Friendica\Model\Profile; use Friendica\Model\Item; use Friendica\Network\Probe; use Friendica\Database\DBA; +use Friendica\Model\Post; use Friendica\Model\User; use Friendica\Util\Strings; @@ -42,30 +43,8 @@ function follow_post(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); - // NOTREACHED + follow_process($a, $url); } function follow_content(App $a) @@ -143,6 +122,10 @@ function follow_content(App $a) $request = $contact['request']; $tpl = Renderer::getMarkupTemplate('dfrn_request.tpl'); } else { + if (!empty($_REQUEST['auto'])) { + follow_process($a, $contact['url']); + } + $request = DI::baseUrl() . '/follow'; $tpl = Renderer::getMarkupTemplate('auto_request.tpl'); } @@ -195,6 +178,33 @@ function follow_content(App $a) return $o; } +function follow_process(App $a, string $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()); @@ -204,7 +214,7 @@ function follow_remote_item($url) } if (!empty($item_id)) { - $item = Item::selectFirst(['guid'], ['id' => $item_id]); + $item = Post::selectFirst(['guid'], ['id' => $item_id]); if (DBA::isResult($item)) { DI::baseUrl()->redirect('display/' . $item['guid']); }