From 9db56726bed5301ca9df51e56c3c3ffda0117464 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 7 Jun 2012 12:18:32 +0000
Subject: [PATCH] Implemented: FS#2107 - Add option to disable mailbox quota
 statistics

---
 install/tpl/server.ini.master                             | 1 +
 interface/web/admin/form/server_config.tform.php          | 6 ++++++
 interface/web/admin/lib/lang/en_server_config.lng         | 1 +
 interface/web/admin/templates/server_config_mail_edit.htm | 6 ++++++
 server/mods-available/monitor_core_module.inc.php         | 6 +++++-
 5 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 008cfc9f50..567eb32d92 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -31,6 +31,7 @@ relayhost_user=
 relayhost_password=
 mailbox_size_limit=0
 message_size_limit=0
+mailbox_quota_stats=y
 realtime_blackhole_list=
 
 [getmail]
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 6af44981c4..1ac88b95a1 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -292,6 +292,12 @@ $form["tabs"]['mail'] = array(
 			'width' => '10',
 			'maxlength' => '15'
 		),
+		'mailbox_quota_stats' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n',1 => 'y')
+		),
 		'realtime_blackhole_list' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 0d237bf0f1..cca491ee1a 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -163,4 +163,5 @@ $wb["php_settings_txt"] = 'PHP Settings';
 $wb["apps_vhost_settings_txt"] = 'Apps Vhost Settings';
 $wb["awstats_settings_txt"] = 'AWStats Settings';
 $wb["firewall_txt"] = 'Firewall';
+$wb["mailbox_quota_stats_txt"] = 'Mailbox quota statistic';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_config_mail_edit.htm b/interface/web/admin/templates/server_config_mail_edit.htm
index 11399b319e..cb67f29ac4 100644
--- a/interface/web/admin/templates/server_config_mail_edit.htm
+++ b/interface/web/admin/templates/server_config_mail_edit.htm
@@ -71,6 +71,12 @@
         <label for="message_size_limit">{tmpl_var name='message_size_limit_txt'}</label>
         <input name="message_size_limit" id="message_size_limit" value="{tmpl_var name='message_size_limit'}" size="10" maxlength="15" type="text" class="textInput formLengthLimit" />&nbsp;MB
       </div>
+	  <div class="ctrlHolder">
+		<p class="label">{tmpl_var name='mailbox_quota_stats_txt'}</p>
+			<div class="multiField">
+				{tmpl_var name='mailbox_quota_stats'}
+			</div>
+	  </div>
       <div class="ctrlHolder">
         <label for="realtime_blackhole_list">{tmpl_var name='realtime_blackhole_list_txt'}</label>
         <input name="realtime_blackhole_list" id="realtime_blackhole_list" value="{tmpl_var name='realtime_blackhole_list'}" size="40" maxlength="255" type="text" class="textInput" />&nbsp;{tmpl_var name='realtime_blackhole_list_note_txt'}
diff --git a/server/mods-available/monitor_core_module.inc.php b/server/mods-available/monitor_core_module.inc.php
index fa1b189f3a..2bc95d8564 100644
--- a/server/mods-available/monitor_core_module.inc.php
+++ b/server/mods-available/monitor_core_module.inc.php
@@ -117,7 +117,7 @@ class monitor_core_module {
 	}
 
     private function _monitorEmailQuota() {
-        global $app;
+        global $app, $conf;
 
         /*
 		 *  This monitoring is expensive, so do it only every 15 minutes
@@ -125,6 +125,10 @@ class monitor_core_module {
 		$min = @date('i');
 		if ($min % 15 != 0) return;
 		
+		$app->uses('getconf');
+		$mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail');
+		if($mail_config['mailbox_quota_stats'] == 'n') return;
+		
 		
 		/*
          * First we get the Monitoring-data from the tools
-- 
GitLab