Changeset 2962


Ignore:
Timestamp:
06/01/10 11:05:49 (21 months ago)
Author:
TheCry
Message:
  • [GUI] Fixed #2291: Invalid counters in ../reseller/index.php
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CHANGELOG

    r2961 r2962  
    55        - GUI: 
    66                Changed all reseller/*.php files to use the new IspCP_Registry class and the new IspCP_ConfigHandler interface 
     7                Fixed #2291: Invalid counters in ../reseller/index.php 
    78 
    892010-06-01 Laurent Declercq 
  • trunk/gui/include/admin-functions.php

    r2938 r2962  
    10111011                AND `mail_type` NOT RLIKE '_catchall' 
    10121012                AND `domain_id`"; 
    1013                 $mail_current = records_count( 'mail_users', $where, $user_id); 
     1013                $mail_current = records_count('mail_users', $where, $user_id); 
    10141014        } 
    10151015        $mail_max = $rs->fields['domain_mailacc_limit']; 
     
    10181018                                                                                        'userid', 'ftp_users', 'userid', '@', ''); 
    10191019 
    1020         $ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 
    1021                                                                                         'userid', 'ftp_users', 'userid', '@', ''); 
     1020        //We don't need this query, because we don't have ftpusers for a subdomain! Otherwise the counters count wrong - TheCry 
     1021        /*$ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 
     1022                                                                                        'userid', 'ftp_users', 'userid', '@', '');*/ 
    10221023 
    10231024        $ftp_current += sub_records_rlike_count('alias_name', 'domain_aliasses', 'domain_id', $user_id, 
     
    10291030        $sql_db_max = $rs->fields['domain_sqld_limit']; 
    10301031 
    1031         $sql_user_current = sub_records_count(  'sqld_id', 'sql_database', 'domain_id', $user_id, 
    1032                                                                                         'sqlu_id', 'sql_user', 'sqld_id', '', ''); 
     1032        $sql_user_current = sub_records_count('sqld_id', 'sql_database', 'domain_id', $user_id, 
     1033                                                                                        'sqlu_id', 'sql_user', 'sqld_id', 'sqlu_name', ''); 
    10331034 
    10341035        $sql_user_max = $rs->fields['domain_sqlu_limit']; 
     
    10881089 * @todo implement check for dynamic table/row in SQL query 
    10891090 */ 
    1090 function sub_records_count($field, $table, $where, $value, $subfield, $subtable, $subwhere) { 
     1091function sub_records_count($field, $table, $where, $value, $subfield, $subtable, $subwhere, $subgroupname) { 
    10911092        $sql = Database::getInstance(); 
    10921093 
     
    11041105                return $result; 
    11051106        } 
    1106         while (!$rs->EOF) { 
    1107                 $contents = $rs->fields['field']; 
     1107        if($subgroupname != '') { 
     1108                $sqld_ids = array(); 
     1109                while (!$rs->EOF) { 
     1110                        array_push($sqld_ids, $rs->fields['field']); 
     1111                        $rs->MoveNext(); 
     1112                } 
     1113                $sqld_ids = implode(",", $sqld_ids); 
    11081114 
    11091115                if ($subwhere != '') { 
    1110                         $query = "SELECT COUNT(*) AS cnt FROM $subtable WHERE $subwhere = ?"; 
     1116                        $query = "SELECT COUNT(DISTINCT $subgroupname) AS cnt FROM $subtable WHERE sqld_id IN ($sqld_ids)"; 
     1117                        $subres = exec_query($sql, $query); 
     1118                        $result = $subres->fields['cnt']; 
    11111119                } else { 
    11121120                        return $result; 
    11131121                } 
    1114  
    1115                 $subres = exec_query($sql, $query, array($contents)); 
    1116                 $result += $subres->fields['cnt']; 
    1117                 $rs->MoveNext(); 
    1118         } 
    1119  
     1122        } else { 
     1123                while (!$rs->EOF) { 
     1124                        $contents = $rs->fields['field']; 
     1125                        if ($subwhere != '') { 
     1126                                $query = "SELECT COUNT(*) AS cnt FROM $subtable WHERE $subwhere = ?"; 
     1127                        } else { 
     1128                                return $result; 
     1129                        } 
     1130                        $subres = exec_query($sql, $query, array($contents)); 
     1131                        $result += $subres->fields['cnt']; 
     1132                        $rs->MoveNext(); 
     1133                } 
     1134        } 
    11201135        return $result; 
    11211136} 
  • trunk/gui/include/reseller-functions.php

    r2938 r2962  
    591591                ); 
    592592 
    593         $ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 
     593        //We don't need this query, because we don't have ftpusers for a subdomain! Otherwise the counters count wrong - TheCry 
     594        /*$ftp_current += sub_records_rlike_count('subdomain_name', 'subdomain', 'domain_id', $user_id, 
    594595                'userid', 'ftp_users', 'userid', '@', '' 
    595                 ); 
     596                );*/ 
    596597 
    597598        $ftp_current += sub_records_rlike_count('alias_name', 'domain_aliasses', 'domain_id', $user_id, 
     
    17991800                SELECT 
    18001801                        COUNT(`domain_id`) AS crn_domains, 
    1801                         IFNULL(SUM(`domain_subd_limit`), 0) AS current_sub_cnt, 
    1802                         IFNULL(SUM(`domain_alias_limit`), 0) AS current_als_cnt, 
    1803                         IFNULL(SUM(`domain_mailacc_limit`), 0) AS current_mail_cnt, 
    1804                         IFNULL(SUM(`domain_ftpacc_limit`), 0) AS current_ftp_cnt, 
    1805                         IFNULL(SUM(`domain_sqld_limit`), 0) AS current_sql_db_cnt, 
    1806                         IFNULL(SUM(`domain_sqlu_limit`), 0) AS current_sql_user_cnt, 
     1802                        IFNULL(SUM(IF(`domain_subd_limit` >= 0, `domain_subd_limit`, 0)), 0) AS current_sub_cnt, 
     1803                        IFNULL(SUM(IF(`domain_alias_limit` >= 0, `domain_alias_limit`, 0)), 0) AS current_als_cnt, 
     1804                        IFNULL(SUM(IF(`domain_mailacc_limit` >= 0, `domain_mailacc_limit`, 0)), 0) AS current_mail_cnt, 
     1805                        IFNULL(SUM(IF(`domain_ftpacc_limit` >= 0, `domain_ftpacc_limit`, 0)), 0) AS current_ftp_cnt, 
     1806                        IFNULL(SUM(IF(`domain_sqld_limit` >= 0, `domain_sqld_limit`, 0)), 0) AS current_sql_db_cnt, 
     1807                        IFNULL(SUM(IF(`domain_sqlu_limit` >= 0, `domain_sqlu_limit`, 0)), 0) AS current_sql_user_cnt, 
    18071808                        IFNULL(SUM(`domain_disk_limit`), 0) AS current_disk_amnt, 
    18081809                        IFNULL(SUM(`domain_traffic_limit`), 0) AS current_traff_amnt 
Note: See TracChangeset for help on using the changeset viewer.