]> git.mxchange.org Git - friendica.git/commitdiff
implement "follow" service limits
authorfriendica <info@friendica.com>
Mon, 25 Jun 2012 05:23:17 +0000 (22:23 -0700)
committerfriendica <info@friendica.com>
Mon, 25 Jun 2012 05:23:17 +0000 (22:23 -0700)
include/follow.php
include/plugin.php
view/en/update_fail_eml.tpl

index 22288a0daf64b1d01ed134de487f494852012187..b4d1732b88091e5e7b21af3d5c71294d12955b89 100644 (file)
@@ -62,6 +62,11 @@ function new_contact($uid,$url,$interactive = false) {
                }
        }
        
+
+
+
+
+
        // This extra param just confuses things, remove it
        if($ret['network'] === NETWORK_DIASPORA)
                $ret['url'] = str_replace('?absolute=true','',$ret['url']);
@@ -89,6 +94,11 @@ function new_contact($uid,$url,$interactive = false) {
                $ret['notify'] = '';
        }
 
+
+
+
+
+
        if(! $ret['notify']) {
                $result['message'] .=  t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
        }
@@ -129,6 +139,32 @@ function new_contact($uid,$url,$interactive = false) {
        }
        else {
 
+
+               // check service class limits
+
+               $r = q("select count(*) as total from contact where uid = %d and pending = 0 and self = 0",
+                       intval($uid)
+               );
+               if(count($r))
+                       $total_contacts = $r[0]['total'];
+
+               if(! service_class_allows($uid,'total_contacts',$total_contacts)) {
+                       $result['message'] .= upgrade_message();
+                       return $result;
+               }
+
+               $r = q("select count(network) as total from contact where uid = %d and network = '%s' and pending = 0 and self = 0",
+                       intval($uid),
+                       dbesc($network)
+               );
+               if(count($r))
+                       $total_network = $r[0]['total'];
+
+               if(! service_class_allows($uid,'total_contacts_' . $network,$total_network)) {
+                       $result['message'] .= upgrade_message();
+                       return $result;
+               }
+
                $new_relation = (($ret['network'] === NETWORK_MAIL) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING);
                if($ret['network'] === NETWORK_DIASPORA)
                        $new_relation = CONTACT_IS_FOLLOWER;
index 3b6faa072a5071d93eb9b19f6232c575297a8ab1..89715485ee63be69a0ec41694795bb4bf012ae9b 100644 (file)
@@ -353,4 +353,17 @@ function service_class_allows($uid,$property,$usage = false) {
                        return true;
                return (((intval($usage)) < intval($arr[$property])) ? true : false);
        }
-}
\ No newline at end of file
+}
+
+function upgrade_link() {
+       $l = get_config('service_class','upgrade_link');
+       $t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
+       if($l) 
+               return $t;
+       return '';
+}
+
+function upgrade_message() {
+       $x = upgrade_link();
+       return t('This action exceeds the limits set by your subscription plan.') . (($x) ? ' ' . $x : '') ;
+}
index f68a3dece12bb14cfa0a07ccb804108401b1e98c..548e1a0df16cda0b5a7882467232a8893e9bae8a 100644 (file)
@@ -1,5 +1,5 @@
 Hey, \r
-I'm $sitename.   \r
+I'm $sitename;   \r
 The friendica developers released update $update recently, \r
 but when I tried to install it, something went terribly wrong.  \r
 This needs to be fixed soon and I can't do it alone. Please contact a \r