diff options
author | friendica <info@friendica.com> | 2012-06-24 22:23:17 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-06-24 22:23:17 -0700 |
commit | ad6c82bdea11e4c35284e18608f78ad4c355405d (patch) | |
tree | 7a22b5eaea49ac5e20da2493f0d6ce388f949300 /include | |
parent | c464bc494c51bd871c2cf01a441ea2c4f8defc65 (diff) | |
download | volse-hubzilla-ad6c82bdea11e4c35284e18608f78ad4c355405d.tar.gz volse-hubzilla-ad6c82bdea11e4c35284e18608f78ad4c355405d.tar.bz2 volse-hubzilla-ad6c82bdea11e4c35284e18608f78ad4c355405d.zip |
implement "follow" service limits
Diffstat (limited to 'include')
-rw-r--r-- | include/follow.php | 36 | ||||
-rw-r--r-- | include/plugin.php | 15 |
2 files changed, 50 insertions, 1 deletions
diff --git a/include/follow.php b/include/follow.php index 22288a0da..b4d1732b8 100644 --- a/include/follow.php +++ b/include/follow.php @@ -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; diff --git a/include/plugin.php b/include/plugin.php index 3b6faa072..89715485e 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -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 : '') ; +} |