@@ -160,4 +160,66 @@ public function get_mailquota_data($clientid = null, $readable = true) {
160160
161161 return $ emails ;
162162 }
163+
164+ public function get_databasequota_data ($ clientid = null , $ readable = true ) {
165+ global $ app ;
166+
167+ $ tmp_rec = $ app ->db ->queryAllRecords ("SELECT data from monitor_data WHERE type = 'database_size' ORDER BY created DESC " );
168+ $ monitor_data = array ();
169+ if (is_array ($ tmp_rec )) {
170+ foreach ($ tmp_rec as $ tmp_mon ) {
171+ $ tmp_array = unserialize ($ app ->db ->unquote ($ tmp_mon ['data ' ]));
172+ if (is_array ($ tmp_array )) {
173+ foreach ($ tmp_array as $ key => $ data ) {
174+ if (!isset ($ monitor_data [$ data ['database_name ' ]]['size ' ])) $ monitor_data [$ data ['database_name ' ]]['size ' ] = $ data ['size ' ];
175+ }
176+ }
177+ }
178+ }
179+ //print_r($monitor_data);
180+
181+ // select all databases belonging to client
182+ $ databases = $ app ->db ->queryAllRecords ("SELECT * FROM web_database " .(($ clientid != null )? " WHERE sys_groupid = (SELECT default_group FROM sys_user WHERE client_id=?) " : '' ), $ clientid );
183+
184+ //print_r($databases);
185+ if (is_array ($ databases ) && !empty ($ databases )){
186+ for ($ i =0 ;$ i <sizeof ($ databases );$ i ++){
187+ $ databasename = $ databases [$ i ]['database_name ' ];
188+
189+ $ databases [$ i ]['used ' ] = isset ($ monitor_data [$ databasename ]['size ' ]) ? $ monitor_data [$ databasename ]['size ' ] : 0 ;
190+
191+ $ databases [$ i ]['quota_raw ' ] = $ databases [$ i ]['database_quota ' ];
192+ $ databases [$ i ]['used_raw ' ] = $ databases [$ i ]['used ' ];
193+ $ databases [$ i ]['used_percentage ' ] = (($ databases [$ i ]['database_quota ' ] > 0 ) && ($ databases [$ i ]['used ' ] > 0 )) ? round ($ databases [$ i ]['used ' ] * 100 / $ databases [$ i ]['database_quota ' ]) : 0 ;
194+
195+ if ($ readable ) {
196+ // colours
197+ $ databases [$ i ]['display_colour ' ] = '#000000 ' ;
198+ if ($ databases [$ i ]['database_quota ' ] > 0 ){
199+ $ used_ratio = $ databases [$ i ]['used ' ]/$ databases [$ i ]['database_quota ' ];
200+ } else {
201+ $ used_ratio = 0 ;
202+ }
203+ if ($ used_ratio >= 0.8 ) $ databases [$ i ]['display_colour ' ] = '#fd934f ' ;
204+ if ($ used_ratio >= 1 ) $ databases [$ i ]['display_colour ' ] = '#cc0000 ' ;
205+
206+ if ($ databases [$ i ]['database_quota ' ] == 0 ){
207+ $ databases [$ i ]['database_quota ' ] = $ app ->lng ('unlimited ' );
208+ } else {
209+ $ databases [$ i ]['database_quota ' ] = round ($ databases [$ i ]['database_quota ' ] / 1048576 , 4 ).' MB ' ;
210+ }
211+
212+
213+ if ($ databases [$ i ]['used ' ] < 1544000 ) {
214+ $ databases [$ i ]['used ' ] = round ($ databases [$ i ]['used ' ] / 1024 , 4 ).' KB ' ;
215+ } else {
216+ $ databases [$ i ]['used ' ] = round ($ databases [$ i ]['used ' ] / 1048576 , 4 ).' MB ' ;
217+ }
218+ }
219+ }
220+ }
221+
222+ return $ databases ;
223+ }
224+
163225}
0 commit comments