From e9a084ee08b79485e420325b020bde26addab65f Mon Sep 17 00:00:00 2001 From: Dominik <info@profi-webdesign.com> Date: Tue, 20 Jan 2015 16:06:49 -0500 Subject: [PATCH] added Database-Quota Remote-Funktion added Database-Quota dashlet --- interface/lib/classes/quota_lib.inc.php | 62 +++++++++++++++++++++++++++++++ 1 files changed, 62 insertions(+), 0 deletions(-) diff --git a/interface/lib/classes/quota_lib.inc.php b/interface/lib/classes/quota_lib.inc.php index 613c524..da3c7c6 100644 --- a/interface/lib/classes/quota_lib.inc.php +++ b/interface/lib/classes/quota_lib.inc.php @@ -160,4 +160,66 @@ return $emails; } + + public function get_databasequota_data($clientid = null, $readable = true) { + global $app; + + $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'database_size' ORDER BY created DESC"); + $monitor_data = array(); + if(is_array($tmp_rec)) { + foreach ($tmp_rec as $tmp_mon) { + $tmp_array = unserialize($app->db->unquote($tmp_mon['data'])); + if(is_array($tmp_array)) { + foreach($tmp_array as $key => $data) { + if(!isset($monitor_data[$data['database_name']]['size'])) $monitor_data[$data['database_name']]['size'] = $data['size']; + } + } + } + } + //print_r($monitor_data); + + // select all databases belonging to client + $databases = $app->db->queryAllRecords("SELECT * FROM web_database".(($clientid != null)? " WHERE sys_groupid = (SELECT default_group FROM sys_user WHERE client_id=?)" : ''), $clientid); + + //print_r($databases); + if(is_array($databases) && !empty($databases)){ + for($i=0;$i<sizeof($databases);$i++){ + $databasename = $databases[$i]['database_name']; + + $databases[$i]['used'] = isset($monitor_data[$databasename]['size']) ? $monitor_data[$databasename]['size'] : 0; + + $databases[$i]['quota_raw'] = $databases[$i]['database_quota']; + $databases[$i]['used_raw'] = $databases[$i]['used']; + $databases[$i]['used_percentage'] = (($databases[$i]['database_quota'] > 0) && ($databases[$i]['used'] > 0)) ? round($databases[$i]['used'] * 100 / $databases[$i]['database_quota']) : 0; + + if ($readable) { + // colours + $databases[$i]['display_colour'] = '#000000'; + if($databases[$i]['database_quota'] > 0){ + $used_ratio = $databases[$i]['used']/$databases[$i]['database_quota']; + } else { + $used_ratio = 0; + } + if($used_ratio >= 0.8) $databases[$i]['display_colour'] = '#fd934f'; + if($used_ratio >= 1) $databases[$i]['display_colour'] = '#cc0000'; + + if($databases[$i]['database_quota'] == 0){ + $databases[$i]['database_quota'] = $app->lng('unlimited'); + } else { + $databases[$i]['database_quota'] = round($databases[$i]['database_quota'] / 1048576, 4).' MB'; + } + + + if($databases[$i]['used'] < 1544000) { + $databases[$i]['used'] = round($databases[$i]['used'] / 1024, 4).' KB'; + } else { + $databases[$i]['used'] = round($databases[$i]['used'] / 1048576, 4).' MB'; + } + } + } + } + + return $databases; + } + } \ No newline at end of file -- Gitblit v1.9.1