diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/contact_widgets.php | 19 | ||||
-rw-r--r-- | include/identity.php | 7 | ||||
-rwxr-xr-x | include/plugin.php | 19 |
3 files changed, 34 insertions, 11 deletions
diff --git a/include/contact_widgets.php b/include/contact_widgets.php index e5f778e49..cc7d92508 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -1,12 +1,27 @@ <?php /** @file */ function follow_widget() { - + $a = get_app(); + $uid =$a->channel['channel_id']; + $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ", + intval($uid), + intval(ABOOK_FLAG_SELF) + ); + if($r) + $total_channels = $r[0]['total']; + $limit = service_class_fetch($uid,'total_channels'); + if($limit !== false) { + $abook_usage_message = sprintf( t("You have %1$.0f of %2$.0f allowed connections."), $total_channels, $limit); + } + else { + $abook_usage_message = ''; + } return replace_macros(get_markup_template('follow.tpl'),array( '$connect' => t('Add New Connection'), '$desc' => t('Enter the channel address'), '$hint' => t('Example: bob@example.com, http://example.com/barbara'), - '$follow' => t('Connect') + '$follow' => t('Connect'), + '$abook_usage_message' => $abook_usage_message )); } diff --git a/include/identity.php b/include/identity.php index 8db6355c0..98209c8ae 100644 --- a/include/identity.php +++ b/include/identity.php @@ -7,7 +7,7 @@ require_once('include/crypto.php'); function identity_check_service_class($account_id) { $ret = array('success' => false, $message => ''); - $r = q("select count(channel_id) as total from channel were channel_account_id = %d ", + $r = q("select count(channel_id) as total from channel where channel_account_id = %d ", intval($account_id) ); if(! ($r && count($r))) { @@ -80,7 +80,10 @@ function create_identity($arr) { $ret['message'] = t('No account identifier'); return $ret; } - + $ret=identity_check_service_class($arr['account_id']); + if (!$ret['success']) { + return $ret; + } $nick = mb_strtolower(trim($arr['nickname'])); $name = escape_tags($arr['name']); $pageflags = ((x($arr,'pageflags')) ? intval($arr['pageflags']) : PAGE_NORMAL); diff --git a/include/plugin.php b/include/plugin.php index 01ee99786..ea88a61df 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -374,12 +374,14 @@ function get_theme_screenshot($theme) { function service_class_allows($uid,$property,$usage = false) { - + $a = get_app(); if($uid == local_user()) { - $service_class = $a->user['service_class']; + $service_class = $a->account['account_service_class']; } else { - $r = q("select service_class from user where uid = %d limit 1", + $r = q("select account_service_class as service_class + from channel c, account a + where c.channel_account_id=a.account_id and c.channel_id= %d limit 1", intval($uid) ); if($r !== false and count($r)) { @@ -404,13 +406,15 @@ function service_class_allows($uid,$property,$usage = false) { function service_class_fetch($uid,$property) { - + $a = get_app(); if($uid == local_user()) { - $service_class = $a->user['service_class']; + $service_class = $a->account['account_service_class']; } else { - $r = q("select service_class from user where uid = %d limit 1", - intval($uid) + $r = q("select account_service_class as service_class + from channel c, account a + where c.channel_account_id=a.account_id and c.channel_id= %d limit 1", + intval($uid) ); if($r !== false and count($r)) { $service_class = $r[0]['service_class']; @@ -420,6 +424,7 @@ function service_class_fetch($uid,$property) { return false; // everything is allowed $arr = get_config('service_class',$service_class); + if(! is_array($arr) || (! count($arr))) return false; |