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