Marius Cramer
2013-11-14 7fe908c50c8dbc5cc05f571dbe11d66141caacd4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
 
class dashlet_mailquota {
 
    function show() {
        global $app, $conf;
 
        //* Loading Template
        $app->uses('tpl');
 
        $tpl = new tpl;
        $tpl->newTemplate("dashlets/templates/mailquota.htm");
 
        $wb = array();
        $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_mailquota.lng';
        if(is_file($lng_file)) include $lng_file;
        $tpl->setVar($wb);
 
        $tmp_rec =  $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC");
        $monitor_data = array();
        if(is_array($tmp_rec)) {
            foreach ($tmp_rec as $tmp_mon) {
                //$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data'])));
                $tmp_array = unserialize($app->db->unquote($tmp_mon['data']));
                if(is_array($tmp_array)) {
                    foreach($tmp_array as $username => $data) {
                        if(!$monitor_data[$username]['used']) $monitor_data[$username]['used'] = $data['used'];
                    }
                }
            }
        }
        //print_r($monitor_data);
        if($_SESSION["s"]["user"]["typ"] != 'admin'){
            $sql_where = " AND sys_groupid = ".$_SESSION['s']['user']['default_group'];
        }
 
        $has_mailquota = false;
        // select email accounts belonging to client
        $emails = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE 1".$sql_where);
        //print_r($emails);
        if(is_array($emails) && !empty($emails)){
            for($i=0;$i<sizeof($emails);$i++){
                $email = $emails[$i]['email'];
 
                $emails[$i]['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0);
 
                if (!is_numeric($emails[$i]['used'])) $emails[$i]['used']=$emails[$i]['used'][1];
 
                // colours
                $emails[$i]['display_colour'] = '#000000';
                if($emails[$i]['quota'] > 0){
                    $used_ratio = $emails[$i]['used']/$emails[$i]['quota'];
                } else {
                    $used_ratio = 0;
                }
                if($used_ratio >= 0.8) $emails[$i]['display_colour'] = '#fd934f';
                if($used_ratio >= 1) $emails[$i]['display_colour'] = '#cc0000';
 
                if($emails[$i]['quota'] == 0){
                    $emails[$i]['quota'] = $app->lng('unlimited');
                } else {
                    $emails[$i]['quota'] = round($emails[$i]['quota'] / 1048576, 4).' MB';
                }
 
 
                if($emails[$i]['used'] < 1544000) {
                    $emails[$i]['used'] = round($emails[$i]['used'] / 1024, 4).' KB';
                } else {
                    $emails[$i]['used'] = round($emails[$i]['used'] / 1048576, 4).' MB';
                }
 
            }
            $has_mailquota = true;
            $tpl->setloop('mailquota', $emails);
        }
        //print_r($sites);
 
        $tpl->setVar('has_mailquota', $has_mailquota);
 
        return $tpl->grab();
 
 
    }
 
}
 
 
 
 
 
 
 
 
?>