diff --git a/actions/admin/settings/100.panel.php b/actions/admin/settings/100.panel.php
index 5082a18e..bc7f00a9 100644
--- a/actions/admin/settings/100.panel.php
+++ b/actions/admin/settings/100.panel.php
@@ -64,7 +64,7 @@ return array(
'type' => 'option',
'default' => 'Manual',
'option_mode' => 'one',
- 'option_options' => array('Manual' => 'Manual', 'Dropdown' => 'Dropdown'),
+ 'option_options' => array('Manual' => $lng['serversettings']['manual'], 'Dropdown' => $lng['serversettings']['dropdown']),
'save_method' => 'storeSettingField',
),
'panel_adminmail' => array(
diff --git a/actions/admin/settings/120.system.php b/actions/admin/settings/120.system.php
index 8009fb48..1f766f8d 100644
--- a/actions/admin/settings/120.system.php
+++ b/actions/admin/settings/120.system.php
@@ -113,6 +113,35 @@ return array(
'type' => 'hidden',
'default' => 'www-data',
),
+ 'system_report_enable' => array(
+ 'label' => $lng['serversettings']['report']['report'],
+ 'settinggroup' => 'system',
+ 'varname' => 'report_enable',
+ 'type' => 'bool',
+ 'default' => true,
+ 'cronmodule' => 'froxlor/reports',
+ 'save_method' => 'storeSettingField',
+ ),
+ 'system_report_webmax' => array(
+ 'label' => $lng['serversettings']['report']['webmax'],
+ 'settinggroup' => 'system',
+ 'varname' => 'report_webmax',
+ 'type' => 'int',
+ 'int_min' => 1,
+ 'int_max' => 99,
+ 'default' => 90,
+ 'save_method' => 'storeSettingField',
+ ),
+ 'system_report_trafficmax' => array(
+ 'label' => $lng['serversettings']['report']['trafficmax'],
+ 'settinggroup' => 'system',
+ 'varname' => 'report_trafficmax',
+ 'type' => 'int',
+ 'int_min' => 1,
+ 'int_max' => 99,
+ 'default' => 90,
+ 'save_method' => 'storeSettingField',
+ ),
'system_debug_cron' => array(
'label' => $lng['serversettings']['cron']['debug'],
'settinggroup' => 'system',
diff --git a/admin_templates.php b/admin_templates.php
index 4ebbb4ad..bd25a008 100644
--- a/admin_templates.php
+++ b/admin_templates.php
@@ -48,7 +48,8 @@ elseif(isset($_GET['id']))
$available_templates = array(
'createcustomer',
'pop_success',
- 'trafficninetypercent',
+ 'trafficmaxpercent',
+ 'diskmaxpercent',
'new_ticket_by_customer',
'new_ticket_for_customer',
'new_ticket_by_staff',
diff --git a/install/froxlor.sql b/install/froxlor.sql
index c2e352ab..52a84054 100644
--- a/install/froxlor.sql
+++ b/install/froxlor.sql
@@ -462,7 +462,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
-INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.16');
+INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.17-svn1');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
@@ -611,6 +611,9 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (170, 'phpfpm', 'enabled_ownvhost', '0');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (171, 'phpfpm', 'vhost_httpuser', 'froxlorlocal');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (172, 'phpfpm', 'vhost_httpgroup', 'froxlorlocal');
+INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (173, 'system', 'report_enable', '1');
+INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (174, 'system', 'report_webmax', '90');
+INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (175, 'system', 'report_trafficmax', '90');
# --------------------------------------------------------
@@ -1019,6 +1022,7 @@ INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`,
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (5, 'froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic');
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (6, 'froxlor/ticket', 'cron_used_tickets_reset.php', '1 DAY', '1', 'cron_ticketsreset');
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (7, 'froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '1', 'cron_ticketarchive');
+INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES (8, 'froxlor/reports', 'cron_usage_report.php', '1 DAY', '1', 'cron_usage_report');
# --------------------------------------------------------
diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php
index 09a2f39d..a2566938 100644
--- a/install/updates/froxlor/0.9/update_0.9.inc.php
+++ b/install/updates/froxlor/0.9/update_0.9.inc.php
@@ -192,7 +192,7 @@ if(isFroxlorVersion('0.9-r1'))
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('spf', 'spf_entry', '@ IN TXT \"v=spf1 a mx -all\"');");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'froxlor_graphic' WHERE `varname` = 'syscp_graphic'");
if(isset($settings['admin']['syscp_graphic'])
- && $settings['admin']['syscp_graphic'] != ''
+ && $settings['admin']['syscp_graphic'] != ''
){
$settings['admin']['froxlor_graphic'] = $settings['admin']['syscp_graphic'];
}
@@ -305,8 +305,8 @@ if(isFroxlorVersion('0.9.1'))
$result = $db->query_first("SELECT MAX(`guid`) as `latestguid` FROM `".TABLE_PANEL_CUSTOMERS."`");
if (isset($result['latestguid'])
- && (int)$result['latestguid'] > 0
- && $result['latestguid'] != $settings['system']['lastguid']
+ && (int)$result['latestguid'] > 0
+ && $result['latestguid'] != $settings['system']['lastguid']
) {
checkLastGuid();
lastStepStatus(1, 'fixed');
@@ -411,7 +411,7 @@ if(isFroxlorVersion('0.9.4'))
* To not confuse Froxlor, we just update old settings.
*/
if(isset($settings['system']['awstats_path'])
- && $settings['system']['awstats_path'] != ''
+ && $settings['system']['awstats_path'] != ''
) {
showUpdateStep("Updating awstats path setting");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/usr/bin/' WHERE `settinggroup` = 'system' AND `varname` = 'awstats_path';");
@@ -425,7 +425,7 @@ if(isFroxlorVersion('0.9.4'))
}
if(isset($settings['system']['awstats_domain_file'])
- && $settings['system']['awstats_domain_file'] != ''
+ && $settings['system']['awstats_domain_file'] != ''
) {
showUpdateStep("Updating awstats configuration path setting");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'awstats_conf' WHERE `varname` = 'awstats_domain_file';");
@@ -543,28 +543,28 @@ if(isFroxlorVersion('0.9.6-svn2'))
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'enabled', '1');");
if(isset($_POST['update_deferr_500'])
- && trim($_POST['update_deferr_500']) != ''
+ && trim($_POST['update_deferr_500']) != ''
) {
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err500', '".$db->escape($_POST['update_deferr_500'])."');");
$err500 = true;
}
if(isset($_POST['update_deferr_401'])
- && trim($_POST['update_deferr_401']) != ''
+ && trim($_POST['update_deferr_401']) != ''
) {
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err401', '".$db->escape($_POST['update_deferr_401'])."');");
$err401 = true;
}
if(isset($_POST['update_deferr_403'])
- && trim($_POST['update_deferr_403']) != ''
+ && trim($_POST['update_deferr_403']) != ''
) {
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err403', '".$db->escape($_POST['update_deferr_403'])."');");
$err403 = true;
}
if(isset($_POST['update_deferr_404'])
- && trim($_POST['update_deferr_404']) != ''
+ && trim($_POST['update_deferr_404']) != ''
) {
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('defaultwebsrverrhandler', 'err404', '".$db->escape($_POST['update_deferr_404'])."');");
$err404 = true;
@@ -749,7 +749,7 @@ if(isFroxlorVersion('0.9.7-svn2'))
showUpdateStep("Updating database tables");
$db->query("ALTER TABLE `redirect_codes` ADD `desc` varchar(200) NOT NULL AFTER `code`;");
lastStepStatus(0);
-
+
showUpdateStep("Updating field-values");
$db->query("UPDATE `redirect_codes` SET `desc` = 'rc_default' WHERE `code` = '---';");
$db->query("UPDATE `redirect_codes` SET `desc` = 'rc_movedperm' WHERE `code` = '301';");
@@ -798,10 +798,10 @@ if(isFroxlorVersion('0.9.9-svn1'))
if(isFroxlorVersion('0.9.9'))
{
showUpdateStep("Updating from 0.9.9 to 0.9.10-svn1", false);
-
+
showUpdateStep("Checking whether you are missing any settings", false);
$nonefound = true;
-
+
$update_httpuser = isset($_POST['update_httpuser']) ? $_POST['update_httpuser'] : false;
$update_httpgroup = isset($_POST['update_httpgroup']) ? $_POST['update_httpgroup'] : false;
@@ -829,7 +829,7 @@ if(isFroxlorVersion('0.9.9'))
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'debug_cron', '0');");
lastStepStatus(0);
}
-
+
if($nonefound) {
showUpdateStep("No missing settings found");
lastStepStatus(0);
@@ -841,7 +841,7 @@ if(isFroxlorVersion('0.9.9'))
if(isFroxlorVersion('0.9.10-svn1'))
{
showUpdateStep("Updating from 0.9.10-svn1 to 0.9.10-svn2", false);
-
+
showUpdateStep("Updating database table definition for panel_databases");
$db->query("ALTER TABLE `" . TABLE_PANEL_DATABASES . "` ADD `apsdb` tinyint(1) NOT NULL default '0' AFTER `dbserver`;");
lastStepStatus(0);
@@ -852,7 +852,7 @@ if(isFroxlorVersion('0.9.10-svn1'))
openRootDB();
$result = $db_root->query("SHOW DATABASES;");
while($row = $db_root->fetch_array($result))
- {
+ {
if(preg_match('/^web([0-9]+)aps([0-9]+)$/', $row['Database'], $matches))
{
$cid = $matches[1];
@@ -945,7 +945,7 @@ if(isFroxlorVersion('0.9.11'))
if($update_fcgid_httpgroup == '') {
$update_fcgid_httpgroup = 'froxlorlocal';
}
-
+
showUpdateStep("Adding new settings");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_ownvhost', '".$db->escape($update_fcgid_ownvhost)."');");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_httpuser', '".$db->escape($update_fcgid_httpuser)."');");
@@ -965,7 +965,7 @@ if(isFroxlorVersion('0.9.12-svn1'))
if($update_perl_suexecpath == '') {
$update_perl_suexecpath = '/var/www/cgi-bin/';
}
-
+
showUpdateStep("Adding new settings for perl/CGI");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('perl', 'suexecworkaround', '".$db->escape($update_perl_suexecworkaround)."');");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('perl', 'suexecpath', '".$db->escape($update_perl_suexecpath)."');");
@@ -988,8 +988,8 @@ if(isFroxlorVersion('0.9.12-svn2'))
if(isFroxlorVersion('0.9.12-svn3'))
{
showUpdateStep("Updating from 0.9.12-svn3 to 0.9.12-svn4", false);
-
- $update_awstats_awstatspath = isset($_POST['update_awstats_awstatspath']) ? makeCorrectDir($_POST['update_awstats_awstatspath']) : $settings['system']['awstats_path'];
+
+ $update_awstats_awstatspath = isset($_POST['update_awstats_awstatspath']) ? makeCorrectDir($_POST['update_awstats_awstatspath']) : $settings['system']['awstats_path'];
showUpdateStep("Adding new settings for awstats");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_awstatspath', '".$db->escape($update_awstats_awstatspath)."');");
@@ -1000,7 +1000,7 @@ if(isFroxlorVersion('0.9.12-svn3'))
if(isFroxlorVersion('0.9.12-svn4'))
{
- showUpdateStep("Updating from 0.9.12-svn4 to 0.9.12-svn5", false);
+ showUpdateStep("Updating from 0.9.12-svn4 to 0.9.12-svn5", false);
showUpdateStep("Setting ticket-usage-reset cronjob interval to 1 day");
$db->query("UPDATE `cronjobs_run` SET `interval`='1 DAY' WHERE `cronfile`='cron_used_tickets_reset.php';");
@@ -1011,7 +1011,7 @@ if(isFroxlorVersion('0.9.12-svn4'))
if(isFroxlorVersion('0.9.12-svn5'))
{
- showUpdateStep("Updating from 0.9.12-svn5 to 0.9.12-svn6", false);
+ showUpdateStep("Updating from 0.9.12-svn5 to 0.9.12-svn6", false);
showUpdateStep("Adding new field to table 'panel_htpasswds'");
$db->query("ALTER TABLE `".TABLE_PANEL_HTPASSWDS."` ADD `authname` varchar(255) NOT NULL default 'Restricted Area' AFTER `password`;");
@@ -1036,12 +1036,12 @@ if(isFroxlorVersion('0.9.12'))
$db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `aps_packages_used`;");
$db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;");
lastStepStatus(0);
-
+
showUpdateStep("Adding new fields to customer-table");
$db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder` int(5) NOT NULL default '0' AFTER `perlenabled`;");
$db->query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` ADD `email_autoresponder_used` int(5) NOT NULL default '0' AFTER `email_autoresponder`;");
lastStepStatus(0);
-
+
if((int)$settings['autoresponder']['autoresponder_active'] == 1)
{
$update_autoresponder_default = isset($_POST['update_autoresponder_default']) ? intval_ressource($_POST['update_autoresponder_default']) : 0;
@@ -1077,7 +1077,7 @@ if(isFroxlorVersion('0.9.13'))
{
showUpdateStep("Updating from 0.9.13 to 0.9.13.1 final", false);
- $update_defaultini_ownvhost = isset($_POST['update_defaultini_ownvhost']) ? (int)$_POST['update_defaultini_ownvhost'] : 1;
+ $update_defaultini_ownvhost = isset($_POST['update_defaultini_ownvhost']) ? (int)$_POST['update_defaultini_ownvhost'] : 1;
showUpdateStep("Adding settings for Froxlor-vhost's PHP-configuration");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'mod_fcgid_defaultini_ownvhost', '".(int)$update_defaultini_ownvhost."');");
@@ -1100,7 +1100,7 @@ if(isFroxlorVersion('0.9.14-svn1'))
if(isFroxlorVersion('0.9.13.1'))
{
showUpdateStep("Updating from 0.9.13.1 to 0.9.14-svn2", false);
-
+
if($settings['ticket']['enabled'] == '1')
{
showUpdateStep("Setting INTERVAL for used-tickets cronjob");
@@ -1114,7 +1114,7 @@ if(isFroxlorVersion('0.9.14-svn2'))
{
showUpdateStep("Updating from 0.9.14-svn2 to 0.9.14-svn3", false);
- $update_awstats_icons = isset($_POST['update_awstats_icons']) ? makeCorrectDir($_POST['update_awstats_icons']) : $settings['system']['awstats_icons'];
+ $update_awstats_icons = isset($_POST['update_awstats_icons']) ? makeCorrectDir($_POST['update_awstats_icons']) : $settings['system']['awstats_icons'];
showUpdateStep("Adding AWStats icons path to the settings");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_icons', '".$db->escape($update_awstats_icons)."');");
@@ -1127,7 +1127,7 @@ if(isFroxlorVersion('0.9.14-svn3'))
{
showUpdateStep("Updating from 0.9.14-svn3 to 0.9.14-svn4", false);
- $update_ssl_cert_chainfile = isset($_POST['update_ssl_cert_chainfile']) ? $_POST['update_ssl_cert_chainfile'] : '';
+ $update_ssl_cert_chainfile = isset($_POST['update_ssl_cert_chainfile']) ? $_POST['update_ssl_cert_chainfile'] : '';
if($update_ssl_cert_chainfile != '')
{
@@ -1253,7 +1253,7 @@ if(isFroxlorVersion('0.9.14-svn10'))
if(isFroxlorVersion('0.9.14'))
{
showUpdateStep("Updating from 0.9.14 to 0.9.15-svn1", false);
-
+
showUpdateStep("Adding new settings for Nginx support");
$db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'nginx_php_backend', '127.0.0.1:8888')");
$db->query("INSERT INTO `".TABLE_PANEL_SETTINGS."` (`settinggroup`, `varname`, `value`) VALUES ('system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock')");
@@ -1284,7 +1284,7 @@ if(isFroxlorVersion('0.9.15'))
$update_phpfpm_pm = isset($_POST['update_phpfpm_pm']) ? $_POST['update_phpfpm_pm'] : 'static';
$update_phpfpm_max_children = isset($_POST['update_phpfpm_max_children']) ? (int)$_POST['update_phpfpm_max_children'] : '1';
$update_phpfpm_max_requests = isset($_POST['update_phpfpm_max_requests']) ? (int)$_POST['update_phpfpm_max_requests'] : '0';
-
+
if($update_phpfpm_pm == 'dynamic')
{
$update_phpfpm_start_servers = isset($_POST['update_phpfpm_start_servers']) ? (int)$_POST['update_phpfpm_start_servers'] : '20';
@@ -1304,7 +1304,7 @@ if(isFroxlorVersion('0.9.15'))
if($update_phpfpm_reload == '') {
$update_phpfpm_reload = '/etc/init.d/php-fpm restart';
}
-
+
showUpdateStep("Adding new settings for PHP-FPM #1");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'enabled', '".(int)$update_phpfpm_enabled."');");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('phpfpm', 'configdir', '".$db->escape($update_phpfpm_configdir)."');");
@@ -1348,8 +1348,44 @@ if(isFroxlorVersion('0.9.16-svn1'))
if(isFroxlorVersion('0.9.16-svn2'))
{
- showUpdateStep("Updating from 0.9.16-svn2 to 0.9.16 final");
- lastStepStatus(0);
+ showUpdateStep("Updating from 0.9.16-svn2 to 0.9.16 final");
+ lastStepStatus(0);
- updateToVersion('0.9.16');
+ updateToVersion('0.9.16');
+}
+
+if(isFroxlorVersion('0.9.16'))
+{
+ showUpdateStep("Updating from 0.9.16 to 0.9.17-svn1", false);
+
+ $update_system_report_enable = isset($_POST['update_system_report_enable']) ? (int)$_POST['update_system_report_enable'] : '1';
+ $update_system_report_webmax = isset($_POST['update_system_report_webmax']) ? (int)$_POST['update_system_report_webmax'] : '90';
+ $update_system_report_trafficmax = isset($_POST['update_system_report_trafficmax']) ? (int)$_POST['update_system_report_trafficmax'] : '90';
+
+ showUpdateStep("Adding new settings for web- and traffic-reporting");
+ $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_enable', '".(int)$update_system_report_enable."');");
+ $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_webmax', '".(int)$update_system_report_webmax."');");
+ $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'report_trafficmax', '".(int)$update_system_report_trafficmax."');");
+ lastStepStatus(0);
+
+ showUpdateStep("Adding new cron-module for web- and traffic-reporting");
+ $clastrun = mktime(6, 0, 0, date('m'), date('d') - 1, date('Y'));
+ $db->query("INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET `module`='froxlor/reports', `cronfile`='cron_usage_report.php', `lastrun`='".(int)$clastrun."', `interval`='1 DAY', `isactive`='".(int)$update_system_report_enable."', `desc_lng_key`='cron_usage_report';");
+ lastStepStatus(0);
+
+ showUpdateStep("Updating various database-fields");
+ $db->query("DELETE FROM `" . TABLE_PANEL_SETTINGS . "` WHERE `settinggroup`='system' AND `varname`='last_traffic_report_run';");
+ $check = $db->query_first("SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname`='trafficninetypercent_subject';");
+ if(isset($check['varname']) && $check['varname'] == 'trafficninetypercent_subject')
+ {
+ $db->query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_subject' WHERE `varname`='trafficninetypercent_subject';");
+ }
+ $check = $db->query_first("SELECT `varname` FROM `" . TABLE_PANEL_TEMPLATES . "` WHERE `varname`='trafficninetypercent_mailbody';");
+ if(isset($check['varname']) && $check['varname'] == 'trafficninetypercent_mailbody')
+ {
+ $db->query("UPDATE `" . TABLE_PANEL_TEMPLATES . "` SET `varname` = 'trafficmaxpercent_mailbody' WHERE `varname`='trafficninetypercent_mailbody';");
+ }
+ lastStepStatus(0);
+
+ updateToVersion('0.9.17-svn1');
}
diff --git a/install/updates/preconfig/0.9/preconfig_0.9.inc.php b/install/updates/preconfig/0.9/preconfig_0.9.inc.php
index 37ff8de5..a29cd1c2 100644
--- a/install/updates/preconfig/0.9/preconfig_0.9.inc.php
+++ b/install/updates/preconfig/0.9/preconfig_0.9.inc.php
@@ -401,4 +401,18 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
}
}
+
+ if(versionInUpdate($current_version, '0.9.17-svn1'))
+ {
+ $has_preconfig = true;
+ $description = 'Select if you want to enable the web- and traffic-reports';
+ $question = 'Enable?: ';
+ $question.= makeyesno('update_system_report_enable', '1', '0', '1').'
';
+ $question.= 'If \'yes\', please specify a percentage value for web- and traffic when reports are to be sent:
';
+ $question.= 'Webusage warning level: ';
+ $question.= '
';
+ $question.= 'Traffic warning level: ';
+ $question.= '
';
+ eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
+ }
}
diff --git a/lib/tables.inc.php b/lib/tables.inc.php
index 02e5ea2b..e3bb28ec 100644
--- a/lib/tables.inc.php
+++ b/lib/tables.inc.php
@@ -71,7 +71,7 @@ define('PACKAGE_ENABLED', 2);
// VERSION INFO
-$version = '0.9.16';
+$version = '0.9.17-svn1';
$dbversion = '2';
$branding = '';
diff --git a/lng/english.lng.php b/lng/english.lng.php
index 4bf17c0b..16310836 100644
--- a/lng/english.lng.php
+++ b/lng/english.lng.php
@@ -502,11 +502,8 @@ $lng['panel']['pathDescriptionEx'] = '
If you want a redirect to anot
// ADDED IN 1.2.16-svn6
-$lng['mails']['trafficninetypercent']['mailbody'] = 'Dear {NAME},\n\nyou used {TRAFFICUSED} MB of your available {TRAFFIC} MB of traffic.\nThis is more than 90%.\n\nYours sincerely, the Froxlor-Team';
-$lng['mails']['trafficninetypercent']['subject'] = 'Reaching your traffic limit';
-$lng['admin']['templates']['trafficninetypercent'] = 'Notification mail for customers when ninety percent of traffic is exhausted';
-$lng['admin']['templates']['TRAFFIC'] = 'Replaced with the traffic, which was assigned to the customer.';
-$lng['admin']['templates']['TRAFFICUSED'] = 'Replaced with the traffic, which was exhausted by the customer.';
+$lng['admin']['templates']['TRAFFIC'] = 'Replaced with the traffic in mB, which was assigned to the customer.';
+$lng['admin']['templates']['TRAFFICUSED'] = 'Replaced with the traffic in MB, which was exhausted by the customer.';
// ADDED IN 1.2.16-svn7
@@ -1547,3 +1544,20 @@ $lng['phpfpm']['vhost_httpuser'] = 'Local user to use for PHP-FPM (Froxlor vHost
$lng['phpfpm']['vhost_httpgroup'] = 'Local group to use for PHP-FPM (Froxlor vHost)';
$lng['phpfpm']['ownvhost']['title'] = 'Enable PHP-FPM for the Froxlor vHost';
$lng['phpfpm']['ownvhost']['description'] = 'If enabled, Froxlor will also be running under a local user';
+
+// ADDED IN FROXLOR 0.9.17
+$lng['crondesc']['cron_usage_report'] = 'sends reports about web- and traffic-usage';
+$lng['serversettings']['report']['report'] = 'Enable sending of reports about web- and traffic-usage';
+$lng['serversettings']['report']['webmax'] = 'Warning-level in percent for webspace';
+$lng['serversettings']['report']['trafficmax'] = 'Warning-level in percent for traffic';
+$lng['mails']['trafficmaxpercent']['mailbody'] = 'Dear {NAME},\n\nyou used {TRAFFICUSED} MB of your available {TRAFFIC} MB of traffic.\nThis is more than {MAX_PERCENT}%.\n\nYours sincerely, the Froxlor-Team';
+$lng['mails']['trafficmaxpercent']['subject'] = 'Reaching your traffic limit';
+$lng['admin']['templates']['trafficmaxpercent'] = 'Notification mail for customers when given maximum of percent of traffic is exhausted';
+$lng['admin']['templates']['MAX_PERCENT'] = 'Replaced with the diskusage/traffic limit for sending reports in percent.';
+$lng['admin']['templates']['USAGE_PERCENT'] = 'Replaced with the diskusage/traffic, which was exhausted by the customer in percent.';
+$lng['admin']['templates']['diskmaxpercent'] = 'Notification mail for customers when given maximum of percent of diskspace is exhausted';
+$lng['admin']['templates']['DISKAVAILABLE'] = 'Replaced with the diskusage in MB, which was assigned to the customer.';
+$lng['admin']['templates']['DISKUSED'] = 'Replaced with the diskusage in MB, which was exhausted by the customer.';
+$lng['serversettings']['dropdown'] = 'Dropdown';
+$lng['serversettings']['manual'] = 'Manual';
+
diff --git a/lng/german.lng.php b/lng/german.lng.php
index d35845cc..f36341a5 100644
--- a/lng/german.lng.php
+++ b/lng/german.lng.php
@@ -377,7 +377,7 @@ $lng['serversettings']['maxloginattempts']['description'] = 'Maximale Anzahl an
$lng['serversettings']['deactivatetime']['title'] = 'Länge der Deaktivierung';
$lng['serversettings']['deactivatetime']['description'] = 'Zeitraum (in sek.) für den der Account deaktiviert ist.';
$lng['serversettings']['pathedit']['title'] = 'Pfad-Eingabemethode';
-$lng['serversettings']['pathedit']['description'] = 'Soll ein Pfad via Dropdown-Menü ausgewählt oder manuell eingegeben werden können.';
+$lng['serversettings']['pathedit']['description'] = 'Soll ein Pfad via Auswahlliste ausgewählt oder manuell eingegeben werden können.';
$lng['serversettings']['nameservers']['title'] = 'Nameserver';
$lng['serversettings']['nameservers']['description'] = 'Eine durch Komma getrennte Liste mit den Hostnamen aller Nameserver. Der erste ist der primäre.';
$lng['serversettings']['mxservers']['title'] = 'MX Server';
@@ -501,11 +501,8 @@ $lng['panel']['pathDescriptionEx'] = '
Sollte eine Weiterleitung auf
// ADDED IN 1.2.16-svn6
-$lng['mails']['trafficninetypercent']['mailbody'] = 'Sehr geehrte(r) {NAME},\n\nSie haben bereits {TRAFFICUSED} MB von Ihren insgesamt {TRAFFIC} MB Traffic verbraucht.\nDies sind mehr als 90%.\n\nVielen Dank,\ndas Froxlor-Team';
-$lng['mails']['trafficninetypercent']['subject'] = 'Sie erreichen bald Ihr Traffic-Limit';
-$lng['admin']['templates']['trafficninetypercent'] = 'Hinweismail für Kunden, wenn sie 90% des Traffics verbraucht haben';
-$lng['admin']['templates']['TRAFFIC'] = 'Wird mit Traffic, der dem Kunden zugewiesen wurde, ersetzt.';
-$lng['admin']['templates']['TRAFFICUSED'] = 'Wird mit Traffic, der vom Kunden bereits verbraucht wurde, ersetzt.';
+$lng['admin']['templates']['TRAFFIC'] = 'Wird mit Traffic, der dem Kunden zugewiesen wurde, ersetzt (in MB).';
+$lng['admin']['templates']['TRAFFICUSED'] = 'Wird mit Traffic, der vom Kunden bereits verbraucht wurde, ersetzt (in MB).';
// ADDED IN 1.2.16-svn7
@@ -1529,3 +1526,19 @@ $lng['phpfpm']['vhost_httpuser'] = 'Lokaler Benutzer für PHP-FPM (Froxlor V
$lng['phpfpm']['vhost_httpgroup'] = 'Lokale Gruppe für PHP-FPM (Froxlor Vhost)';
$lng['phpfpm']['ownvhost']['title'] = 'Verwende PHP-FPM im Froxlor Vhost';
$lng['phpfpm']['ownvhost']['description'] = 'Wenn verwendet, wird Froxlor selbst unter einem lokalem Benutzer ausgeführt';
+
+// ADDED IN FROXLOR 0.9.17
+$lng['crondesc']['cron_usage_report'] = 'Sende Reports über Webspace- und Trafficverbrauch';
+$lng['serversettings']['report']['report'] = 'Aktiviere das Senden von Reports über Webspace- und Trafficverbrauch';
+$lng['serversettings']['report']['webmax'] = 'Warn-Level in Prozent für Webspace';
+$lng['serversettings']['report']['trafficmax'] = 'Warn-Level in Prozent für Traffic';
+$lng['mails']['trafficmaxpercent']['mailbody'] = 'Sehr geehrte(r) {NAME},\n\nSie haben bereits {TRAFFICUSED} MB von Ihren insgesamt {TRAFFIC} MB Traffic verbraucht.\nDies sind mehr als {MAX_PERCENT}%.\n\nVielen Dank,\ndas Froxlor-Team';
+$lng['mails']['trafficmaxpercent']['subject'] = 'Sie erreichen bald Ihr Traffic-Limit';
+$lng['admin']['templates']['trafficmaxpercent'] = 'Hinweismail für Kunden, wenn sie die angegebenen Prozent des Traffics verbraucht haben';
+$lng['admin']['templates']['MAX_PERCENT'] = 'Wird mit dem Webspace/Traffic-Limit, welches dem Kunden zugewiesen wurde, ersetzt.';
+$lng['admin']['templates']['USAGE_PERCENT'] = 'Wird mit dem Webspace/Traffic, welcher vom Kunden bereits verbraucht wurde, ersetzt.';
+$lng['admin']['templates']['diskmaxpercent'] = 'Hinweismail für Kunden, wenn sie die angegebenen Prozent des Webspaces verbraucht haben';
+$lng['admin']['templates']['DISKAVAILABLE'] = 'Wird mit dem Webspace, der dem Kunden zugewiesen wurde, ersetzt (in MB).';
+$lng['admin']['templates']['DISKUSED'] = 'Wird mit dem Webspace, welcher vom Kunden bereits verbraucht wurde, ersetzt (in MB).';
+$lng['serversettings']['dropdown'] = 'Auswahlliste';
+$lng['serversettings']['manual'] = 'Manuelle Eingabe';
diff --git a/scripts/jobs/cron_tasks.php b/scripts/jobs/cron_tasks.php
index 63a49c1e..9afbd9d4 100644
--- a/scripts/jobs/cron_tasks.php
+++ b/scripts/jobs/cron_tasks.php
@@ -78,8 +78,9 @@ while($row = $db->fetch_array($result_tasks))
$awstatsclean['headerRead'] = fgets($awstatsclean['fh'], strlen($awstatsclean['header'])+1);
fclose($awstatsclean['fh']);
if($awstatsclean['headerRead'] == $awstatsclean['header'] || $awstatsclean['headerRead'] == $awstatsclean['headerold']) {
- $cronlog->logAction(CRON_ACTION, LOG_INFO, "Removing awstats configuration ".$awstatsclean['fullentry']." for re-creation");
- @unlink($awstatsclean['fullentry']);
+ $awstats_conf_file = makeCorrectFile($awstatsclean['fullentry']);
+ $cronlog->logAction(CRON_ACTION, LOG_INFO, "Removing awstats configuration ".$awstats_conf_file." for re-creation");
+ @unlink($awstats_conf_file);
}
}
else
diff --git a/scripts/jobs/cron_traffic_report.php b/scripts/jobs/cron_usage_report.php
similarity index 83%
rename from scripts/jobs/cron_traffic_report.php
rename to scripts/jobs/cron_usage_report.php
index dfa4d56f..acd2589b 100644
--- a/scripts/jobs/cron_traffic_report.php
+++ b/scripts/jobs/cron_usage_report.php
@@ -17,7 +17,7 @@
* @version $Id$
*/
-fwrite($debugHandler, 'Trafficreport run started...' . "\n");
+fwrite($debugHandler, 'Web- and Traffic-usage reporting started...' . "\n");
$yesterday = time() - (60 * 60 * 24);
/**
@@ -26,7 +26,7 @@ $yesterday = time() - (60 * 60 * 24);
$mail = new PHPMailer(true);
$mail->SetFrom($settings['panel']['adminmail'], 'Froxlor Administrator');
-// Warn the customers at 90% traffic-usage
+// Warn the customers at xx% traffic-usage
$result = $db->query("SELECT `c`.`customerid`, `c`.`adminid`, `c`.`name`, `c`.`firstname`, `c`.`traffic`,
`c`.`email`, `c`.`def_language`, `a`.`name` AS `adminname`, `a`.`email` AS `adminmail`,
@@ -43,12 +43,14 @@ while($row = $db->fetch_array($result))
if(isset($row['traffic'])
&& $row['traffic'] > 0
&& $row['traffic_used'] != NULL
- && (($row['traffic_used'] * 100) / $row['traffic']) >= 90)
+ && (($row['traffic_used'] * 100) / $row['traffic']) >= (int)$settings['system']['report_trafficmax'])
{
$replace_arr = array(
'NAME' => $row['name'],
'TRAFFIC' => ($row['traffic'] / 1024), /* traffic is stored in KB, template uses MB */
- 'TRAFFICUSED' => $row['traffic_used']
+ 'TRAFFICUSED' => ($row['traffic_used'] / 1024), /* traffic is stored in KB, template uses MB */
+ 'USAGE_PERCENT' => ($row['traffic_used'] * 100) / $row['traffic'],
+ 'MAX_PERCENT' => $settings['system']['report_trafficmax']
);
$lngfile = $db->query_first("SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
WHERE `language` ='" . $row['def_language'] . "'");
@@ -72,14 +74,14 @@ while($row = $db->fetch_array($result))
WHERE `adminid`='" . (int)$row['adminid'] . "'
AND `language`='" . $db->escape($row['def_language']) . "'
AND `templategroup`='mails'
- AND `varname`='trafficninetypercent_subject'");
- $mail_subject = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['subject']), $replace_arr));
+ AND `varname`='trafficmaxpercent_subject'");
+ $mail_subject = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficmaxpercent']['subject']), $replace_arr));
$result2 = $db->query_first("SELECT `value` FROM `" . TABLE_PANEL_TEMPLATES . "`
WHERE `adminid`='" . (int)$row['adminid'] . "'
AND `language`='" . $db->escape($row['def_language']) . "'
AND `templategroup`='mails'
- AND `varname`='trafficninetypercent_mailbody'");
- $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr));
+ AND `varname`='trafficmaxpercent_mailbody'");
+ $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficmaxpercent']['mailbody']), $replace_arr));
$_mailerror = false;
try {
@@ -99,8 +101,8 @@ while($row = $db->fetch_array($result))
if($_mailerror)
{
- $cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $_mailerror);
- standard_error('errorsendingmail', $row["email"]);
+ $cronlog->logAction(CRON_ACTION, LOG_ERR, 'Error sending mail: ' . $_mailerror);
+ standard_error('errorsendingmail', $row['email']);
}
$mail->ClearAddresses();
@@ -109,7 +111,7 @@ while($row = $db->fetch_array($result))
}
}
-// Warn the admins at 90% traffic-usage
+// Warn the admins at xx% traffic-usage
$result = $db->query("SELECT `a`.*,
(SELECT SUM(`t`.`http` + `t`.`ftp_up` + `t`.`ftp_down` + `t`.`mail`)
@@ -122,12 +124,14 @@ while($row = $db->fetch_array($result))
{
if(isset($row['traffic'])
&& $row['traffic'] > 0
- && (($row['traffic_used_total'] * 100) / $row['traffic']) >= 90)
+ && (($row['traffic_used_total'] * 100) / $row['traffic']) >= (int)$settings['system']['report_trafficmax'])
{
$replace_arr = array(
'NAME' => $row['name'],
'TRAFFIC' => ($row['traffic'] / 1024), /* traffic is stored in KB, template uses MB */
- 'TRAFFICUSED' => $row['traffic_used_total']
+ 'TRAFFICUSED' => ($row['traffic_used_total'] / 1024), /* traffic is stored in KB, template uses MB */
+ 'USAGE_PERCENT' => ($row['traffic_used_total'] * 100) / $row['traffic'],
+ 'MAX_PERCENT' => $settings['system']['report_trafficmax']
);
$lngfile = $db->query_first("SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
WHERE `language` ='" . $row['def_language'] . "'");
@@ -151,14 +155,14 @@ while($row = $db->fetch_array($result))
WHERE `adminid`='" . (int)$row['adminid'] . "'
AND `language`='" . $db->escape($row['def_language']) . "'
AND `templategroup`='mails'
- AND `varname`='trafficninetypercent_subject'");
- $mail_subject = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['subject']), $replace_arr));
+ AND `varname`='trafficmaxpercent_subject'");
+ $mail_subject = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficmaxpercent']['subject']), $replace_arr));
$result2 = $db->query_first("SELECT `value` FROM `" . TABLE_PANEL_TEMPLATES . "`
WHERE `adminid`='" . (int)$row['adminid'] . "'
AND `language`='" . $db->escape($row['def_language']) . "'
AND `templategroup`='mails'
- AND `varname`='trafficninetypercent_mailbody'");
- $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficninetypercent']['mailbody']), $replace_arr));
+ AND `varname`='trafficmaxpercent_mailbody'");
+ $mail_body = html_entity_decode(replace_variables((($result2['value'] != '') ? $result2['value'] : $lng['mails']['trafficmaxpercent']['mailbody']), $replace_arr));
$_mailerror = false;
try {
@@ -226,8 +230,8 @@ while($row = $db->fetch_array($result))
}
if ($_mailerror) {
- $cronlog->logAction(CRON_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
- standard_error('errorsendingmail', $row["email"]);
+ $cronlog->logAction(CRON_ACTION, LOG_ERR, 'Error sending mail: ' . $mailerr_msg);
+ standard_error('errorsendingmail', $row['email']);
}
$mail->ClearAddresses();
@@ -241,9 +245,3 @@ if(date('d') == '01')
$db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `reportsent` = \'0\';');
$db->query('UPDATE `' . TABLE_PANEL_ADMINS . '` SET `reportsent` = \'0\';');
}
-
-$db->query('UPDATE `' . TABLE_PANEL_SETTINGS . '` SET `value` = UNIX_TIMESTAMP()
- WHERE `settinggroup` = \'system\' AND `varname` = \'last_traffic_report_run\' ');
-
-
-?>
diff --git a/templates/admin/templates/templates_add_2.tpl b/templates/admin/templates/templates_add_2.tpl
index e2f527c4..3c647457 100644
--- a/templates/admin/templates/templates_add_2.tpl
+++ b/templates/admin/templates/templates_add_2.tpl
@@ -96,7 +96,7 @@ $header