]> git.mxchange.org Git - friendica.git/blobdiff - mod/follow.php
cleanup
[friendica.git] / mod / follow.php
index 23fad81a89966bdab9e97ee224f153091dff0a31..92557264023ba0d1d3737a8720e556f9a594cb2e 100644 (file)
@@ -12,8 +12,17 @@ function follow_post(&$a) {
 
        $url = $orig_url = notags(trim($_POST['url']));
 
-       $ret = probe_url($url);
+       // remove ajax junk, e.g. Twitter
+
+       $url = str_replace('/#!/','/',$url);
 
+       if(! allowed_url($url)) {
+               notice( t('Disallowed profile URL.') . EOL);
+               goaway($_SESSION['return_url']);
+               // NOTREACHED
+       }
+
+       $ret = probe_url($url);
 
        if($ret['network'] === NETWORK_DFRN) {
                if(strlen($a->path))
@@ -25,14 +34,33 @@ function follow_post(&$a) {
                
                // NOTREACHED
        }
+       else {
+               if(get_config('system','dfrn_only')) {
+                       notice( t('This site is not configured to allow communications with other networks.') . EOL);
+                       notice( t('No compatible communication protocols or feeds were discovered.') . EOL);
+                       goaway($_SESSION['return_url']);
+               }
+       }
 
        // do we have enough information?
        
        if(! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) {
                notice( t('The profile address specified does not provide adequate information.') . EOL);
+               if(! x($ret,'poll'))
+                       notice( t('No compatible communication protocols or feeds were discovered.') . EOL);
+               if(! x($ret,'name'))
+                       notice( t('An author or name was not found.') . EOL);
+               if(! x($ret,'url'))
+                       notice( t('No browser URL could be matched to this address.') . EOL);
+               if(strpos($url,'@') !== false)
+                       notice('Unable to match @-style Identity Address with a known protocol or email contact');
                goaway($_SESSION['return_url']);
        }
 
+       if($ret['network'] === NETWORK_OSTATUS && get_config('system','ostatus_disabled')) {
+               notice( t('Communication options with this network have been restricted.') . EOL);
+               $ret['notify'] = '';
+       }
 
        if(! $ret['notify']) {
                notice( t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL);
@@ -54,9 +82,9 @@ function follow_post(&$a) {
 
        if(count($r)) {
                // update contact
-               if($r[0]['rel'] == REL_VIP) {
+               if($r[0]['rel'] == CONTACT_IS_FOLLOWER) {
                        q("UPDATE `contact` SET `rel` = %d , `readonly` = 0 WHERE `id` = %d AND `uid` = %d LIMIT 1",
-                               intval(REL_BUD),
+                               intval(CONTACT_IS_FRIEND),
                                intval($r[0]['id']),
                                intval(local_user())
                        );
@@ -78,7 +106,7 @@ function follow_post(&$a) {
                        dbesc($ret['nick']),
                        dbesc($ret['photo']),
                        dbesc($ret['network']),
-                       intval(($ret['network'] === NETWORK_MAIL) ? REL_BUD : REL_FAN),
+                       intval(($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING),
                        intval($ret['priority']),
                        intval($writeable)
                );
@@ -126,7 +154,7 @@ function follow_post(&$a) {
 
        // create a follow slap
 
-       $tpl = load_view_file('view/follow_slap.tpl');
+       $tpl = get_markup_template('follow_slap.tpl');
        $slap = replace_macros($tpl, array(
                '$name' => $a->user['username'],
                '$profile_page' => $a->get_baseurl() . '/profile/' . $a->user['nickname'],