1+ <?php
2+
3+ class quota_lib {
4+ public function get_quota_data ($ clientid = null , $ readable = true ) {
5+ global $ app ;
6+
7+ $ tmp_rec = $ app ->db ->queryAllRecords ("SELECT data from monitor_data WHERE type = 'harddisk_quota' ORDER BY created DESC " );
8+ $ monitor_data = array ();
9+ if (is_array ($ tmp_rec )) {
10+ foreach ($ tmp_rec as $ tmp_mon ) {
11+ $ monitor_data = array_merge_recursive ($ monitor_data , unserialize ($ app ->db ->unquote ($ tmp_mon ['data ' ])));
12+ }
13+ }
14+ //print_r($monitor_data);
15+
16+ // select all websites or websites belonging to client
17+ $ sites = $ app ->db ->queryAllRecords ("SELECT * FROM web_domain WHERE active = 'y' AND type = 'vhost' " .(($ clientid != null )?" AND sys_groupid = (SELECT default_group FROM sys_user WHERE client_id=?) " :'' ), $ app ->functions ->intval ($ client_id ));
18+
19+ //print_r($sites);
20+ if (is_array ($ sites ) && !empty ($ sites )){
21+ for ($ i =0 ;$ i <sizeof ($ sites );$ i ++){
22+ $ username = $ sites [$ i ]['system_user ' ];
23+ $ sites [$ i ]['used ' ] = $ monitor_data ['user ' ][$ username ]['used ' ];
24+ $ sites [$ i ]['soft ' ] = $ monitor_data ['user ' ][$ username ]['soft ' ];
25+ $ sites [$ i ]['hard ' ] = $ monitor_data ['user ' ][$ username ]['hard ' ];
26+ $ sites [$ i ]['files ' ] = $ monitor_data ['user ' ][$ username ]['files ' ];
27+
28+ if (!is_numeric ($ sites [$ i ]['used ' ])){
29+ if ($ sites [$ i ]['used ' ][0 ] > $ sites [$ i ]['used ' ][1 ]){
30+ $ sites [$ i ]['used ' ] = $ sites [$ i ]['used ' ][0 ];
31+ } else {
32+ $ sites [$ i ]['used ' ] = $ sites [$ i ]['used ' ][1 ];
33+ }
34+ }
35+ if (!is_numeric ($ sites [$ i ]['soft ' ])) $ sites [$ i ]['soft ' ]=$ sites [$ i ]['soft ' ][1 ];
36+ if (!is_numeric ($ sites [$ i ]['hard ' ])) $ sites [$ i ]['hard ' ]=$ sites [$ i ]['hard ' ][1 ];
37+ if (!is_numeric ($ sites [$ i ]['files ' ])) $ sites [$ i ]['files ' ]=$ sites [$ i ]['files ' ][1 ];
38+
39+ if ($ readable ) {
40+ // colours
41+ $ sites [$ i ]['display_colour ' ] = '#000000 ' ;
42+ if ($ sites [$ i ]['soft ' ] > 0 ){
43+ $ used_ratio = $ sites [$ i ]['used ' ]/$ sites [$ i ]['soft ' ];
44+ } else {
45+ $ used_ratio = 0 ;
46+ }
47+ if ($ used_ratio >= 0.8 ) $ sites [$ i ]['display_colour ' ] = '#fd934f ' ;
48+ if ($ used_ratio >= 1 ) $ sites [$ i ]['display_colour ' ] = '#cc0000 ' ;
49+
50+ if ($ sites [$ i ]['used ' ] > 1024 ) {
51+ $ sites [$ i ]['used ' ] = round ($ sites [$ i ]['used ' ] / 1024 , 2 ).' MB ' ;
52+ } else {
53+ if ($ sites [$ i ]['used ' ] != '' ) $ sites [$ i ]['used ' ] .= ' KB ' ;
54+ }
55+
56+ if ($ sites [$ i ]['soft ' ] > 1024 ) {
57+ $ sites [$ i ]['soft ' ] = round ($ sites [$ i ]['soft ' ] / 1024 , 2 ).' MB ' ;
58+ } else {
59+ $ sites [$ i ]['soft ' ] .= ' KB ' ;
60+ }
61+
62+ if ($ sites [$ i ]['hard ' ] > 1024 ) {
63+ $ sites [$ i ]['hard ' ] = round ($ sites [$ i ]['hard ' ] / 1024 , 2 ).' MB ' ;
64+ } else {
65+ $ sites [$ i ]['hard ' ] .= ' KB ' ;
66+ }
67+
68+ if ($ sites [$ i ]['soft ' ] == " KB " ) $ sites [$ i ]['soft ' ] = $ app ->lng ('unlimited ' );
69+ if ($ sites [$ i ]['hard ' ] == " KB " ) $ sites [$ i ]['hard ' ] = $ app ->lng ('unlimited ' );
70+
71+ if ($ sites [$ i ]['soft ' ] == '0 B ' || $ sites [$ i ]['soft ' ] == '0 KB ' || $ sites [$ i ]['soft ' ] == '0 ' ) $ sites [$ i ]['soft ' ] = $ app ->lng ('unlimited ' );
72+ if ($ sites [$ i ]['hard ' ] == '0 B ' || $ sites [$ i ]['hard ' ] == '0 KB ' || $ sites [$ i ]['hard ' ] == '0 ' ) $ sites [$ i ]['hard ' ] = $ app ->lng ('unlimited ' );
73+
74+ /*
75+ if(!strstr($sites[$i]['used'],'M') && !strstr($sites[$i]['used'],'K')) $sites[$i]['used'].= ' B';
76+ if(!strstr($sites[$i]['soft'],'M') && !strstr($sites[$i]['soft'],'K')) $sites[$i]['soft'].= ' B';
77+ if(!strstr($sites[$i]['hard'],'M') && !strstr($sites[$i]['hard'],'K')) $sites[$i]['hard'].= ' B';
78+ */
79+ }
80+ else {
81+ if (empty ($ sites [$ i ]['soft ' ])) $ sites [$ i ]['soft ' ] = -1 ;
82+ if (empty ($ sites [$ i ]['hard ' ])) $ sites [$ i ]['hard ' ] = -1 ;
83+
84+ if ($ sites [$ i ]['soft ' ] == '0 B ' || $ sites [$ i ]['soft ' ] == '0 KB ' || $ sites [$ i ]['soft ' ] == '0 ' ) $ sites [$ i ]['soft ' ] = -1 ;
85+ if ($ sites [$ i ]['hard ' ] == '0 B ' || $ sites [$ i ]['hard ' ] == '0 KB ' || $ sites [$ i ]['hard ' ] == '0 ' ) $ sites [$ i ]['hard ' ] = -1 ;
86+ }
87+ }
88+ }
89+
90+ return $ sites ;
91+ }
92+
93+ public function get_mailquota_data ($ clientid = null , $ readable = true ) {
94+ global $ app ;
95+
96+ $ tmp_rec = $ app ->db ->queryAllRecords ("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC " );
97+ $ monitor_data = array ();
98+ if (is_array ($ tmp_rec )) {
99+ foreach ($ tmp_rec as $ tmp_mon ) {
100+ //$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data'])));
101+ $ tmp_array = unserialize ($ app ->db ->unquote ($ tmp_mon ['data ' ]));
102+ if (is_array ($ tmp_array )) {
103+ foreach ($ tmp_array as $ username => $ data ) {
104+ if (!$ monitor_data [$ username ]['used ' ]) $ monitor_data [$ username ]['used ' ] = $ data ['used ' ];
105+ }
106+ }
107+ }
108+ }
109+ //print_r($monitor_data);
110+
111+ // select all email accounts or email accounts belonging to client
112+ $ emails = $ app ->db ->queryAllRecords ("SELECT * FROM mail_user " .(($ clientid != null )? " WHERE sys_groupid = (SELECT default_group FROM sys_user WHERE client_id=?) " : '' ), $ app ->functions ->intval ($ client_id ));
113+
114+ //print_r($emails);
115+ if (is_array ($ emails ) && !empty ($ emails )){
116+ for ($ i =0 ;$ i <sizeof ($ emails );$ i ++){
117+ $ email = $ emails [$ i ]['email ' ];
118+
119+ $ emails [$ i ]['used ' ] = isset ($ monitor_data [$ email ]['used ' ]) ? $ monitor_data [$ email ]['used ' ] : array (1 => 0 );
120+
121+ if (!is_numeric ($ emails [$ i ]['used ' ])) $ emails [$ i ]['used ' ]=$ emails [$ i ]['used ' ][1 ];
122+
123+ if ($ readable ) {
124+ // colours
125+ $ emails [$ i ]['display_colour ' ] = '#000000 ' ;
126+ if ($ emails [$ i ]['quota ' ] > 0 ){
127+ $ used_ratio = $ emails [$ i ]['used ' ]/$ emails [$ i ]['quota ' ];
128+ } else {
129+ $ used_ratio = 0 ;
130+ }
131+ if ($ used_ratio >= 0.8 ) $ emails [$ i ]['display_colour ' ] = '#fd934f ' ;
132+ if ($ used_ratio >= 1 ) $ emails [$ i ]['display_colour ' ] = '#cc0000 ' ;
133+
134+ if ($ emails [$ i ]['quota ' ] == 0 ){
135+ $ emails [$ i ]['quota ' ] = $ app ->lng ('unlimited ' );
136+ } else {
137+ $ emails [$ i ]['quota ' ] = round ($ emails [$ i ]['quota ' ] / 1048576 , 4 ).' MB ' ;
138+ }
139+
140+
141+ if ($ emails [$ i ]['used ' ] < 1544000 ) {
142+ $ emails [$ i ]['used ' ] = round ($ emails [$ i ]['used ' ] / 1024 , 4 ).' KB ' ;
143+ } else {
144+ $ emails [$ i ]['used ' ] = round ($ emails [$ i ]['used ' ] / 1048576 , 4 ).' MB ' ;
145+ }
146+ }
147+ }
148+ }
149+
150+ return $ emails ;
151+ }
152+ }
0 commit comments