From b1a6a5a3991cec5cd08873b01376e45d0b247f18 Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Thu, 14 Nov 2013 09:05:33 -0500 Subject: [PATCH] Cleaning up code to match coding guidelines --- server/lib/classes/cron.d/300-quota_notify.inc.php | 718 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 359 insertions(+), 359 deletions(-) diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index c2ce895..57f388f 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -29,106 +29,106 @@ */ class cronjob_quota_notify extends cronjob { - - // job schedule - protected $_schedule = '0 0 * * *'; - - /* this function is optional if it contains no custom code */ - public function onPrepare() { - global $app; - - parent::onPrepare(); - } - - /* this function is optional if it contains no custom code */ - public function onBeforeRun() { - global $app; - - return parent::onBeforeRun(); - } - - public function onRunJob() { - global $app, $conf; - - ######### - // function for sending notification emails - ######### - function send_notification_email($template, $placeholders, $recipients) { - global $conf; - if(!is_array($recipients) || count($recipients) < 1) return false; - if(!is_array($placeholders)) $placeholders = array(); + // job schedule + protected $_schedule = '0 0 * * *'; - if(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt'); - } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt')) { - $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt'); - } elseif(file_exists($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt')) { - $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt'); - } else { - $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_en.txt'); - } + /* this function is optional if it contains no custom code */ + public function onPrepare() { + global $app; - //* get mail headers, subject and body - $mailHeaders = ''; - $mailBody = ''; - $mailSubject = ''; - $inHeader = true; - for($l = 0; $l < count($lines); $l++) { - if($lines[$l] == '') { - $inHeader = false; - continue; - } - if($inHeader == true) { - $parts = explode(':', $lines[$l], 2); - if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]); - unset($parts); - $mailHeaders .= trim($lines[$l]) . "\n"; - } else { - $mailBody .= trim($lines[$l]) . "\n"; - } - } - $mailBody = trim($mailBody); + parent::onPrepare(); + } - //* Replace placeholders - $mailHeaders = strtr($mailHeaders, $placeholders); - $mailSubject = strtr($mailSubject, $placeholders); - $mailBody = strtr($mailBody, $placeholders); + /* this function is optional if it contains no custom code */ + public function onBeforeRun() { + global $app; - for($r = 0; $r < count($recipients); $r++) { - mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); - } + return parent::onBeforeRun(); + } - unset($mailSubject); - unset($mailHeaders); - unset($mailBody); - unset($lines); + public function onRunJob() { + global $app, $conf; - return true; - } + //######## + // function for sending notification emails + //######## + function send_notification_email($template, $placeholders, $recipients) { + global $conf; + + if(!is_array($recipients) || count($recipients) < 1) return false; + if(!is_array($placeholders)) $placeholders = array(); + + if(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_'.$conf['language'].'.txt'); + } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt')) { + $lines = file($conf['rootpath'].'/conf-custom/mail/' . $template . '_en.txt'); + } elseif(file_exists($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt')) { + $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_'.$conf['language'].'.txt'); + } else { + $lines = file($conf['rootpath'].'/conf/mail/' . $template . '_en.txt'); + } + + //* get mail headers, subject and body + $mailHeaders = ''; + $mailBody = ''; + $mailSubject = ''; + $inHeader = true; + for($l = 0; $l < count($lines); $l++) { + if($lines[$l] == '') { + $inHeader = false; + continue; + } + if($inHeader == true) { + $parts = explode(':', $lines[$l], 2); + if(strtolower($parts[0]) == 'subject') $mailSubject = trim($parts[1]); + unset($parts); + $mailHeaders .= trim($lines[$l]) . "\n"; + } else { + $mailBody .= trim($lines[$l]) . "\n"; + } + } + $mailBody = trim($mailBody); + + //* Replace placeholders + $mailHeaders = strtr($mailHeaders, $placeholders); + $mailSubject = strtr($mailSubject, $placeholders); + $mailBody = strtr($mailBody, $placeholders); + + for($r = 0; $r < count($recipients); $r++) { + mail($recipients[$r], $mailSubject, $mailBody, $mailHeaders); + } + + unset($mailSubject); + unset($mailHeaders); + unset($mailBody); + unset($lines); + + return true; + } - ####################################################################################################### - // enforce traffic quota (run only on the "master-server") - ####################################################################################################### + //###################################################################################################### + // enforce traffic quota (run only on the "master-server") + //###################################################################################################### - if ($app->dbmaster == $app->db) { + if ($app->dbmaster == $app->db) { - $global_config = $app->getconf->get_global_config('mail'); + $global_config = $app->getconf->get_global_config('mail'); - $current_month = date('Y-m'); + $current_month = date('Y-m'); - //* Check website traffic quota - $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE (traffic_quota > 0 or traffic_quota_lock = 'y') and (type = 'vhost' OR type = 'vhostsubdomain')"; - $records = $app->db->queryAllRecords($sql); - if(is_array($records)) { - foreach($records as $rec) { + //* Check website traffic quota + $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE (traffic_quota > 0 or traffic_quota_lock = 'y') and (type = 'vhost' OR type = 'vhostsubdomain')"; + $records = $app->db->queryAllRecords($sql); + if(is_array($records)) { + foreach($records as $rec) { - $web_traffic_quota = $rec['traffic_quota']; - $domain = $rec['domain']; + $web_traffic_quota = $rec['traffic_quota']; + $domain = $rec['domain']; - // get the client - /* + // get the client + /* $client_group_id = $rec["sys_groupid"]; $client = $app->db->queryOneRecord("SELECT limit_traffic_quota,parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); $reseller = $app->db->queryOneRecord("SELECT limit_traffic_quota FROM client WHERE client_id = ".intval($client['parent_client_id'])); @@ -137,342 +137,342 @@ $reseller_traffic_quota = intval($reseller['limit_traffic_quota']); */ - //* get the traffic - $tmp = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) As total_traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'"); - $web_traffic = round($tmp['total_traffic_bytes']/1024/1024); + //* get the traffic + $tmp = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) As total_traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'"); + $web_traffic = round($tmp['total_traffic_bytes']/1024/1024); - //* Website is over quota, we will disable it - /*if( ($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) || + //* Website is over quota, we will disable it + /*if( ($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) || ($client_traffic_quota > 0 && $web_traffic > $client_traffic_quota) || ($reseller_traffic_quota > 0 && $web_traffic > $reseller_traffic_quota)) {*/ - if($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) { - $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'y',active = 'n'", 'domain_id', $rec['domain_id']); - $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.',LOGLEVEL_DEBUG); + if($web_traffic_quota > 0 && $web_traffic > $web_traffic_quota) { + $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'y',active = 'n'", 'domain_id', $rec['domain_id']); + $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.', LOGLEVEL_DEBUG); - //* Send traffic notifications - if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) { - - $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root')); - - $recipients = array(); - //* send email to admin - if($global_config['admin_mail'] != '' && $web_config['overtraffic_notify_admin'] == 'y') { - $recipients[] = $global_config['admin_mail']; - } + //* Send traffic notifications + if($rec['traffic_quota_lock'] != 'y' && ($web_config['overtraffic_notify_admin'] == 'y' || $web_config['overtraffic_notify_client'] == 'y')) { - //* Send email to client - if($web_config['overtraffic_notify_client'] == 'y') { - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - if($client['email'] != '') { - $recipients[] = $client['email']; - } - } + $placeholders = array('{domain}' => $rec['domain'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root')); - send_notification_email('web_traffic_notification', $placeholders, $recipients); - } + $recipients = array(); + //* send email to admin + if($global_config['admin_mail'] != '' && $web_config['overtraffic_notify_admin'] == 'y') { + $recipients[] = $global_config['admin_mail']; + } - } else { - //* unlock the website, if traffic is lower then quota - if($rec['traffic_quota_lock'] == 'y') { - $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'n',active = 'y'", 'domain_id', $rec['domain_id']); - $app->log('Traffic quota for '.$rec['domain'].' ok again. Re-enabling website.',LOGLEVEL_DEBUG); - } - } - } - } + //* Send email to client + if($web_config['overtraffic_notify_client'] == 'y') { + $client_group_id = $rec["sys_groupid"]; + $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + if($client['email'] != '') { + $recipients[] = $client['email']; + } + } + + send_notification_email('web_traffic_notification', $placeholders, $recipients); + } + + } else { + //* unlock the website, if traffic is lower then quota + if($rec['traffic_quota_lock'] == 'y') { + $app->dbmaster->datalogUpdate('web_domain', "traffic_quota_lock = 'n',active = 'y'", 'domain_id', $rec['domain_id']); + $app->log('Traffic quota for '.$rec['domain'].' ok again. Re-enabling website.', LOGLEVEL_DEBUG); + } + } + } + } - } + } - ####################################################################################################### - // send website quota warnings by email - ####################################################################################################### + //###################################################################################################### + // send website quota warnings by email + //###################################################################################################### - if ($app->dbmaster == $app->db) { + if ($app->dbmaster == $app->db) { - $global_config = $app->getconf->get_global_config('mail'); + $global_config = $app->getconf->get_global_config('mail'); - //* Check website disk quota - $sql = "SELECT domain_id,sys_groupid,domain,system_user,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain')"; - $records = $app->db->queryAllRecords($sql); - if(is_array($records) && !empty($records)) { + //* Check website disk quota + $sql = "SELECT domain_id,sys_groupid,domain,system_user,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain')"; + $records = $app->db->queryAllRecords($sql); + if(is_array($records) && !empty($records)) { - $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'harddisk_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_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'harddisk_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']))); + } + } - foreach($records as $rec) { + foreach($records as $rec) { - //$web_hd_quota = $rec['hd_quota']; - $domain = $rec['domain']; + //$web_hd_quota = $rec['hd_quota']; + $domain = $rec['domain']; - $username = $rec['system_user']; - $rec['used'] = $monitor_data['user'][$username]['used']; - $rec['soft'] = $monitor_data['user'][$username]['soft']; - $rec['hard'] = $monitor_data['user'][$username]['hard']; - $rec['files'] = $monitor_data['user'][$username]['files']; + $username = $rec['system_user']; + $rec['used'] = $monitor_data['user'][$username]['used']; + $rec['soft'] = $monitor_data['user'][$username]['soft']; + $rec['hard'] = $monitor_data['user'][$username]['hard']; + $rec['files'] = $monitor_data['user'][$username]['files']; - if (!is_numeric($rec['used'])){ - if ($rec['used'][0] > $rec['used'][1]){ - $rec['used'] = $rec['used'][0]; - } else { - $rec['used'] = $rec['used'][1]; - } - } - if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1]; - if (!is_numeric($rec['hard'])) $rec['hard']=$rec['hard'][1]; - if (!is_numeric($rec['files'])) $rec['files']=$rec['files'][1]; + if (!is_numeric($rec['used'])){ + if ($rec['used'][0] > $rec['used'][1]){ + $rec['used'] = $rec['used'][0]; + } else { + $rec['used'] = $rec['used'][1]; + } + } + if (!is_numeric($rec['soft'])) $rec['soft']=$rec['soft'][1]; + if (!is_numeric($rec['hard'])) $rec['hard']=$rec['hard'][1]; + if (!is_numeric($rec['files'])) $rec['files']=$rec['files'][1]; - // used space ratio - if($rec['soft'] > 0){ - $used_ratio = $rec['used']/$rec['soft']; - } else { - $used_ratio = 0; - } + // used space ratio + if($rec['soft'] > 0){ + $used_ratio = $rec['used']/$rec['soft']; + } else { + $used_ratio = 0; + } - $rec['ratio'] = number_format($used_ratio * 100, 2, '.', '').'%'; + $rec['ratio'] = number_format($used_ratio * 100, 2, '.', '').'%'; - if($rec['used'] > 1024) { - $rec['used'] = round($rec['used'] / 1024,2).' MB'; - } else { - if ($rec['used'] != '') $rec['used'] .= ' KB'; - } + if($rec['used'] > 1024) { + $rec['used'] = round($rec['used'] / 1024, 2).' MB'; + } else { + if ($rec['used'] != '') $rec['used'] .= ' KB'; + } - if($rec['soft'] > 1024) { - $rec['soft'] = round($rec['soft'] / 1024,2).' MB'; - } elseif($rec['soft'] == 0){ - $rec['soft'] = '----'; - } else { - $rec['soft'] .= ' KB'; - } + if($rec['soft'] > 1024) { + $rec['soft'] = round($rec['soft'] / 1024, 2).' MB'; + } elseif($rec['soft'] == 0){ + $rec['soft'] = '----'; + } else { + $rec['soft'] .= ' KB'; + } - if($rec['hard'] > 1024) { - $rec['hard'] = round($rec['hard'] / 1024,2).' MB'; - } elseif($rec['hard'] == 0){ - $rec['hard'] = '----'; - } else { - $rec['hard'] .= ' KB'; - } + if($rec['hard'] > 1024) { + $rec['hard'] = round($rec['hard'] / 1024, 2).' MB'; + } elseif($rec['hard'] == 0){ + $rec['hard'] = '----'; + } else { + $rec['hard'] .= ' KB'; + } - // send notifications only if 90% or more of the quota are used - if($used_ratio < 0.9) { - // reset notification date - if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = NULL", 'domain_id', $rec['domain_id']); + // send notifications only if 90% or more of the quota are used + if($used_ratio < 0.9) { + // reset notification date + if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = NULL", 'domain_id', $rec['domain_id']); - // send notification - everything ok again - if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y')) { - $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), - '{used}' => $rec['used'], - '{soft}' => $rec['soft'], - '{hard}' => $rec['hard'], - '{ratio}' => $rec['ratio']); + // send notification - everything ok again + if($rec['last_quota_notification'] && $web_config['overquota_notify_onok'] == 'y' && ($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y')) { + $placeholders = array('{domain}' => $rec['domain'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), + '{used}' => $rec['used'], + '{soft}' => $rec['soft'], + '{hard}' => $rec['hard'], + '{ratio}' => $rec['ratio']); - $recipients = array(); + $recipients = array(); - //* send email to admin - if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') { - $recipients[] = $global_config['admin_mail']; - } + //* send email to admin + if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') { + $recipients[] = $global_config['admin_mail']; + } - //* Send email to client - if($web_config['overquota_notify_client'] == 'y') { - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - if($client['email'] != '') { - $recipients[] = $client['email']; - } - } - send_notification_email('web_quota_ok_notification', $placeholders, $recipients); - } + //* Send email to client + if($web_config['overquota_notify_client'] == 'y') { + $client_group_id = $rec["sys_groupid"]; + $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + if($client['email'] != '') { + $recipients[] = $client['email']; + } + } + send_notification_email('web_quota_ok_notification', $placeholders, $recipients); + } - continue; - } + continue; + } - // could a notification be sent? - $send_notification = false; - if(!$rec['last_quota_notification']) $send_notification = true; // not yet notified - elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true; + // could a notification be sent? + $send_notification = false; + if(!$rec['last_quota_notification']) $send_notification = true; // not yet notified + elseif($web_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $web_config['overquota_notify_freq']) $send_notification = true; - //* Send quota notifications - if(($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y') && $send_notification == true) { - $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = CURDATE()", 'domain_id', $rec['domain_id']); + //* Send quota notifications + if(($web_config['overquota_notify_admin'] == 'y' || $web_config['overquota_notify_client'] == 'y') && $send_notification == true) { + $app->dbmaster->datalogUpdate('web_domain', "last_quota_notification = CURDATE()", 'domain_id', $rec['domain_id']); - $placeholders = array('{domain}' => $rec['domain'], - '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), - '{used}' => $rec['used'], - '{soft}' => $rec['soft'], - '{hard}' => $rec['hard'], - '{ratio}' => $rec['ratio']); + $placeholders = array('{domain}' => $rec['domain'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), + '{used}' => $rec['used'], + '{soft}' => $rec['soft'], + '{hard}' => $rec['hard'], + '{ratio}' => $rec['ratio']); - $recipients = array(); + $recipients = array(); - //* send email to admin - if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') { - $recipients[] = $global_config['admin_mail']; - } + //* send email to admin + if($global_config['admin_mail'] != '' && $web_config['overquota_notify_admin'] == 'y') { + $recipients[] = $global_config['admin_mail']; + } - //* Send email to client - if($web_config['overquota_notify_client'] == 'y') { - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - if($client['email'] != '') { - $recipients[] = $client['email']; - } - } - send_notification_email('web_quota_notification', $placeholders, $recipients); - } - } - } - } + //* Send email to client + if($web_config['overquota_notify_client'] == 'y') { + $client_group_id = $rec["sys_groupid"]; + $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + if($client['email'] != '') { + $recipients[] = $client['email']; + } + } + send_notification_email('web_quota_notification', $placeholders, $recipients); + } + } + } + } - ####################################################################################################### - // send mail quota warnings by email - ####################################################################################################### + //###################################################################################################### + // send mail quota warnings by email + //###################################################################################################### - if ($app->dbmaster == $app->db) { + if ($app->dbmaster == $app->db) { - $global_config = $app->getconf->get_global_config('mail'); - $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); + $global_config = $app->getconf->get_global_config('mail'); + $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); - //* Check email quota - $sql = "SELECT mailuser_id,sys_groupid,email,name,quota,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM mail_user"; - $records = $app->db->queryAllRecords($sql); - if(is_array($records) && !empty($records)) { + //* Check email quota + $sql = "SELECT mailuser_id,sys_groupid,email,name,quota,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM mail_user"; + $records = $app->db->queryAllRecords($sql); + if(is_array($records) && !empty($records)) { - $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']; - } - } - } - } + $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']; + } + } + } + } - foreach($records as $rec) { + foreach($records as $rec) { - $email = $rec['email']; + $email = $rec['email']; - $rec['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0); + $rec['used'] = isset($monitor_data[$email]['used']) ? $monitor_data[$email]['used'] : array(1 => 0); - if (!is_numeric($rec['used'])) $rec['used']=$rec['used'][1]; + if (!is_numeric($rec['used'])) $rec['used']=$rec['used'][1]; - // used space ratio - if($rec['quota'] > 0){ - $used_ratio = $rec['used']/$rec['quota']; - } else { - $used_ratio = 0; - } + // used space ratio + if($rec['quota'] > 0){ + $used_ratio = $rec['used']/$rec['quota']; + } else { + $used_ratio = 0; + } - $rec['ratio'] = number_format($used_ratio * 100, 2, '.', '').'%'; + $rec['ratio'] = number_format($used_ratio * 100, 2, '.', '').'%'; - if($rec['quota'] > 0){ - $rec['quota'] = round($rec['quota'] / 1048576,4).' MB'; - } else { - $rec['quota'] = '----'; - } + if($rec['quota'] > 0){ + $rec['quota'] = round($rec['quota'] / 1048576, 4).' MB'; + } else { + $rec['quota'] = '----'; + } - if($rec['used'] < 1544000) { - $rec['used'] = round($rec['used'] / 1024,4).' KB'; - } else { - $rec['used'] = round($rec['used'] / 1048576,4).' MB'; - } + if($rec['used'] < 1544000) { + $rec['used'] = round($rec['used'] / 1024, 4).' KB'; + } else { + $rec['used'] = round($rec['used'] / 1048576, 4).' MB'; + } - // send notifications only if 90% or more of the quota are used - if($used_ratio < 0.9) { - // reset notification date - if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = NULL", 'mailuser_id', $rec['mailuser_id']); + // send notifications only if 90% or more of the quota are used + if($used_ratio < 0.9) { + // reset notification date + if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = NULL", 'mailuser_id', $rec['mailuser_id']); - // send notification - everything ok again - if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) { - $placeholders = array('{email}' => $rec['email'], - '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), - '{used}' => $rec['used'], - '{name}' => $rec['name'], - '{quota}' => $rec['quota'], - '{ratio}' => $rec['ratio']); + // send notification - everything ok again + if($rec['last_quota_notification'] && $mail_config['overquota_notify_onok'] == 'y' && ($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y')) { + $placeholders = array('{email}' => $rec['email'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), + '{used}' => $rec['used'], + '{name}' => $rec['name'], + '{quota}' => $rec['quota'], + '{ratio}' => $rec['ratio']); - $recipients = array(); - //* send email to admin - if($global_config['admin_mail'] != '' && $mail_config['overquota_notify_admin'] == 'y') { - $recipients[] = $global_config['admin_mail']; - } + $recipients = array(); + //* send email to admin + if($global_config['admin_mail'] != '' && $mail_config['overquota_notify_admin'] == 'y') { + $recipients[] = $global_config['admin_mail']; + } - //* Send email to client - if($mail_config['overquota_notify_client'] == 'y') { - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - if($client['email'] != '') { - $recipients[] = $client['email']; - } - } + //* Send email to client + if($mail_config['overquota_notify_client'] == 'y') { + $client_group_id = $rec["sys_groupid"]; + $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + if($client['email'] != '') { + $recipients[] = $client['email']; + } + } - send_notification_email('mail_quota_ok_notification', $placeholders, $recipients); - } + send_notification_email('mail_quota_ok_notification', $placeholders, $recipients); + } - continue; - } + continue; + } - //* Send quota notifications - // could a notification be sent? - $send_notification = false; - if(!$rec['last_quota_notification']) $send_notification = true; // not yet notified - elseif($mail_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $mail_config['overquota_notify_freq']) $send_notification = true; + //* Send quota notifications + // could a notification be sent? + $send_notification = false; + if(!$rec['last_quota_notification']) $send_notification = true; // not yet notified + elseif($mail_config['overquota_notify_freq'] > 0 && $rec['notified_before'] >= $mail_config['overquota_notify_freq']) $send_notification = true; - if(($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y') && $send_notification == true) { - $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = CURDATE()", 'mailuser_id', $rec['mailuser_id']); + if(($mail_config['overquota_notify_admin'] == 'y' || $mail_config['overquota_notify_client'] == 'y') && $send_notification == true) { + $app->dbmaster->datalogUpdate('mail_user', "last_quota_notification = CURDATE()", 'mailuser_id', $rec['mailuser_id']); - $placeholders = array('{email}' => $rec['email'], - '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), - '{used}' => $rec['used'], - '{name}' => $rec['name'], - '{quota}' => $rec['quota'], - '{ratio}' => $rec['ratio']); + $placeholders = array('{email}' => $rec['email'], + '{admin_mail}' => ($global_config['admin_mail'] != ''? $global_config['admin_mail'] : 'root'), + '{used}' => $rec['used'], + '{name}' => $rec['name'], + '{quota}' => $rec['quota'], + '{ratio}' => $rec['ratio']); - $recipients = array(); - //* send email to admin - if($global_config['admin_mail'] != '' && $mail_config['overquota_notify_admin'] == 'y') { - $recipients[] = $global_config['admin_mail']; - } + $recipients = array(); + //* send email to admin + if($global_config['admin_mail'] != '' && $mail_config['overquota_notify_admin'] == 'y') { + $recipients[] = $global_config['admin_mail']; + } - //* Send email to client - if($mail_config['overquota_notify_client'] == 'y') { - $client_group_id = $rec["sys_groupid"]; - $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); - if($client['email'] != '') { - $recipients[] = $client['email']; - } - } + //* Send email to client + if($mail_config['overquota_notify_client'] == 'y') { + $client_group_id = $rec["sys_groupid"]; + $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + if($client['email'] != '') { + $recipients[] = $client['email']; + } + } - send_notification_email('mail_quota_notification', $placeholders, $recipients); - } - } - } - } - - - parent::onRunJob(); - } - - /* this function is optional if it contains no custom code */ - public function onAfterRun() { - global $app; - - parent::onAfterRun(); - } + send_notification_email('mail_quota_notification', $placeholders, $recipients); + } + } + } + } + + + parent::onRunJob(); + } + + /* this function is optional if it contains no custom code */ + public function onAfterRun() { + global $app; + + parent::onAfterRun(); + } } -- Gitblit v1.9.1