From e94a9fb5e4b6a2bc07e0bb4cf8ea35fc70c4bbf0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 10 May 2012 12:31:27 -0400
Subject: [PATCH] Merged revisions 3049-3051,3053-3054,3058,3070,3074-3077,3082,3086-3088,3091-3092,3094-3095 from stable branch.
---
interface/web/tools/lib/lang/fr.lng | 5
interface/web/dns/list/dns_slave.list.php | 2
interface/web/client/lib/lang/fr_client_message.lng | 13
interface/web/tools/lib/lang/ja_import_ispconfig.lng | 24
interface/web/client/lib/lang/hu_client_message.lng | 13
interface/web/client/lib/lang/nl_client.lng | 1
interface/web/client/lib/lang/tr_client.lng | 1
interface/web/tools/lib/lang/se_import_ispconfig.lng | 24
interface/web/tools/lib/lang/en_import_ispconfig.lng | 24
interface/web/client/lib/lang/ja_reseller.lng | 1
interface/web/tools/lib/lang/de_import_ispconfig.lng | 24
interface/web/dns/lib/lang/el_dns_import.lng | 7
interface/web/dns/lib/lang/nl_dns_import.lng | 7
interface/web/client/lib/lang/el_client.lng | 1
interface/web/dns/lib/lang/tr_dns_import.lng | 7
interface/web/client/lib/module.conf.php | 10
interface/web/tools/lib/lang/de_resync.lng | 13
interface/web/client/lib/lang/en_client_message.lng | 13
interface/web/tools/lib/lang/id_resync.lng | 13
interface/web/tools/lib/lang/pt.lng | 5
interface/web/client/lib/lang/ro.lng | 2
interface/web/client/lib/lang/nl.lng | 2
interface/web/dns/lib/lang/es_dns_import.lng | 7
interface/web/client/lib/lang/fr_client.lng | 1
interface/web/tools/lib/lang/hu.lng | 5
install/dist/conf/opensuse110.conf.php | 2
interface/web/client/lib/lang/it_client_message.lng | 13
interface/web/client/lib/lang/se_client_message.lng | 13
interface/web/client/lib/lang/hr_client.lng | 1
interface/web/client/lib/lang/es.lng | 2
interface/web/dns/lib/lang/hr_dns_import.lng | 7
interface/web/dns/lib/lang/ru_dns_import.lng | 7
interface/web/tools/lib/lang/sk.lng | 5
interface/web/client/lib/lang/es_client.lng | 1
interface/web/tools/lib/lang/bg_import_ispconfig.lng | 24
interface/web/tools/lib/lang/se_resync.lng | 13
interface/web/client/lib/lang/hu_reseller.lng | 1
remoting_client/examples/mail_catchall_add.php | 2
interface/web/tools/lib/menu.d/import.menu.php | 26
interface/web/client/lib/lang/tr_reseller.lng | 1
server/conf/sieve_filter.master | 3
interface/web/client/lib/lang/bg_client_message.lng | 13
interface/web/client/lib/lang/ar_reseller.lng | 1
interface/web/client/lib/lang/bg.lng | 2
interface/web/client/lib/lang/bg_client.lng | 1
interface/web/dns/lib/lang/it_dns_import.lng | 7
interface/web/client/lib/lang/el.lng | 2
interface/web/client/lib/lang/se_client.lng | 1
interface/web/tools/lib/lang/el_import_ispconfig.lng | 24
interface/web/client/client_message.php | 110 ++
interface/web/dns/templates/dns_slave_list.htm | 2
interface/web/tools/lib/lang/pt_import_ispconfig.lng | 24
interface/lib/plugins/vm_openvz_plugin.inc.php | 1
interface/web/tools/lib/lang/ar_import_ispconfig.lng | 24
interface/web/client/lib/lang/tr.lng | 2
interface/web/dns/lib/lang/fi_dns_import.lng | 7
interface/web/tools/templates/dns_import_tupa.htm | 56 +
interface/web/client/lib/lang/br_client_message.lng | 13
interface/web/tools/lib/lang/ro_import_ispconfig.lng | 24
interface/web/tools/lib/menu.d/resync.menu.php | 4
interface/web/tools/lib/lang/hr_import_ispconfig.lng | 24
interface/web/tools/lib/lang/it.lng | 5
interface/web/client/lib/lang/cz.lng | 2
interface/web/vm/templates/openvz.conf.tpl | 1
interface/web/dns/lib/lang/cz_dns_import.lng | 7
interface/web/tools/lib/lang/es_import_ispconfig.lng | 24
interface/web/tools/lib/lang/pl.lng | 5
interface/web/tools/lib/lang/fi_import_ispconfig.lng | 24
interface/web/client/lib/lang/en_client.lng | 1
interface/web/tools/lib/lang/id.lng | 5
interface/web/tools/lib/lang/fi_resync.lng | 13
interface/web/dns/lib/lang/bg_dns_import.lng | 7
server/plugins-available/apache2_plugin.inc.php | 21
interface/web/client/lib/lang/se_reseller.lng | 1
interface/web/tools/lib/lang/ro_resync.lng | 13
interface/web/client/lib/lang/it_client.lng | 1
interface/web/dns/lib/lang/de_dns_import.lng | 7
interface/web/tools/lib/lang/es.lng | 5
interface/web/dns/lib/lang/se_dns_import.lng | 7
interface/web/dns/list/dns_a.list.php | 2
interface/web/tools/lib/lang/nl.lng | 5
interface/web/tools/lib/lang/ro.lng | 5
interface/web/client/lib/lang/pl_reseller.lng | 1
interface/web/client/lib/lang/ro_client_message.lng | 13
interface/web/tools/lib/lang/pl_import_ispconfig.lng | 24
interface/web/client/lib/lang/sk_client_message.lng | 13
interface/web/tools/lib/lang/el_resync.lng | 13
interface/web/dns/lib/lang/br_dns_import.lng | 7
interface/web/client/lib/lang/pl.lng | 2
interface/web/client/lib/lang/fi.lng | 2
interface/web/client/lib/lang/ru_reseller.lng | 1
interface/web/client/lib/lang/en_reseller.lng | 1
interface/web/tools/lib/lang/ar_resync.lng | 13
interface/web/client/lib/lang/pt_reseller.lng | 1
interface/web/client/client_edit.php | 2
interface/web/dns/lib/lang/hu_dns_import.lng | 7
interface/web/tools/lib/lang/en.lng | 5
interface/web/dns/lib/lang/ro_dns_import.lng | 7
interface/web/client/lib/lang/ar_client.lng | 1
interface/web/tools/lib/module.conf.php | 2
interface/web/dns/lib/lang/pt_dns_import.lng | 7
interface/web/tools/lib/lang/cz.lng | 5
interface/web/client/lib/lang/pl_client_message.lng | 13
interface/web/client/lib/lang/nl_reseller.lng | 1
interface/web/tools/lib/lang/bg.lng | 5
interface/web/client/lib/lang/fr_reseller.lng | 1
interface/web/client/lib/lang/se.lng | 2
interface/web/client/lib/lang/pt_client_message.lng | 13
interface/web/client/lib/lang/fr.lng | 2
interface/web/client/templates/client_message.htm | 31
interface/web/client/lib/lang/hr_reseller.lng | 1
interface/web/client/lib/lang/ja_client_message.lng | 13
interface/web/tools/lib/lang/cz_import_ispconfig.lng | 24
interface/web/tools/lib/lang/it_resync.lng | 13
interface/web/client/lib/lang/cz_reseller.lng | 1
server/conf/vhost.conf.master | 1
interface/web/client/lib/lang/it.lng | 2
interface/web/tools/lib/lang/se.lng | 5
interface/web/client/lib/lang/sk.lng | 2
interface/web/tools/lib/lang/cz_resync.lng | 13
interface/web/tools/lib/lang/en_resync.lng | 13
interface/web/client/lib/lang/fi_client.lng | 1
interface/web/tools/lib/lang/fi.lng | 5
interface/web/client/lib/lang/hr.lng | 2
interface/web/client/lib/lang/it_reseller.lng | 1
interface/web/client/lib/lang/cz_client_message.lng | 13
interface/web/mail/lib/lang/de_mail_user.lng | 2
interface/web/client/lib/lang/ro_client.lng | 1
interface/web/client/lib/lang/ru_client_message.lng | 13
interface/web/mail/lib/lang/en_mail_user.lng | 2
interface/web/tools/lib/lang/ja.lng | 5
interface/web/tools/templates/resync.htm | 67 +
interface/web/dns/lib/lang/id_dns_import.lng | 7
interface/web/client/form/reseller.tform.php | 6
interface/web/client/lib/lang/nl_client_message.lng | 13
interface/web/tools/lib/lang/it_import_ispconfig.lng | 24
interface/web/tools/dns_import_tupa.php | 156 +++
interface/web/tools/templates/import_ispconfig.htm | 105 ++
interface/web/client/lib/lang/hu_client.lng | 1
interface/web/client/lib/lang/id_client.lng | 1
interface/web/tools/lib/lang/nl_import_ispconfig.lng | 24
interface/web/client/lib/lang/pt.lng | 2
interface/web/dns/lib/lang/ja_dns_import.lng | 7
interface/web/client/lib/lang/tr_client_message.lng | 13
interface/web/tools/lib/lang/hu_resync.lng | 13
interface/web/client/lib/lang/ar.lng | 2
interface/web/tools/lib/lang/bg_resync.lng | 13
interface/web/client/lib/lang/br_reseller.lng | 1
interface/web/client/lib/lang/ru.lng | 2
install/dist/lib/opensuse.lib.php | 5
interface/web/client/lib/lang/ru_client.lng | 1
interface/web/client/lib/lang/en.lng | 2
interface/web/client/lib/lang/de_reseller.lng | 1
interface/web/dns/lib/lang/fr_dns_import.lng | 7
server/conf/sieve_filter_1.2.master | 3
interface/web/tools/lib/lang/pt_resync.lng | 13
interface/web/dns/lib/lang/pl_dns_import.lng | 7
interface/web/client/lib/lang/ar_client_message.lng | 13
interface/web/tools/lib/lang/ru_resync.lng | 13
interface/web/tools/lib/lang/de.lng | 5
interface/web/client/lib/lang/id_reseller.lng | 1
interface/web/client/lib/lang/pt_client.lng | 1
install/dist/lib/fedora.lib.php | 5
interface/web/client/lib/lang/hu.lng | 2
interface/web/tools/lib/lang/pl_resync.lng | 13
interface/web/dns/templates/dns_a_list.htm | 2
interface/web/tools/lib/lang/sk_import_ispconfig.lng | 24
interface/web/client/lib/lang/es_reseller.lng | 1
install/lib/installer_base.lib.php | 5
interface/web/tools/lib/lang/ru_import_ispconfig.lng | 24
interface/web/dns/lib/lang/ar_dns_import.lng | 7
interface/web/client/lib/lang/fi_reseller.lng | 1
interface/web/tools/lib/lang/nl_resync.lng | 13
interface/web/tools/lib/lang/tr_resync.lng | 13
interface/web/tools/lib/lang/fr_import_ispconfig.lng | 24
interface/web/client/lib/lang/cz_client.lng | 1
interface/web/client/lib/lang/el_client_message.lng | 13
interface/web/client/lib/lang/ja_client.lng | 1
interface/web/tools/resync.php | 166 +++
interface/web/tools/lib/lang/es_resync.lng | 13
interface/web/client/lib/lang/de_client.lng | 1
interface/web/tools/lib/lang/hr_resync.lng | 13
interface/web/client/lib/lang/br.lng | 2
interface/web/client/lib/lang/ja.lng | 2
interface/web/client/lib/lang/de_client_message.lng | 13
interface/web/tools/lib/lang/ar.lng | 5
interface/web/tools/lib/lang/el.lng | 5
interface/web/client/lib/lang/id_client_message.lng | 13
interface/web/tools/import_ispconfig.php | 303 ++++++
interface/web/client/lib/lang/id.lng | 2
interface/web/client/lib/lang/el_reseller.lng | 1
interface/web/client/lib/lang/hr_client_message.lng | 13
interface/web/tools/lib/lang/id_import_ispconfig.lng | 24
interface/web/tools/lib/lang/br_import_ispconfig.lng | 24
interface/web/tools/lib/lang/br_resync.lng | 13
interface/web/tools/lib/lang/sk_resync.lng | 13
interface/web/client/lib/lang/bg_reseller.lng | 1
interface/web/client/lib/lang/ro_reseller.lng | 1
interface/web/tools/lib/lang/fr_resync.lng | 13
interface/web/client/lib/lang/br_client.lng | 1
interface/web/tools/lib/lang/tr_import_ispconfig.lng | 24
interface/web/client/lib/lang/es_client_message.lng | 13
interface/web/client/lib/lang/de.lng | 2
interface/web/tools/lib/lang/br.lng | 5
interface/web/client/form/client.tform.php | 6
interface/web/tools/lib/lang/ja_resync.lng | 13
install/dist/lib/gentoo.lib.php | 5
interface/lib/classes/validate_client.inc.php | 30
interface/web/monitor/show_sys_state.php | 4
interface/web/tools/lib/lang/hu_import_ispconfig.lng | 24
interface/web/tools/lib/lang/hr.lng | 5
interface/web/client/lib/lang/sk_client.lng | 1
interface/web/client/lib/lang/fi_client_message.lng | 13
/dev/null | 31
interface/web/tools/lib/lang/tr.lng | 5
interface/web/dns/lib/lang/sk_dns_import.lng | 7
interface/web/client/lib/lang/pl_client.lng | 1
interface/web/tools/lib/lang/ru.lng | 5
interface/web/client/lib/lang/sk_reseller.lng | 1
219 files changed, 2,515 insertions(+), 177 deletions(-)
diff --git a/install/dist/conf/opensuse110.conf.php b/install/dist/conf/opensuse110.conf.php
index 19b6d7a..e57d9be 100644
--- a/install/dist/conf/opensuse110.conf.php
+++ b/install/dist/conf/opensuse110.conf.php
@@ -97,7 +97,7 @@
$conf['web']['apps_vhost_group'] = 'ispapps';
//* Fastcgi
-$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/cgi/';
+$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/php5/fastcgi/';
$conf['fastcgi']['fastcgi_starter_path'] = '/srv/www/php-fcgi-scripts/[system_user]/';
//* Postfix
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index 4fbd4b5..ba1c285 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -1043,9 +1043,8 @@
replaceLine('/etc/sudoers','Defaults requiretty','#Defaults requiretty',0,0);
if(is_dir($install_dir.'/interface/invoices')) {
- chmod($install_dir.'/interface/invoices', 0770);
- chown($install_dir.'/interface/invoices', 'ispconfig');
- chgrp($install_dir.'/interface/invoices', 'ispconfig');
+ exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices'));
+ exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices'));
}
}
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index deb03f3..5e5c93c 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -874,9 +874,8 @@
}
if(is_dir($install_dir.'/interface/invoices')) {
- chmod($install_dir.'/interface/invoices', 0770);
- chown($install_dir.'/interface/invoices', 'ispconfig');
- chgrp($install_dir.'/interface/invoices', 'ispconfig');
+ exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices'));
+ exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices'));
}
// TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 8a46e3c..88f508a 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -1084,9 +1084,8 @@
}
if(is_dir($install_dir.'/interface/invoices')) {
- chmod($install_dir.'/interface/invoices', 0770);
- chown($install_dir.'/interface/invoices', 'ispconfig');
- chgrp($install_dir.'/interface/invoices', 'ispconfig');
+ exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices'));
+ exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices'));
}
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 4686aa3..94a176a 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1784,9 +1784,8 @@
}
if(is_dir($install_dir.'/interface/invoices')) {
- chmod($install_dir.'/interface/invoices', 0770);
- chown($install_dir.'/interface/invoices', 'ispconfig');
- chgrp($install_dir.'/interface/invoices', 'ispconfig');
+ exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices'));
+ exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices'));
}
// TODO: FIXME: add the www-data user to the ispconfig group. This is just for testing
diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index 97b9221..9b0546a 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -65,6 +65,36 @@
}
}
+ function username_collision($field_name, $field_value, $validator) {
+ global $app;
+
+ if(isset($app->remoting_lib->primary_id)) {
+ $client_id = $app->remoting_lib->primary_id;
+ } else {
+ $client_id = $app->tform->primary_id;
+ }
+
+ $app->uses('getconf');
+ $global_config = $app->getconf->get_global_config('sites');
+
+ if((trim($field_value) == 'web' || preg_match('/^web[0-9]/',$field_value)) &&
+ ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' ||
+ $global_config['ftpuser_prefix'] == '' ||
+ $global_config['shelluser_prefix'] == '[CLIENTNAME]' ||
+ $global_config['shelluser_prefix'] == '' )) {
+ $errmsg = $validator['errmsg'];
+ if(isset($app->tform->wordbook[$errmsg])) {
+ return $app->tform->wordbook[$errmsg]."<br>\r\n";
+ } else {
+ return $errmsg."<br>\r\n";
+ }
+ }
+
+
+
+
+ }
+
diff --git a/interface/lib/plugins/vm_openvz_plugin.inc.php b/interface/lib/plugins/vm_openvz_plugin.inc.php
index b1ce8e6..42a6530 100644
--- a/interface/lib/plugins/vm_openvz_plugin.inc.php
+++ b/interface/lib/plugins/vm_openvz_plugin.inc.php
@@ -173,6 +173,7 @@
$tpl->setVar('numfile',$vm_template['numfile']);
$tpl->setVar('avnumproc',$vm_template['avnumproc']);
$tpl->setVar('numiptent',$vm_template['numiptent']);
+ $tpl->setVar('swappages',$vm_template['swappages']);
$diskspace = $vm['diskspace']*1048576;
$diskinodes = $vm['diskspace']*524288;
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index c5d7ba4..76616fc 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -1,6 +1,6 @@
<?php
/*
-Copyright (c) 2005 - 2008, Till Brehm, projektfarm Gmbh
+Copyright (c) 2005 - 2012, Till Brehm, projektfarm Gmbh, ISPConfig UG
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/interface/web/client/client_message.php b/interface/web/client/client_message.php
new file mode 100644
index 0000000..f555c99
--- /dev/null
+++ b/interface/web/client/client_message.php
@@ -0,0 +1,110 @@
+<?php
+/*
+Copyright (c) 2012, Till Brehm, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('client');
+
+//* This function is not available in demo mode
+if($conf['demo_mode'] == true) $app->error('This function is disabled in demo mode.');
+
+$app->uses('tpl');
+
+$app->tpl->newTemplate('form.tpl.htm');
+$app->tpl->setInclude('content_tpl', 'templates/client_message.htm');
+
+//* load language file
+$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_client_message.lng';
+include($lng_file);
+$app->tpl->setVar($wb);
+
+$msg = '';
+$error = '';
+
+//* Save data
+if(isset($_POST) && count($_POST) > 1) {
+
+ //* Check values
+ if(!preg_match("/^\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\w+\.[a-zA-Z0-9\-]{2,30}$/i", $_POST['sender'])) $error .= $wb['sender_invalid_error'].'<br />';
+ if(empty($_POST['subject'])) $error .= $wb['subject_invalid_error'].'<br />';
+ if(empty($_POST['message'])) $error .= $wb['message_invalid_error'].'<br />';
+
+ //* Send message
+ if($error == '') {
+ //* Select all clients and resellers
+ if($_SESSION["s"]["user"]["typ"] == 'admin'){
+ $sql = "SELECT * FROM client WHERE email != ''";
+ } else {
+ $client_id = intval($_SESSION['s']['user']['client_id']);
+ if($client_id == 0) die('Invalid Client ID.');
+ $sql = "SELECT * FROM client WHERE email != '' AND parent_client_id = '$client_id'";
+ }
+
+ //* Get clients
+ $clients = $app->db->queryAllRecords($sql);
+ if(is_array($clients)) {
+ $msg = $wb['email_sent_to_txt'].' ';
+ foreach($clients as $client) {
+
+ //* Parse cleint details into message
+ $message = $_POST['message'];
+ foreach($client as $key => $val) {
+ $message = str_replace('{'.$key.'}', $val, $message);
+ }
+
+ //* Send the email
+ $app->functions->mail($client['email'], $_POST['subject'], $message, $_POST['sender']);
+ $msg .= $client['email'].', ';
+ }
+ $msg = substr($msg,0,-2);
+ }
+
+ } else {
+ $app->tpl->setVar('sender',$_POST['sender']);
+ $app->tpl->setVar('subject',$_POST['subject']);
+ $app->tpl->setVar('message',$_POST['message']);
+ }
+}
+
+if($_SESSION["s"]["user"]["typ"] == 'admin'){
+ $app->tpl->setVar('form_legend_txt',$wb['form_legend_admin_txt']);
+} else {
+ $app->tpl->setVar('form_legend_txt',$wb['form_legend_client_txt']);
+}
+
+$app->tpl->setVar('okmsg',$msg);
+$app->tpl->setVar('error',$error);
+
+$app->tpl_defaults();
+$app->tpl->pparse();
+
+
+?>
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index 3fca605..d29a54c 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -134,7 +134,11 @@
'class' => 'validate_client',
'function' => 'username_unique',
'errmsg'=> 'username_error_unique'),
- 2 => array ( 'type' => 'REGEX',
+ 2 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_client',
+ 'function' => 'username_collision',
+ 'errmsg'=> 'username_error_collision'),
+ 3 => array ( 'type' => 'REGEX',
'regex' => '/^[\w\.\-\_]{0,64}$/',
'errmsg'=> 'username_error_regex'),
),
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index c60d136..f78e98a 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -126,7 +126,11 @@
'class' => 'validate_client',
'function' => 'username_unique',
'errmsg'=> 'username_error_unique'),
- 2 => array ( 'type' => 'REGEX',
+ 2 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_client',
+ 'function' => 'username_collision',
+ 'errmsg'=> 'username_error_collision'),
+ 3 => array ( 'type' => 'REGEX',
'regex' => '/^[\w\.\-\_]{0,64}$/',
'errmsg'=> 'username_error_regex'),
),
diff --git a/interface/web/client/lib/lang/ar.lng b/interface/web/client/lib/lang/ar.lng
index 9d70b06..44ad01a 100644
--- a/interface/web/client/lib/lang/ar.lng
+++ b/interface/web/client/lib/lang/ar.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng
index f688fd5..cd252a0 100644
--- a/interface/web/client/lib/lang/ar_client.lng
+++ b/interface/web/client/lib/lang/ar_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ar_client_message.lng b/interface/web/client/lib/lang/ar_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/ar_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng
index ea62daf..e097df0 100644
--- a/interface/web/client/lib/lang/ar_reseller.lng
+++ b/interface/web/client/lib/lang/ar_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/bg.lng b/interface/web/client/lib/lang/bg.lng
index 5f1f246..a1ad57d 100644
--- a/interface/web/client/lib/lang/bg.lng
+++ b/interface/web/client/lib/lang/bg.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng
index 830109f..650511e 100644
--- a/interface/web/client/lib/lang/bg_client.lng
+++ b/interface/web/client/lib/lang/bg_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/bg_client_message.lng b/interface/web/client/lib/lang/bg_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/bg_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng
index ea62daf..e097df0 100644
--- a/interface/web/client/lib/lang/bg_reseller.lng
+++ b/interface/web/client/lib/lang/bg_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/br.lng b/interface/web/client/lib/lang/br.lng
index c47aa91..886e81d 100644
--- a/interface/web/client/lib/lang/br.lng
+++ b/interface/web/client/lib/lang/br.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Este revendedor possui clientes. Você deve remover os clientes primeiro.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng
index f900d5b..70b33a6 100644
--- a/interface/web/client/lib/lang/br_client.lng
+++ b/interface/web/client/lib/lang/br_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/br_client_message.lng b/interface/web/client/lib/lang/br_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/br_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng
index 670d675..3b47cc5 100644
--- a/interface/web/client/lib/lang/br_reseller.lng
+++ b/interface/web/client/lib/lang/br_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/cz.lng b/interface/web/client/lib/lang/cz.lng
index eeef0fc..6cae801 100644
--- a/interface/web/client/lib/lang/cz.lng
+++ b/interface/web/client/lib/lang/cz.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Distributor má klienty. Nejdříve smažte tyto klienty.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng
index b6a4d22..df4a927 100644
--- a/interface/web/client/lib/lang/cz_client.lng
+++ b/interface/web/client/lib/lang/cz_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/cz_client_message.lng b/interface/web/client/lib/lang/cz_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/cz_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng
index 75d4cf4..90e6832 100644
--- a/interface/web/client/lib/lang/cz_reseller.lng
+++ b/interface/web/client/lib/lang/cz_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/de.lng b/interface/web/client/lib/lang/de.lng
index 89617e2..60c9d05 100644
--- a/interface/web/client/lib/lang/de.lng
+++ b/interface/web/client/lib/lang/de.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Dieser Reseller besitzt Kunden. Bitte zuerst die Kunden löschen.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index 587d0d5..46c41a8 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -106,6 +106,7 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
$wb['bank_account_number_txt'] = 'Kontonr.';
$wb['bank_code_txt'] = 'BLZ';
$wb['bank_name_txt'] = 'Bank';
diff --git a/interface/web/client/lib/lang/de_client_message.lng b/interface/web/client/lib/lang/de_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/de_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng
index b34bd1c..0664e88 100644
--- a/interface/web/client/lib/lang/de_reseller.lng
+++ b/interface/web/client/lib/lang/de_reseller.lng
@@ -106,6 +106,7 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
$wb["web_limits_txt"] = 'Web-Limits';
$wb["email_limits_txt"] = 'Email-Limits';
$wb["database_limits_txt"] = 'Datenbank-Limits';
diff --git a/interface/web/client/lib/lang/el.lng b/interface/web/client/lib/lang/el.lng
index cc2433a..87294f6 100644
--- a/interface/web/client/lib/lang/el.lng
+++ b/interface/web/client/lib/lang/el.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Ο Μεταπωλητής έχει πελάτες. Διαγράψτε πρώτα τους πελάτες.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/el_client.lng b/interface/web/client/lib/lang/el_client.lng
index 6df5a00..e0e1387 100644
--- a/interface/web/client/lib/lang/el_client.lng
+++ b/interface/web/client/lib/lang/el_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'Το όριο εικονικών server πρέπει να είναι αριθμός.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/el_client_message.lng b/interface/web/client/lib/lang/el_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/el_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/el_reseller.lng b/interface/web/client/lib/lang/el_reseller.lng
index 79e54ef..3403175 100644
--- a/interface/web/client/lib/lang/el_reseller.lng
+++ b/interface/web/client/lib/lang/el_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'Το όριο εικονικών server πρέπει να είναι αριθμός.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/en.lng b/interface/web/client/lib/lang/en.lng
index 4b10b2b..03e36b2 100644
--- a/interface/web/client/lib/lang/en.lng
+++ b/interface/web/client/lib/lang/en.lng
@@ -12,4 +12,6 @@
$wb["error_has_clients"] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
\ No newline at end of file
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index d912744..3a9f30e 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -109,6 +109,7 @@
$wb["limit_openvz_vm_error_notint"] = 'The virtual server limit must be a number.';
$wb["web_php_options_notempty"] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb["ssh_chroot_notempty"] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb["username_error_collision"] = 'The username may not start with the word -web- or -web- followed by a number.';
$wb["bank_account_number_txt"] = 'Bank account no.';
$wb["bank_code_txt"] = 'Bank code';
$wb["bank_name_txt"] = 'Bank name';
diff --git a/interface/web/client/lib/lang/en_client_message.lng b/interface/web/client/lib/lang/en_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/en_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index df2ec24..4863a4e 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -108,6 +108,7 @@
$wb["limit_openvz_vm_error_notint"] = 'The virtual server limit must be a number.';
$wb["web_php_options_notempty"] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb["ssh_chroot_notempty"] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb["username_error_collision"] = 'The username may not start with the word -web- or -web- followed by a number.';
$wb["web_limits_txt"] = 'Web Limits';
$wb["email_limits_txt"] = 'Email Limits';
$wb["database_limits_txt"] = 'Database Limits';
diff --git a/interface/web/client/lib/lang/es.lng b/interface/web/client/lib/lang/es.lng
index 9f72fe5..8d77b92 100644
--- a/interface/web/client/lib/lang/es.lng
+++ b/interface/web/client/lib/lang/es.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng
index 3c461a5..047e70a 100644
--- a/interface/web/client/lib/lang/es_client.lng
+++ b/interface/web/client/lib/lang/es_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/es_client_message.lng b/interface/web/client/lib/lang/es_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/es_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng
index 23ea38e..412bafe 100644
--- a/interface/web/client/lib/lang/es_reseller.lng
+++ b/interface/web/client/lib/lang/es_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/fi.lng b/interface/web/client/lib/lang/fi.lng
index 5389024..243ac6d 100755
--- a/interface/web/client/lib/lang/fi.lng
+++ b/interface/web/client/lib/lang/fi.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Tällä jälleenmyyjällä on asiakkaita, poista ne ensin.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng
index 45fbefa..30f111e 100755
--- a/interface/web/client/lib/lang/fi_client.lng
+++ b/interface/web/client/lib/lang/fi_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/fi_client_message.lng b/interface/web/client/lib/lang/fi_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/fi_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng
index bc4b368..0bc1761 100644
--- a/interface/web/client/lib/lang/fi_reseller.lng
+++ b/interface/web/client/lib/lang/fi_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/fr.lng b/interface/web/client/lib/lang/fr.lng
index 624247c..a7e1738 100644
--- a/interface/web/client/lib/lang/fr.lng
+++ b/interface/web/client/lib/lang/fr.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Ce revendeur a des clients. Effacez dabord les clients de ce revendeur.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng
index 3254ca0..38e85f6 100644
--- a/interface/web/client/lib/lang/fr_client.lng
+++ b/interface/web/client/lib/lang/fr_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/fr_client_message.lng b/interface/web/client/lib/lang/fr_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/fr_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng
index 40b3502..d938774 100644
--- a/interface/web/client/lib/lang/fr_reseller.lng
+++ b/interface/web/client/lib/lang/fr_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/hr.lng b/interface/web/client/lib/lang/hr.lng
index 73850f4..f4126df 100644
--- a/interface/web/client/lib/lang/hr.lng
+++ b/interface/web/client/lib/lang/hr.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Ovaj preprodavač ima klijente. Prvo morate obrisati klijente preprodavača.';
$wb['add_additional_template_txt'] = 'Dodaj dodatni predložak';
$wb['delete_additional_template_txt'] = 'Obriši dodatni predložak';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/hr_client.lng b/interface/web/client/lib/lang/hr_client.lng
index a635281..2537d74 100644
--- a/interface/web/client/lib/lang/hr_client.lng
+++ b/interface/web/client/lib/lang/hr_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'Broj virtualnih servera mora biti znamenka.';
$wb['web_php_options_notempty'] = 'Nisu izabrane PHP opcije. Izaberite jednu PHP opciju.';
$wb['ssh_chroot_notempty'] = 'Nisu izabrane SSH opcije. Izaberite jednu SSH opciju.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/hr_client_message.lng b/interface/web/client/lib/lang/hr_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/hr_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/hr_reseller.lng b/interface/web/client/lib/lang/hr_reseller.lng
index 3f932b1..241f3ce 100644
--- a/interface/web/client/lib/lang/hr_reseller.lng
+++ b/interface/web/client/lib/lang/hr_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'Broj virtualnih servera mora biti znamenka.';
$wb['web_php_options_notempty'] = 'Nisu izabrane PHP opcije. Izaberite jednu PHP opciju.';
$wb['ssh_chroot_notempty'] = 'Nisu izabrane SSH opcije. Izaberite jednu SSH opciju.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/hu.lng b/interface/web/client/lib/lang/hu.lng
index ee5a41d..2ad2003 100644
--- a/interface/web/client/lib/lang/hu.lng
+++ b/interface/web/client/lib/lang/hu.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng
index 6bc3a8b..f31ec8d 100644
--- a/interface/web/client/lib/lang/hu_client.lng
+++ b/interface/web/client/lib/lang/hu_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/hu_client_message.lng b/interface/web/client/lib/lang/hu_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/hu_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng
index b1d8e01..6e129d2 100644
--- a/interface/web/client/lib/lang/hu_reseller.lng
+++ b/interface/web/client/lib/lang/hu_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/id.lng b/interface/web/client/lib/lang/id.lng
index 09bf4fb..78c0101 100644
--- a/interface/web/client/lib/lang/id.lng
+++ b/interface/web/client/lib/lang/id.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Reseller ini memiliki klien. Hapus klien dari reseller terlebih dahulu.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/id_client.lng b/interface/web/client/lib/lang/id_client.lng
index 5465034..f85bb00 100644
--- a/interface/web/client/lib/lang/id_client.lng
+++ b/interface/web/client/lib/lang/id_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/id_client_message.lng b/interface/web/client/lib/lang/id_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/id_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/id_reseller.lng b/interface/web/client/lib/lang/id_reseller.lng
index 4ce8649..b03aae6 100644
--- a/interface/web/client/lib/lang/id_reseller.lng
+++ b/interface/web/client/lib/lang/id_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/it.lng b/interface/web/client/lib/lang/it.lng
index 44d29f7..9ea1419 100644
--- a/interface/web/client/lib/lang/it.lng
+++ b/interface/web/client/lib/lang/it.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Questo rivenditore ha dei clienti, bisogna cancellarli prima di procedere.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng
index a0f5bba..1682d84 100644
--- a/interface/web/client/lib/lang/it_client.lng
+++ b/interface/web/client/lib/lang/it_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/it_client_message.lng b/interface/web/client/lib/lang/it_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/it_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng
index ea62daf..e097df0 100644
--- a/interface/web/client/lib/lang/it_reseller.lng
+++ b/interface/web/client/lib/lang/it_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ja.lng b/interface/web/client/lib/lang/ja.lng
index 66ed95e..0eb9efe 100644
--- a/interface/web/client/lib/lang/ja.lng
+++ b/interface/web/client/lib/lang/ja.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng
index edf1a4f..e8f0c2a 100644
--- a/interface/web/client/lib/lang/ja_client.lng
+++ b/interface/web/client/lib/lang/ja_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ja_client_message.lng b/interface/web/client/lib/lang/ja_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/ja_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng
index b3b08a6..3554370 100644
--- a/interface/web/client/lib/lang/ja_reseller.lng
+++ b/interface/web/client/lib/lang/ja_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/nl.lng b/interface/web/client/lib/lang/nl.lng
index abfdc91..e344124 100644
--- a/interface/web/client/lib/lang/nl.lng
+++ b/interface/web/client/lib/lang/nl.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Deze reseller heeft klanten. Verwijder eerst de klanten van de reseller';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng
index 35234e5..acbe70c 100644
--- a/interface/web/client/lib/lang/nl_client.lng
+++ b/interface/web/client/lib/lang/nl_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/nl_client_message.lng b/interface/web/client/lib/lang/nl_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/nl_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng
index 59913a1..f9bd57e 100644
--- a/interface/web/client/lib/lang/nl_reseller.lng
+++ b/interface/web/client/lib/lang/nl_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/pl.lng b/interface/web/client/lib/lang/pl.lng
index f0200d3..ddecb90 100644
--- a/interface/web/client/lib/lang/pl.lng
+++ b/interface/web/client/lib/lang/pl.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Reseller posiada klientów. Usuń ich zanim usuniesz resellera.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/pl_client.lng b/interface/web/client/lib/lang/pl_client.lng
index b822079..e2e3cab 100644
--- a/interface/web/client/lib/lang/pl_client.lng
+++ b/interface/web/client/lib/lang/pl_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/pl_client_message.lng b/interface/web/client/lib/lang/pl_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/pl_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng
index e0631f2..e4ab1fb 100644
--- a/interface/web/client/lib/lang/pl_reseller.lng
+++ b/interface/web/client/lib/lang/pl_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/pt.lng b/interface/web/client/lib/lang/pt.lng
index 8ec6dd1..274c0f8 100644
--- a/interface/web/client/lib/lang/pt.lng
+++ b/interface/web/client/lib/lang/pt.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Este revendedor possui clientes. Deve remover os clientes primeiro.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng
index bdc3f7e..7cf9c96 100644
--- a/interface/web/client/lib/lang/pt_client.lng
+++ b/interface/web/client/lib/lang/pt_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/pt_client_message.lng b/interface/web/client/lib/lang/pt_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/pt_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng
index 83c9fa9..ac55686 100644
--- a/interface/web/client/lib/lang/pt_reseller.lng
+++ b/interface/web/client/lib/lang/pt_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ro.lng b/interface/web/client/lib/lang/ro.lng
index 9d70b06..44ad01a 100644
--- a/interface/web/client/lib/lang/ro.lng
+++ b/interface/web/client/lib/lang/ro.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng
index 1380813..6712694 100644
--- a/interface/web/client/lib/lang/ro_client.lng
+++ b/interface/web/client/lib/lang/ro_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ro_client_message.lng b/interface/web/client/lib/lang/ro_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/ro_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng
index ea62daf..e097df0 100644
--- a/interface/web/client/lib/lang/ro_reseller.lng
+++ b/interface/web/client/lib/lang/ro_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ru.lng b/interface/web/client/lib/lang/ru.lng
index ec39c06..d10a3cc 100644
--- a/interface/web/client/lib/lang/ru.lng
+++ b/interface/web/client/lib/lang/ru.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'У реселлера есть клиенты. Вначале удалите их.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng
index ab7c448..c18f5b8 100644
--- a/interface/web/client/lib/lang/ru_client.lng
+++ b/interface/web/client/lib/lang/ru_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/ru_client_message.lng b/interface/web/client/lib/lang/ru_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/ru_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng
index 3c36e5b..768a8bd 100644
--- a/interface/web/client/lib/lang/ru_reseller.lng
+++ b/interface/web/client/lib/lang/ru_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/se.lng b/interface/web/client/lib/lang/se.lng
index 9d70b06..44ad01a 100644
--- a/interface/web/client/lib/lang/se.lng
+++ b/interface/web/client/lib/lang/se.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng
index bcefadd..214a56d 100644
--- a/interface/web/client/lib/lang/se_client.lng
+++ b/interface/web/client/lib/lang/se_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/se_client_message.lng b/interface/web/client/lib/lang/se_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/se_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng
index ea62daf..e097df0 100644
--- a/interface/web/client/lib/lang/se_reseller.lng
+++ b/interface/web/client/lib/lang/se_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/sk.lng b/interface/web/client/lib/lang/sk.lng
index a6f182e..2f7fe8f 100644
--- a/interface/web/client/lib/lang/sk.lng
+++ b/interface/web/client/lib/lang/sk.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'This reseller has clients. Delete the clients of the reseller first.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng
index 72cd853..4c088f4 100644
--- a/interface/web/client/lib/lang/sk_client.lng
+++ b/interface/web/client/lib/lang/sk_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/sk_client_message.lng b/interface/web/client/lib/lang/sk_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/sk_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng
index 2008e6c..859158b 100644
--- a/interface/web/client/lib/lang/sk_reseller.lng
+++ b/interface/web/client/lib/lang/sk_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/tr.lng b/interface/web/client/lib/lang/tr.lng
index 9caa4cb..d336d75 100644
--- a/interface/web/client/lib/lang/tr.lng
+++ b/interface/web/client/lib/lang/tr.lng
@@ -12,4 +12,6 @@
$wb['error_has_clients'] = 'Bu reseller müşterilere sahip. Resellerı silmeden önce müşterilerini silmelisiniz.';
$wb['add_additional_template_txt'] = 'Add additional template';
$wb['delete_additional_template_txt'] = 'Delete additional template';
+$wb['Messaging'] = 'Messaging';
+$wb['Send Email'] = 'Send Email';
?>
diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng
index 117eb4f..8da9085 100644
--- a/interface/web/client/lib/lang/tr_client.lng
+++ b/interface/web/client/lib/lang/tr_client.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/lang/tr_client_message.lng b/interface/web/client/lib/lang/tr_client_message.lng
new file mode 100644
index 0000000..4f4ef37
--- /dev/null
+++ b/interface/web/client/lib/lang/tr_client_message.lng
@@ -0,0 +1,13 @@
+<?php
+$wb["btn_send_txt"] = 'Send email';
+$wb["btn_cancel_txt"] = 'Cancel';
+$wb["sender_txt"] = 'Sender email address';
+$wb["subject_txt"] = 'Subject';
+$wb["message_txt"] = 'Message';
+$wb["form_legend_client_txt"] = 'Send email message to all clients.';
+$wb["form_legend_admin_txt"] = 'Send email message to all clients and resellers.';
+$wb["sender_invalid_error"] = 'Sender email invalid.';
+$wb["subject_invalid_error"] = 'Subject is empty.';
+$wb["message_invalid_error"] = 'Message is empty.';
+$wb["email_sent_to_txt"] = 'Email sent to:';
+?>
diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng
index ba24fda..5022db2 100644
--- a/interface/web/client/lib/lang/tr_reseller.lng
+++ b/interface/web/client/lib/lang/tr_reseller.lng
@@ -106,4 +106,5 @@
$wb['limit_openvz_vm_error_notint'] = 'The virtual server limit must be a number.';
$wb['web_php_options_notempty'] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb['ssh_chroot_notempty'] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb['username_error_collision'] = 'The username may not start with the word -web- or -web- followed by a number.';
?>
diff --git a/interface/web/client/lib/module.conf.php b/interface/web/client/lib/module.conf.php
index f37461d..3e36a26 100644
--- a/interface/web/client/lib/module.conf.php
+++ b/interface/web/client/lib/module.conf.php
@@ -52,9 +52,19 @@
$module["nav"][] = array( 'title' => 'Resellers',
'open' => 1,
'items' => $items);
+
+unset($items);
}
+$items[] = array( 'title' => "Send email",
+ 'target' => 'content',
+ 'link' => 'client/client_message.php',
+ 'html_id' => 'reseller_add');
+$module["nav"][] = array( 'title' => 'Messaging',
+ 'open' => 1,
+ 'items' => $items);
+unset($items);
?>
\ No newline at end of file
diff --git a/interface/web/client/templates/client_message.htm b/interface/web/client/templates/client_message.htm
new file mode 100644
index 0000000..cc2183e
--- /dev/null
+++ b/interface/web/client/templates/client_message.htm
@@ -0,0 +1,31 @@
+<h2><tmpl_var name="list_head_txt"></h2>
+<p><tmpl_var name="form_desc_txt"></p>
+
+<div class="panel panel_client">
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>{tmpl_var name='form_legend_txt'}</legend>
+ <tmpl_if name="okmsg">
+ <div id="OKMsg"><p><tmpl_var name="okmsg"></p></div>
+ </tmpl_if>
+ <tmpl_if name="error">
+ <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
+ </tmpl_if>
+ <div class="ctrlHolder">
+ <label for="sender">{tmpl_var name='sender_txt'}</label>
+ <input name="sender" id="sender" value="{tmpl_var name='sender'}" style="width:500px" size="30" maxlength="255" type="text" class="textInput" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="subject">{tmpl_var name='subject_txt'}</label>
+ <input name="subject" id="subject" value="{tmpl_var name='subject'}" style="width:500px" size="30" maxlength="255" type="text" class="textInput" />
+ </div>
+ <div class="ctrlHolder">
+ <label for="message">{tmpl_var name='message_txt'}</label>
+ <textarea name="message" id="message" rows='' cols='' style="width:500px">{tmpl_var name='message'}</textarea>
+ </div>
+ </fieldset>
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_send_txt'}" onClick="submitForm('pageForm','client/client_message.php');"><span>{tmpl_var name='btn_send_txt'}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('client/client_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
+ </div>
+ </div>
+</div>
diff --git a/interface/web/dns/lib/lang/ar_dns_import.lng b/interface/web/dns/lib/lang/ar_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/ar_dns_import.lng
+++ b/interface/web/dns/lib/lang/ar_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/bg_dns_import.lng b/interface/web/dns/lib/lang/bg_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/bg_dns_import.lng
+++ b/interface/web/dns/lib/lang/bg_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/br_dns_import.lng b/interface/web/dns/lib/lang/br_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/br_dns_import.lng
+++ b/interface/web/dns/lib/lang/br_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/cz_dns_import.lng b/interface/web/dns/lib/lang/cz_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/cz_dns_import.lng
+++ b/interface/web/dns/lib/lang/cz_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/de_dns_import.lng b/interface/web/dns/lib/lang/de_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/de_dns_import.lng
+++ b/interface/web/dns/lib/lang/de_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/el_dns_import.lng b/interface/web/dns/lib/lang/el_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/el_dns_import.lng
+++ b/interface/web/dns/lib/lang/el_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/es_dns_import.lng b/interface/web/dns/lib/lang/es_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/es_dns_import.lng
+++ b/interface/web/dns/lib/lang/es_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/fi_dns_import.lng b/interface/web/dns/lib/lang/fi_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/fi_dns_import.lng
+++ b/interface/web/dns/lib/lang/fi_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/fr_dns_import.lng b/interface/web/dns/lib/lang/fr_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/fr_dns_import.lng
+++ b/interface/web/dns/lib/lang/fr_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/hr_dns_import.lng b/interface/web/dns/lib/lang/hr_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/hr_dns_import.lng
+++ b/interface/web/dns/lib/lang/hr_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/hu_dns_import.lng b/interface/web/dns/lib/lang/hu_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/hu_dns_import.lng
+++ b/interface/web/dns/lib/lang/hu_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/id_dns_import.lng b/interface/web/dns/lib/lang/id_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/id_dns_import.lng
+++ b/interface/web/dns/lib/lang/id_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/it_dns_import.lng b/interface/web/dns/lib/lang/it_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/it_dns_import.lng
+++ b/interface/web/dns/lib/lang/it_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/ja_dns_import.lng b/interface/web/dns/lib/lang/ja_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/ja_dns_import.lng
+++ b/interface/web/dns/lib/lang/ja_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/nl_dns_import.lng b/interface/web/dns/lib/lang/nl_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/nl_dns_import.lng
+++ b/interface/web/dns/lib/lang/nl_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/pl_dns_import.lng b/interface/web/dns/lib/lang/pl_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/pl_dns_import.lng
+++ b/interface/web/dns/lib/lang/pl_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/pt_dns_import.lng b/interface/web/dns/lib/lang/pt_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/pt_dns_import.lng
+++ b/interface/web/dns/lib/lang/pt_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/ro_dns_import.lng b/interface/web/dns/lib/lang/ro_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/ro_dns_import.lng
+++ b/interface/web/dns/lib/lang/ro_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/ru_dns_import.lng b/interface/web/dns/lib/lang/ru_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/ru_dns_import.lng
+++ b/interface/web/dns/lib/lang/ru_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/se_dns_import.lng b/interface/web/dns/lib/lang/se_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/se_dns_import.lng
+++ b/interface/web/dns/lib/lang/se_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/sk_dns_import.lng b/interface/web/dns/lib/lang/sk_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/sk_dns_import.lng
+++ b/interface/web/dns/lib/lang/sk_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/lib/lang/tr_dns_import.lng b/interface/web/dns/lib/lang/tr_dns_import.lng
index 536c62f..201a755 100644
--- a/interface/web/dns/lib/lang/tr_dns_import.lng
+++ b/interface/web/dns/lib/lang/tr_dns_import.lng
@@ -1,9 +1,8 @@
<?php
-
$wb['server_id_txt'] = 'Server';
$wb['client_txt'] = 'Client';
-$wb["btn_save_txt"] = 'Import Zonefile';
-$wb["btn_cancel_txt"] = 'Cancel';
+$wb['btn_save_txt'] = 'Import Zonefile';
+$wb['btn_cancel_txt'] = 'Cancel';
$wb['domain_txt'] = 'Domain';
$wb['zone_file_successfully_imported_txt'] = 'The zone file has successfully been imported!';
$wb['error_no_valid_zone_file_txt'] = 'This appears to be no valid zone file!';
@@ -11,4 +10,4 @@
$wb['domain_field_desc_txt'] = 'Can be left empty if domain name is in the filename or the zone-file content.';
$wb['title'] = 'Import Zone Files';
$wb['no_file_uploaded_error'] = 'No zonefile uploaded';
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/dns/list/dns_a.list.php b/interface/web/dns/list/dns_a.list.php
index 1f23439..ec32eb8 100644
--- a/interface/web/dns/list/dns_a.list.php
+++ b/interface/web/dns/list/dns_a.list.php
@@ -55,7 +55,7 @@
'prefix' => "",
'suffix' => "",
'width' => "",
- 'value' => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+ 'value' => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'N' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
$liste["item"][] = array( 'field' => "server_id",
diff --git a/interface/web/dns/list/dns_slave.list.php b/interface/web/dns/list/dns_slave.list.php
index 5fa12e0..aaa09e0 100644
--- a/interface/web/dns/list/dns_slave.list.php
+++ b/interface/web/dns/list/dns_slave.list.php
@@ -55,7 +55,7 @@
'prefix' => "",
'suffix' => "",
'width' => "",
- 'value' => array('y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'n' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
+ 'value' => array('Y' => "<div id=\"ir-Yes\" class=\"swap\"><span>Yes</span></div>",'N' => "<div class=\"swap\" id=\"ir-No\"><span>No</span></div>"));
$liste["item"][] = array( 'field' => "server_id",
diff --git a/interface/web/dns/templates/dns_a_list.htm b/interface/web/dns/templates/dns_a_list.htm
index 643cf91..1e2e569 100644
--- a/interface/web/dns/templates/dns_a_list.htm
+++ b/interface/web/dns/templates/dns_a_list.htm
@@ -62,7 +62,7 @@
<tbody>
<tmpl_loop name="records">
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
- <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');"><img src="themes/{tmpl_var name='theme'}/icons/{tmpl_var name='_active_'}" border="0" /></a></td>
+ <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td>
<td class="tbl_col_type"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="type"}</a></td>
<td class="tbl_col_name"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="name"}</a></td>
<td class="tbl_col_data"><a href="#" onClick="loadContent('dns/dns_{tmpl_var name='type_lowercase'}_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="data"}</a></td>
diff --git a/interface/web/dns/templates/dns_slave_list.htm b/interface/web/dns/templates/dns_slave_list.htm
index 351eb4b..d93701e 100644
--- a/interface/web/dns/templates/dns_slave_list.htm
+++ b/interface/web/dns/templates/dns_slave_list.htm
@@ -35,7 +35,7 @@
<tbody>
<tmpl_loop name="records">
<tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>">
- <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');"><img src="themes/{tmpl_var name='theme'}/icons/{tmpl_var name='_active_'}" border="0" /></a></td>
+ <td class="tbl_col_active"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td>
<td class="tbl_col_server_id"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td>
<td class="tbl_col_origin"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="origin"}</a></td>
<td class="tbl_col_ns"><a href="#" onClick="loadContent('dns/dns_slave_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="ns"}</a></td>
diff --git a/interface/web/mail/lib/lang/de_mail_user.lng b/interface/web/mail/lib/lang/de_mail_user.lng
index 3bed84c..1d2fd3b 100644
--- a/interface/web/mail/lib/lang/de_mail_user.lng
+++ b/interface/web/mail/lib/lang/de_mail_user.lng
@@ -37,7 +37,7 @@
$wb['cc_error_isemail'] = 'The Send copy to field does not conatin a valid email address';
$wb['login_error_unique'] = 'Login wird bereits verwendet.';
$wb['login_error_regex'] = 'Zulässige Zeichen sind A-Z, a-z, 0-9, ., _ und -.';
-$wb['login_txt'] = 'Login (optional)';
+$wb['login_txt'] = 'Login';
$wb['error_login_email_txt'] = 'Dieser Loginname ist nicht zulässig. Bitte verwenden Sie einen anderen Loginnamen oder die E-Mail-Adresse als Login.';
$wb['domain_txt'] = 'Domain';
$wb['now_txt'] = 'Now';
diff --git a/interface/web/mail/lib/lang/en_mail_user.lng b/interface/web/mail/lib/lang/en_mail_user.lng
index b66871d..65c810f 100644
--- a/interface/web/mail/lib/lang/en_mail_user.lng
+++ b/interface/web/mail/lib/lang/en_mail_user.lng
@@ -41,6 +41,6 @@
$wb['now_txt']='Now';
$wb['login_error_unique'] = 'Login is already taken.';
$wb['login_error_regex'] = 'Valid characters are A-Z, a-z, 0-9, ., _ and -.';
-$wb['login_txt'] = 'Login (optional)';
+$wb['login_txt'] = 'Login';
$wb['error_login_email_txt'] = 'This login is not allowed. Please enter a different login or use the mail address as login.';
?>
diff --git a/interface/web/monitor/show_sys_state.php b/interface/web/monitor/show_sys_state.php
index 6d30fb9..634880c 100644
--- a/interface/web/monitor/show_sys_state.php
+++ b/interface/web/monitor/show_sys_state.php
@@ -302,8 +302,8 @@
/*
* gets the state from the db and process it
*/
-function _processDbState($type, $serverId) {
- global $app, $serverState, $messages;
+function _processDbState($type, $serverId, $serverState, $messages) {
+ global $app;
/*
* Always the NEWEST record of each monitoring is responsible for the
diff --git a/interface/web/tools/dns_import_tupa.php b/interface/web/tools/dns_import_tupa.php
new file mode 100644
index 0000000..2e2cbcb
--- /dev/null
+++ b/interface/web/tools/dns_import_tupa.php
@@ -0,0 +1,156 @@
+<?php
+/*
+Copyright (c) 2008, Till Brehm, projektfarm Gmbh
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('admin');
+
+//* This is only allowed for administrators
+if(!$app->auth->is_admin()) die('only allowed for administrators.');
+
+$app->uses('tpl,validate_dns');
+
+$app->tpl->newTemplate('form.tpl.htm');
+$app->tpl->setInclude('content_tpl', 'templates/dns_import_tupa.htm');
+$msg = '';
+$error = '';
+
+// Resyncing dns zones
+if(isset($_POST['start']) && $_POST['start'] == 1) {
+
+ //* Set variable sin template
+ $app->tpl->setVar('dbhost',$_POST['dbhost']);
+ $app->tpl->setVar('dbname',$_POST['dbname']);
+ $app->tpl->setVar('dbuser',$_POST['dbuser']);
+ $app->tpl->setVar('dbpassword',$_POST['dbpassword']);
+
+ //* Establish connection to external database
+ $msg .= 'Connecting to external database...<br />';
+
+ //* Backup DB login details
+ $conf_bak['db_host'] = $conf['db_host'];
+ $conf_bak['db_database'] = $conf['db_database'];
+ $conf_bak['db_user'] = $conf['db_user'];
+ $conf_bak['db_password'] = $conf['db_password'];
+
+ //* Set external Login details
+ $conf['db_host'] = $_POST['dbhost'];
+ $conf['db_database'] = $_POST['dbname'];
+ $conf['db_user'] = $_POST['dbuser'];
+ $conf['db_password'] = $_POST['dbpassword'];
+
+ //* create new db object
+ $exdb = new db();
+
+ $server_id = 1;
+ $sys_userid = 1;
+ $sys_groupid = 1;
+
+ function addot($text) {
+ return trim($text) . '.';
+ }
+
+ //* Connect to DB
+ if($exdb->connect()) {
+ $domains = $exdb->queryAllRecords("SELECT * FROM domains WHERE type = 'MASTER'");
+ if(is_array($domains)) {
+ foreach($domains as $domain) {
+ $soa = $exdb->queryOneRecord("SELECT * FROM records WHERE type = 'SOA' AND domain_id = ".$domain['id']);
+ if(is_array($soa)) {
+ $parts = explode(' ',$soa['content']);
+ $origin = addot($soa['name']);
+ $ns = addot($parts[0]);
+ $mbox = addot($parts[1]);
+ $serial = $parts[2];
+ $refresh = 7200;
+ $retry = 540;
+ $expire = 604800;
+ $minimum = 86400;
+ $ttl = $soa['ttl'];
+
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `origin`, `ns`, `mbox`, `serial`, `refresh`, `retry`, `expire`, `minimum`, `ttl`, `active`, `xfer`) VALUES
+ ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$origin', '$ns', '$mbox', '$serial', '$refresh', '$retry', '$expire', '$minimum', '$ttl', 'Y', '')";
+ $dns_soa_id = $app->db->datalogInsert('dns_soa', $insert_data, 'id');
+ unset($parts);
+ $msg .= 'Import Zone: '.$soa['name'].'<br />';
+
+ //* Process the other records
+ $records = $exdb->queryAllRecords("SELECT * FROM records WHERE type != 'SOA' AND domain_id = ".$domain['id']);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $rr = array();
+
+ $rr['name'] = addot($rec['name']);
+ $rr['type'] = $rec['type'];
+ $rr['aux'] = $rec['prio'];
+ $rr['ttl'] = $rec['ttl'];
+
+ if($rec['type'] == 'NS' || $rec['type'] == 'MX' || $rec['type'] == 'CNAME') {
+ $rr['data'] = addot($rec['content']);
+ } else {
+ $rr['data'] = $rec['content'];
+ }
+
+ $insert_data = "(`sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `server_id`, `zone`, `name`, `type`, `data`, `aux`, `ttl`, `active`) VALUES
+ ('$sys_userid', '$sys_groupid', 'riud', 'riud', '', '$server_id', '$dns_soa_id', '$rr[name]', '$rr[type]', '$rr[data]', '$rr[aux]', '$rr[ttl]', 'Y')";
+ $dns_rr_id = $app->db->datalogInsert('dns_rr', $insert_data, 'id');
+ //$msg .= $insert_data.'<br />';
+
+ }
+ }
+ }
+
+ }
+ }
+
+
+
+ } else {
+ $error .= $exdb->errorMessage;
+ }
+
+ //* restore db login details
+ $conf['db_host'] = $conf_bak['db_host'];
+ $conf['db_database'] = $conf_bak['db_database'];
+ $conf['db_user'] = $conf_bak['db_user'];
+ $conf['db_password'] = $conf_bak['db_password'];
+
+}
+
+$app->tpl->setVar('msg',$msg);
+$app->tpl->setVar('error',$error);
+
+
+$app->tpl_defaults();
+$app->tpl->pparse();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/dns_resync.php b/interface/web/tools/dns_resync.php
deleted file mode 100644
index c80735d..0000000
--- a/interface/web/tools/dns_resync.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-/*
-Copyright (c) 2008, Till Brehm, projektfarm Gmbh
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of ISPConfig nor the names of its contributors
- may be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-require_once('../../lib/config.inc.php');
-require_once('../../lib/app.inc.php');
-
-//* Check permissions for module
-$app->auth->check_module_permissions('admin');
-
-//* This is only allowed for administrators
-if(!$app->auth->is_admin()) die('only allowed for administrators.');
-
-$app->uses('tpl,validate_dns');
-
-$app->tpl->newTemplate('form.tpl.htm');
-$app->tpl->setInclude('content_tpl', 'templates/dns_resync.htm');
-$msg = '';
-$error = '';
-
-// Resyncing dns zones
-if(isset($_POST['resync']) && $_POST['resync'] == 1) {
- $zones = $app->db->queryAllRecords("SELECT id,origin,serial FROM dns_soa WHERE active = 'Y'");
- if(is_array($zones) && !empty($zones)) {
- foreach($zones as $zone) {
- $records = $app->db->queryAllRecords("SELECT id,serial FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'");
- if(is_array($records)) {
- foreach($records as $rec) {
- $new_serial = $app->validate_dns->increase_serial($rec["serial"]);
- $app->db->datalogUpdate('dns_rr', "serial = '".$new_serial."'", 'id', $rec['id']);
-
- }
- }
- $new_serial = $app->validate_dns->increase_serial($zone["serial"]);
- $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']);
- $msg .= "Resynced: ".$zone['origin'].'<br />';
- }
- } else {
- $error .= "No zones found to sync.<br />";
- }
-
-}
-
-$app->tpl->setVar('msg',$msg);
-$app->tpl->setVar('error',$error);
-
-
-//* load language file
-/*
-$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_mailbox_import.lng';
-include($lng_file);
-$app->tpl->setVar($wb);
-*/
-
-$app->tpl_defaults();
-$app->tpl->pparse();
-
-
-?>
\ No newline at end of file
diff --git a/interface/web/tools/import_ispconfig.php b/interface/web/tools/import_ispconfig.php
new file mode 100644
index 0000000..eb0a2f3
--- /dev/null
+++ b/interface/web/tools/import_ispconfig.php
@@ -0,0 +1,303 @@
+<?php
+/*
+Copyright (c) 2012, Till Brehm, projektfarm Gmbh, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('admin');
+
+//* This is only allowed for administrators
+if(!$app->auth->is_admin()) die('only allowed for administrators.');
+
+$app->uses('tpl,validate_dns');
+
+$app->tpl->newTemplate('form.tpl.htm');
+$app->tpl->setInclude('content_tpl', 'templates/import_ispconfig.htm');
+$msg = '';
+$error = '';
+
+//* load language file
+$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_import_ispconfig.lng';
+include($lng_file);
+$app->tpl->setVar($wb);
+
+if(isset($_POST['connected'])) {
+ $connected = intval($_POST['connected']);
+ if($connected == 0) {
+
+ //* Try to connect to remote server
+ if(empty($_POST['remote_server'])) $error .= 'Remote Server is empty.</br>';
+ if(empty($_POST['remote_user'])) $error .= 'Remote User is empty.</br>';
+ if(empty($_POST['remote_password'])) $error .= 'Remote Password is empty.</br>';
+
+ if($error == '') {
+ try {
+ $client = new SoapClient(null, array('location' => $_POST['remote_server'],
+ 'uri' => $_POST['remote_server'].'/index.php',
+ 'trace' => 1,
+ 'exceptions' => 1));
+
+ if($remote_session_id = $client->login($_POST['remote_user'],$_POST['remote_password'])) {
+ $connected = 1;
+ $msg .= 'Successfully connected to remote server.';
+ }
+ } catch (SoapFault $e) {
+ //echo $client->__getLastResponse();
+ $error .= $e->getMessage();
+ $connected = 0;
+ }
+ }
+ }
+
+ if($connected == 1) {
+
+ //* Fill the client select field
+ $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER BY name";
+ $clients = $app->db->queryAllRecords($sql);
+ $client_select = "";
+ if(is_array($clients)) {
+ foreach( $clients as $client) {
+ $selected = @($client['groupid'] == $_POST['client_group_id'])?'SELECTED':'';
+ $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n";
+ }
+ }
+ $app->tpl->setVar("client_group_id",$client_select);
+
+
+ try {
+ $client = new SoapClient(null, array('location' => $_POST['remote_server'],
+ 'uri' => $_POST['remote_server'].'/index.php',
+ 'trace' => 1,
+ 'exceptions' => 1));
+
+ if(!isset($remote_session_id)) $remote_session_id = $_POST['remote_session_id'];
+
+ //* Get all email domains
+ $mail_domains = $client->mail_domain_get($remote_session_id, array('active' => 'y'));
+ $mail_domain_select = '<option value="">-- select domain --</option>';
+ if(is_array($mail_domains)) {
+ foreach( $mail_domains as $mail_domain) {
+ $selected = @($mail_domain['domain'] == $_POST['mail_domain'])?'SELECTED':'';
+ $mail_domain_select .= "<option value='$mail_domain[domain]' $selected>$mail_domain[domain]</option>\r\n";
+ }
+ }
+ $app->tpl->setVar("mail_domain",$mail_domain_select);
+
+ //* Do the import
+ if($_POST['mail_domain'] != '') start_domain_import($_POST['mail_domain']);
+
+
+
+ } catch (SoapFault $e) {
+ //echo $client->__getLastResponse();
+ $error .= $e->getMessage();
+ $connected = 0;
+ }
+
+ }
+
+}
+
+$app->tpl->setVar('remote_server',$_POST['remote_server']);
+$app->tpl->setVar('remote_user',$_POST['remote_user']);
+$app->tpl->setVar('remote_password',$_POST['remote_password']);
+$app->tpl->setVar('connected',$connected);
+$app->tpl->setVar('remote_session_id',$remote_session_id);
+$app->tpl->setVar('msg',$msg);
+$app->tpl->setVar('error',$error);
+
+$app->tpl_defaults();
+$app->tpl->pparse();
+
+###########################################################
+
+function start_domain_import($mail_domain) {
+ global $app, $conf, $client, $msg, $error, $remote_session_id;
+
+ //* Get the user and groupid for the new records
+ $sys_groupid = intval($_POST['client_group_id']);
+ $tmp = $app->db->queryOneRecord("SELECT userid FROM sys_user WHERE default_group = $sys_groupid");
+ $sys_userid = intval($tmp['userid']);
+ unset($tmp);
+ if($sys_groupid == 0) $error .= 'Inavlid groupid<br />';
+ if($sys_userid == 0) $error .= 'Inavlid Userid<br />';
+
+ //* get the mail domain record
+ $mail_domain_rec = $client->mail_domain_get($remote_session_id, array('domain' => $mail_domain));
+ if(is_array($mail_domain_rec)) {
+ $mail_domain_rec = $mail_domain_rec[0];
+ $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM mail_domain WHERE domain = '".$app->db->quote($mail_domain)."'");
+ if($tmp['number'] > 0) $error .= 'Domain '.$mail_domain.' exists already in local database.<br />';
+ unset($tmp);
+
+ //* Change the record owner and remove the index field
+ $mail_domain_rec['sys_userid'] = $sys_userid;
+ $mail_domain_rec['sys_groupid'] = $sys_groupid;
+ unset($mail_domain_rec['domain_id']);
+
+ //* Insert domain if no error occurred
+ if($error == '') {
+ $app->db->datalogInsert('mail_domain', $mail_domain_rec, 'domain_id');
+ $msg .= "Imported mail domain ".$mail_domain_rec['domain']."<br />";
+ } else {
+ return false;
+ }
+
+ //* Import mailboxes
+ if(isset($_POST['import_mailbox']) && $_POST['import_mailbox'] == 1) {
+ $mail_users = $client->mail_user_get($remote_session_id, array('email' => '%@'.$mail_domain));
+ if(is_array($mail_users)) {
+ foreach($mail_users as $mail_user) {
+ $tmp = $app->db->queryOneRecord("SELECT count(mailuser_id) as number FROM mail_user WHERE email = '".$app->db->quote($mail_user['email'])."'");
+ if($tmp['number'] == 0) {
+
+ //* Prepare record
+ $mail_user['sys_userid'] = $sys_userid;
+ $mail_user['sys_groupid'] = $sys_groupid;
+ $remote_mailuser_id = $mail_user['mailuser_id'];
+ unset($mail_user['mailuser_id']);
+ if(!isset($_POST['import_user_filter'])) $mail_user['custom_mailfilter'] = '';
+
+ //* Insert record in DB
+ $local_mailuser_id = $app->db->datalogInsert('mail_user', $mail_user, 'mailuser_id');
+ $msg .= "Imported mailbox ".$mail_user['email']."<br />";
+
+ //* Import mail user filters
+ if(isset($_POST['import_user_filter']) && $_POST['import_user_filter'] == 1 && $local_mailuser_id > 0) {
+
+ $mail_user_filters = $client->mail_user_filter_get($remote_session_id, array('mailuser_id' => $remote_mailuser_id));
+
+ if(is_array($mail_user_filters)) {
+ foreach($mail_user_filters as $mail_user_filter) {
+ $mail_user_filter['sys_userid'] = $sys_userid;
+ $mail_user_filter['sys_groupid'] = $sys_groupid;
+ $mail_user_filter['mailuser_id'] = $local_mailuser_id;
+ unset($mail_user_filter['filter_id']);
+
+ //* Insert record in DB
+ $app->db->datalogInsert('mail_user_filter', $mail_user_filter, 'filter_id');
+ $msg .= "Imported mailbox filter ".$mail_user['email'].": ".$mail_user_filter['rulename']."<br />";
+ }
+ }
+ }
+ } else {
+ $error .= "Mailbox ".$mail_user['email']." exists in local database. Skipped import of mailbox<br />";
+ }
+
+ }
+ }
+ }
+
+ //* Import email aliases
+ if(isset($_POST['import_alias']) && $_POST['import_alias'] == 1) {
+ $mail_aliases = $client->mail_alias_get($remote_session_id, array('type' => 'alias', 'destination' => '%@'.$mail_domain));
+ if(is_array($mail_aliases)) {
+ foreach($mail_aliases as $mail_alias) {
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'alias' AND source = '".$app->db->quote($mail_alias['source'])."' AND destination = '".$app->db->quote($mail_alias['destination'])."'");
+ if($tmp['number'] == 0) {
+ $mail_alias['sys_userid'] = $sys_userid;
+ $mail_alias['sys_groupid'] = $sys_groupid;
+ unset($mail_alias['forwarding_id']);
+ $app->db->datalogInsert('mail_forwarding', $mail_alias, 'forwarding_id');
+ $msg .= "Imported email alias ".$mail_alias['source']."<br />";
+ } else {
+ $error .= "Email alias ".$mail_alias['source']." exists in local database. Skipped import.<br />";
+ }
+
+ }
+ }
+ }
+
+ //* Import domain aliases
+ if(isset($_POST['import_aliasdomain']) && $_POST['import_aliasdomain'] == 1) {
+ $mail_aliases = $client->mail_alias_get($remote_session_id, array('type' => 'aliasdomain', 'destination' => '@'.$mail_domain));
+ if(is_array($mail_aliases)) {
+ foreach($mail_aliases as $mail_alias) {
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'aliasdomain' AND source = '".$app->db->quote($mail_alias['source'])."' AND destination = '".$app->db->quote($mail_alias['destination'])."'");
+ if($tmp['number'] == 0) {
+ $mail_alias['sys_userid'] = $sys_userid;
+ $mail_alias['sys_groupid'] = $sys_groupid;
+ unset($mail_alias['forwarding_id']);
+ $app->db->datalogInsert('mail_forwarding', $mail_alias, 'forwarding_id');
+ $msg .= "Imported email aliasdomain ".$mail_alias['source']."<br />";
+ } else {
+ $error .= "Email aliasdomain ".$mail_alias['source']." exists in local database. Skipped import.<br />";
+ }
+
+ }
+ }
+ }
+
+ //* Import email forward
+ if(isset($_POST['import_forward']) && $_POST['import_forward'] == 1) {
+ $mail_forwards = $client->mail_forward_get($remote_session_id, array('type' => 'forward', 'source' => '%@'.$mail_domain));
+ if(is_array($mail_forwards)) {
+ foreach($mail_forwards as $mail_forward) {
+ $tmp = $app->db->queryOneRecord("SELECT count(forwarding_id) as number FROM mail_forwarding WHERE `type` = 'forward' AND source = '".$app->db->quote($mail_forward['source'])."' AND destination = '".$app->db->quote($mail_forward['destination'])."'");
+ if($tmp['number'] == 0) {
+ $mail_forward['sys_userid'] = $sys_userid;
+ $mail_forward['sys_groupid'] = $sys_groupid;
+ unset($mail_forward['forwarding_id']);
+ $app->db->datalogInsert('mail_forwarding', $mail_forward, 'forwarding_id');
+ $msg .= "Imported email forward ".$mail_forward['source']."<br />";
+ } else {
+ $error .= "Email forward ".$mail_forward['source']." exists in local database. Skipped import.<br />";
+ }
+
+ }
+ }
+ }
+
+ //* Import spamfilter
+ if(isset($_POST['import_spamfilter']) && $_POST['import_spamfilter'] == 1) {
+ $mail_spamfilters = $client->mail_spamfilter_user_get($remote_session_id, array('email' => '%@'.$mail_domain));
+ if(is_array($mail_spamfilters)) {
+ foreach($mail_spamfilters as $mail_spamfilter) {
+ $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM spamfilter_users WHERE email = '".$app->db->quote($mail_spamfilter['email'])."'");
+ if($tmp['number'] == 0) {
+ $mail_spamfilter['sys_userid'] = $sys_userid;
+ $mail_spamfilter['sys_groupid'] = $sys_groupid;
+ unset($mail_spamfilter['id']);
+ $app->db->datalogInsert('spamfilter_users', $mail_spamfilter, 'id');
+ $msg .= "Imported spamfilter user ".$mail_spamfilter['email']."<br />";
+ } else {
+ $error .= "Spamfilter user ".$mail_spamfilter['email']." exists in local database. Skipped import.<br />";
+ }
+
+ }
+ }
+ }
+
+ }
+
+}
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ar.lng b/interface/web/tools/lib/lang/ar.lng
index f33fe1a..eb2f76d 100644
--- a/interface/web/tools/lib/lang/ar.lng
+++ b/interface/web/tools/lib/lang/ar.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Tools';
$wb['Password and Language'] = 'Password and Language';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/ar_import_ispconfig.lng b/interface/web/tools/lib/lang/ar_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/ar_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ar_resync.lng b/interface/web/tools/lib/lang/ar_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/ar_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/bg.lng b/interface/web/tools/lib/lang/bg.lng
index d302dc5..472b603 100644
--- a/interface/web/tools/lib/lang/bg.lng
+++ b/interface/web/tools/lib/lang/bg.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig инструменти';
$wb['Password and Language'] = 'Парола и език';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/bg_import_ispconfig.lng b/interface/web/tools/lib/lang/bg_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/bg_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/bg_resync.lng b/interface/web/tools/lib/lang/bg_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/bg_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/br.lng b/interface/web/tools/lib/lang/br.lng
index db8af60..78f894e 100644
--- a/interface/web/tools/lib/lang/br.lng
+++ b/interface/web/tools/lib/lang/br.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Ferramentas';
$wb['Password and Language'] = 'Senha e Idioma';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/br_import_ispconfig.lng b/interface/web/tools/lib/lang/br_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/br_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/br_resync.lng b/interface/web/tools/lib/lang/br_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/br_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/cz.lng b/interface/web/tools/lib/lang/cz.lng
index 7dc8e90..491e515 100644
--- a/interface/web/tools/lib/lang/cz.lng
+++ b/interface/web/tools/lib/lang/cz.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig nástroje';
$wb['Password and Language'] = 'Heslo a jazyk';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/cz_import_ispconfig.lng b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/cz_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/cz_resync.lng b/interface/web/tools/lib/lang/cz_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/cz_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/de.lng b/interface/web/tools/lib/lang/de.lng
index 5fc2d03..d595646 100644
--- a/interface/web/tools/lib/lang/de.lng
+++ b/interface/web/tools/lib/lang/de.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Einstellungen';
$wb['Password and Language'] = 'Passwort und Sprache';
$wb['ispconfig_tools_note'] = 'Dieses Modul erlaubt Ihnen, das Passwort und die Sprache zu ändern sowie einen Resync der DNS-Records anzustoßen.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/de_import_ispconfig.lng b/interface/web/tools/lib/lang/de_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/de_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/de_resync.lng b/interface/web/tools/lib/lang/de_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/de_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/el.lng b/interface/web/tools/lib/lang/el.lng
index d473a6e..56442c3 100644
--- a/interface/web/tools/lib/lang/el.lng
+++ b/interface/web/tools/lib/lang/el.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Εργαλεία ISPConfig';
$wb['Password and Language'] = 'Συνθηματικό και Γλώσσα';
$wb['ispconfig_tools_note'] = 'Το άρθρωμα σας επιτρέπει να αλλάξετε το συνθηματικό και την γλώσσα και να ξεκινήσετε έναν επανασυγχρονισμό των εγγραφών DNS.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/el_import_ispconfig.lng b/interface/web/tools/lib/lang/el_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/el_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/el_resync.lng b/interface/web/tools/lib/lang/el_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/el_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/en.lng b/interface/web/tools/lib/lang/en.lng
index 1dee19d..fee9301 100644
--- a/interface/web/tools/lib/lang/en.lng
+++ b/interface/web/tools/lib/lang/en.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Tools';
$wb['Password and Language'] = 'Password and Language';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
+$wb['Sync Tools'] = 'Sync Tools';
$wb['Resync'] = 'Resync';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/en_import_ispconfig.lng b/interface/web/tools/lib/lang/en_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/en_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/en_resync.lng b/interface/web/tools/lib/lang/en_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/en_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/es.lng b/interface/web/tools/lib/lang/es.lng
index 41205f0..1d8363a 100644
--- a/interface/web/tools/lib/lang/es.lng
+++ b/interface/web/tools/lib/lang/es.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Herramientas ISPConfig';
$wb['Password and Language'] = 'Contraseña e Idioma';
$wb['ispconfig_tools_note'] = 'Este módulo le permite cambiar la contraseña y el idioma y para iniciar una resincronización de los registros de DNS.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/es_import_ispconfig.lng b/interface/web/tools/lib/lang/es_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/es_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/es_resync.lng b/interface/web/tools/lib/lang/es_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/es_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/fi.lng b/interface/web/tools/lib/lang/fi.lng
index 1e21641..93b19ea 100755
--- a/interface/web/tools/lib/lang/fi.lng
+++ b/interface/web/tools/lib/lang/fi.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig-työkalut';
$wb['Password and Language'] = 'Salasanat ja kielet';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/fi_import_ispconfig.lng b/interface/web/tools/lib/lang/fi_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/fi_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/fi_resync.lng b/interface/web/tools/lib/lang/fi_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/fi_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/fr.lng b/interface/web/tools/lib/lang/fr.lng
index 52320c2..5b8c942 100644
--- a/interface/web/tools/lib/lang/fr.lng
+++ b/interface/web/tools/lib/lang/fr.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Outils ISPConfig';
$wb['Password and Language'] = 'Mot de passe et Langue';
$wb['ispconfig_tools_note'] = 'Ce module vous permet de changer le mot de passe utilisateur et la langue et de démarrer une resynchronisation des enregistrement DNS.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/fr_import_ispconfig.lng b/interface/web/tools/lib/lang/fr_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/fr_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/fr_resync.lng b/interface/web/tools/lib/lang/fr_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/fr_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/hr.lng b/interface/web/tools/lib/lang/hr.lng
index 817d63e..d08322a 100644
--- a/interface/web/tools/lib/lang/hr.lng
+++ b/interface/web/tools/lib/lang/hr.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Control panel alati';
$wb['Password and Language'] = 'Šifra i jezik';
$wb['ispconfig_tools_note'] = 'Ovaj modul omogućava promjenu šifre i jezika te možete pokrenuti sinkronizaciju DNS zapisa.';
-$wb['Dns Tools'] = 'DNS alati';
$wb['Resync'] = 'Sinkroniziraj DNS zapise';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/hr_import_ispconfig.lng b/interface/web/tools/lib/lang/hr_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/hr_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/hr_resync.lng b/interface/web/tools/lib/lang/hr_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/hr_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/hu.lng b/interface/web/tools/lib/lang/hu.lng
index e2c17f0..7abe1d9 100644
--- a/interface/web/tools/lib/lang/hu.lng
+++ b/interface/web/tools/lib/lang/hu.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig eszközök';
$wb['Password and Language'] = 'Jelszó és nyelv';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/hu_import_ispconfig.lng b/interface/web/tools/lib/lang/hu_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/hu_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/hu_resync.lng b/interface/web/tools/lib/lang/hu_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/hu_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/id.lng b/interface/web/tools/lib/lang/id.lng
index 9a2dc8f..d8594f8 100644
--- a/interface/web/tools/lib/lang/id.lng
+++ b/interface/web/tools/lib/lang/id.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Perkakas ISPConfig';
$wb['Password and Language'] = 'Sandi dan Bahasa';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/id_import_ispconfig.lng b/interface/web/tools/lib/lang/id_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/id_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/id_resync.lng b/interface/web/tools/lib/lang/id_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/id_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/it.lng b/interface/web/tools/lib/lang/it.lng
index 672bf85..6921033 100644
--- a/interface/web/tools/lib/lang/it.lng
+++ b/interface/web/tools/lib/lang/it.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Strumenti ISPConfig';
$wb['Password and Language'] = 'Password e Lingua';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/it_import_ispconfig.lng b/interface/web/tools/lib/lang/it_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/it_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/it_resync.lng b/interface/web/tools/lib/lang/it_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/it_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ja.lng b/interface/web/tools/lib/lang/ja.lng
index ecb7716..25f6acf 100644
--- a/interface/web/tools/lib/lang/ja.lng
+++ b/interface/web/tools/lib/lang/ja.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Tools';
$wb['Password and Language'] = 'パスワードと言語';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/ja_import_ispconfig.lng b/interface/web/tools/lib/lang/ja_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/ja_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ja_resync.lng b/interface/web/tools/lib/lang/ja_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/ja_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/nl.lng b/interface/web/tools/lib/lang/nl.lng
index bc0f721..3c7eb23 100644
--- a/interface/web/tools/lib/lang/nl.lng
+++ b/interface/web/tools/lib/lang/nl.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Tools';
$wb['Password and Language'] = 'Wachtwoord en taal';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/nl_import_ispconfig.lng b/interface/web/tools/lib/lang/nl_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/nl_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/nl_resync.lng b/interface/web/tools/lib/lang/nl_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/nl_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/pl.lng b/interface/web/tools/lib/lang/pl.lng
index 365e81b..2063f33 100644
--- a/interface/web/tools/lib/lang/pl.lng
+++ b/interface/web/tools/lib/lang/pl.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Narzędzia ISPConfig';
$wb['Password and Language'] = 'Hasło i język';
$wb['ispconfig_tools_note'] = 'Ten moduł pozwala na zmianę hasła i języka oraz na ponowną synchronizację rekordów DNS.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/pl_import_ispconfig.lng b/interface/web/tools/lib/lang/pl_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/pl_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/pl_resync.lng b/interface/web/tools/lib/lang/pl_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/pl_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/pt.lng b/interface/web/tools/lib/lang/pt.lng
index 637f100..d17b745 100644
--- a/interface/web/tools/lib/lang/pt.lng
+++ b/interface/web/tools/lib/lang/pt.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Ferramentas';
$wb['Password and Language'] = 'Senha e Idioma';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/pt_import_ispconfig.lng b/interface/web/tools/lib/lang/pt_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/pt_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/pt_resync.lng b/interface/web/tools/lib/lang/pt_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/pt_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ro.lng b/interface/web/tools/lib/lang/ro.lng
index a120b37..b4c1eec 100644
--- a/interface/web/tools/lib/lang/ro.lng
+++ b/interface/web/tools/lib/lang/ro.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Utilitare';
$wb['Password and Language'] = 'Parola si Limba';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/ro_import_ispconfig.lng b/interface/web/tools/lib/lang/ro_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/ro_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ro_resync.lng b/interface/web/tools/lib/lang/ro_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/ro_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ru.lng b/interface/web/tools/lib/lang/ru.lng
index 5e7cf8d..6b6f584 100644
--- a/interface/web/tools/lib/lang/ru.lng
+++ b/interface/web/tools/lib/lang/ru.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig утилиты';
$wb['Password and Language'] = 'Пароли и языки';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/ru_import_ispconfig.lng b/interface/web/tools/lib/lang/ru_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/ru_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/ru_resync.lng b/interface/web/tools/lib/lang/ru_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/ru_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/se.lng b/interface/web/tools/lib/lang/se.lng
index f33fe1a..eb2f76d 100644
--- a/interface/web/tools/lib/lang/se.lng
+++ b/interface/web/tools/lib/lang/se.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Tools';
$wb['Password and Language'] = 'Password and Language';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/se_import_ispconfig.lng b/interface/web/tools/lib/lang/se_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/se_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/se_resync.lng b/interface/web/tools/lib/lang/se_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/se_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/sk.lng b/interface/web/tools/lib/lang/sk.lng
index 22b11ad..9892448 100644
--- a/interface/web/tools/lib/lang/sk.lng
+++ b/interface/web/tools/lib/lang/sk.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'Nástroje';
$wb['Password and Language'] = 'Heslo a jazyk';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/sk_import_ispconfig.lng b/interface/web/tools/lib/lang/sk_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/sk_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/sk_resync.lng b/interface/web/tools/lib/lang/sk_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/sk_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/tr.lng b/interface/web/tools/lib/lang/tr.lng
index 4bcc975..6513fce 100644
--- a/interface/web/tools/lib/lang/tr.lng
+++ b/interface/web/tools/lib/lang/tr.lng
@@ -4,6 +4,9 @@
$wb['ISPConfig Tools'] = 'ISPConfig Araçları';
$wb['Password and Language'] = 'Şifre ve Dil';
$wb['ispconfig_tools_note'] = 'This module allows you to change the password and language and to start a resync of the DNS records.';
-$wb['Dns Tools'] = 'Dns Tools';
$wb['Resync'] = 'Resync';
+$wb['Sync Tools'] = 'Sync Tools';
+$wb['Import'] = 'Import';
+$wb['ISPConfig 3 mail'] = 'ISPConfig 3 mail';
+$wb['PDNS Tupa'] = 'PowerDNS Tupa';
?>
diff --git a/interface/web/tools/lib/lang/tr_import_ispconfig.lng b/interface/web/tools/lib/lang/tr_import_ispconfig.lng
new file mode 100644
index 0000000..65ea145
--- /dev/null
+++ b/interface/web/tools/lib/lang/tr_import_ispconfig.lng
@@ -0,0 +1,24 @@
+<?php
+$wb['head_txt'] = 'Import email configuration from ISPConfig 3';
+$wb['legend_txt'] = 'Remote server connection details';
+$wb['legend2_txt'] = 'Import email domain';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start Import';
+$wb['btn_connect_txt'] = 'Connect to remote server';
+$wb['btn_cancel_txt'] = 'Cancel';
+$wb['client_group_id_txt'] = 'Local client';
+$wb['mail_domain_txt'] = 'Remote email domain';
+$wb['import_mailbox_txt'] = 'Import mailbox';
+$wb['import_aliasdomain_txt'] = 'Import alias domain';
+$wb['import_alias_txt'] = 'Import email alias';
+$wb['import_forward_txt'] = 'Import forward';
+$wb['import_user_filter_txt'] = 'Import user filter';
+$wb['import_spamfilter_txt'] = 'Import spamfilter';
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/lang/tr_resync.lng b/interface/web/tools/lib/lang/tr_resync.lng
new file mode 100644
index 0000000..f4cbf0d
--- /dev/null
+++ b/interface/web/tools/lib/lang/tr_resync.lng
@@ -0,0 +1,13 @@
+<?php
+$wb['head_txt'] = 'Resync Tool';
+$wb['legend_txt'] = 'Resync';
+$wb['resync_sites_txt'] = 'Resync Websites';
+$wb['resync_ftp_txt'] = 'Resync FTP users';
+$wb['resync_shell_txt'] = 'Resync shell users';
+$wb['resync_cron_txt'] = 'Resync cronjobs';
+$wb['resync_db_txt'] = 'Resync clientdb config';
+$wb['resync_mailbox_txt'] = 'Resync Mailboxes';
+$wb['resync_dns_txt'] = 'Resync DNS records';
+$wb['btn_start_txt'] = 'Start';
+$wb['btn_cancel_txt'] = 'Cancel';
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/menu.d/import.menu.php b/interface/web/tools/lib/menu.d/import.menu.php
new file mode 100644
index 0000000..cf5f9eb
--- /dev/null
+++ b/interface/web/tools/lib/menu.d/import.menu.php
@@ -0,0 +1,26 @@
+<?php
+
+
+// Menu
+
+if($app->auth->is_admin()) {
+
+$items = array();
+
+$items[] = array( 'title' => 'ISPConfig 3 mail',
+ 'target' => 'content',
+ 'link' => 'tools/import_ispconfig.php');
+
+$items[] = array( 'title' => 'PDNS Tupa',
+ 'target' => 'content',
+ 'link' => 'tools/dns_import_tupa.php');
+
+
+$module['nav'][] = array( 'title' => 'Import',
+ 'open' => 1,
+ 'items' => $items);
+
+unset($items);
+}
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/lib/menu.d/dns_resync.menu.php b/interface/web/tools/lib/menu.d/resync.menu.php
similarity index 69%
rename from interface/web/tools/lib/menu.d/dns_resync.menu.php
rename to interface/web/tools/lib/menu.d/resync.menu.php
index f6b6ae0..3ef45fb 100644
--- a/interface/web/tools/lib/menu.d/dns_resync.menu.php
+++ b/interface/web/tools/lib/menu.d/resync.menu.php
@@ -9,10 +9,10 @@
$items[] = array( 'title' => 'Resync',
'target' => 'content',
- 'link' => 'tools/dns_resync.php');
+ 'link' => 'tools/resync.php');
-$module['nav'][] = array( 'title' => 'DNS Tools',
+$module['nav'][] = array( 'title' => 'Sync Tools',
'open' => 1,
'items' => $items);
diff --git a/interface/web/tools/lib/module.conf.php b/interface/web/tools/lib/module.conf.php
index a88aab0..3190d70 100644
--- a/interface/web/tools/lib/module.conf.php
+++ b/interface/web/tools/lib/module.conf.php
@@ -29,7 +29,7 @@
if ($dh = opendir($menu_dir)) {
//** Go through all files in the menu dir
while (($file = readdir($dh)) !== false) {
- if($file != '.' && $file != '..' && substr($file,-9,9) == '.menu.php') {
+ if($file != '.' && $file != '..' && substr($file,-9,9) == '.menu.php' && $file != 'dns_resync.menu.php') {
include_once($menu_dir.'/'.$file);
}
}
diff --git a/interface/web/tools/resync.php b/interface/web/tools/resync.php
new file mode 100644
index 0000000..86ba27d
--- /dev/null
+++ b/interface/web/tools/resync.php
@@ -0,0 +1,166 @@
+<?php
+/*
+Copyright (c) 2012, Till Brehm, projektfarm Gmbh, ISPConfig UG
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of ISPConfig nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require_once('../../lib/config.inc.php');
+require_once('../../lib/app.inc.php');
+
+//* Check permissions for module
+$app->auth->check_module_permissions('admin');
+
+//* This is only allowed for administrators
+if(!$app->auth->is_admin()) die('only allowed for administrators.');
+
+$app->uses('tpl,validate_dns');
+
+$app->tpl->newTemplate('form.tpl.htm');
+$app->tpl->setInclude('content_tpl', 'templates/resync.htm');
+$msg = '';
+$error = '';
+
+//* load language file
+$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_resync.lng';
+include($lng_file);
+$app->tpl->setVar($wb);
+
+//* Resyncing websites
+if(isset($_POST['resync_sites']) && $_POST['resync_sites'] == 1) {
+ $db_table = 'web_domain';
+ $index_field = 'domain_id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced Website: ".$rec['domain'].'<br />';
+ }
+ }
+}
+
+//* Resyncing ftp
+if(isset($_POST['resync_ftp']) && $_POST['resync_ftp'] == 1) {
+ $db_table = 'ftp_user';
+ $index_field = 'ftp_user_id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced FTP user: ".$rec['username'].'<br />';
+ }
+ }
+}
+
+//* Resyncing shell
+if(isset($_POST['resync_shell']) && $_POST['resync_shell'] == 1) {
+ $db_table = 'shell_user';
+ $index_field = 'shell_user_id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced Shell user: ".$rec['username'].'<br />';
+ }
+ }
+}
+
+//* Resyncing Cronjobs
+if(isset($_POST['resync_cron']) && $_POST['resync_cron'] == 1) {
+ $db_table = 'cron';
+ $index_field = 'id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced Cron: ".$rec['id'].'<br />';
+ }
+ }
+}
+
+//* Resyncing Databases
+if(isset($_POST['resync_db']) && $_POST['resync_db'] == 1) {
+ $db_table = 'web_database';
+ $index_field = 'database_id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced Database: ".$rec['database_name'].'<br />';
+ }
+ }
+}
+
+//* Resyncing Mailboxes
+if(isset($_POST['resync_mailbox']) && $_POST['resync_mailbox'] == 1) {
+ $db_table = 'mail_user';
+ $index_field = 'mailuser_id';
+ $sql = "SELECT * FROM ".$db_table." WHERE active = 'y'";
+ $records = $app->db->queryAllRecords($sql);
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
+ $msg .= "Resynced Mailbox: ".$rec['email'].'<br />';
+ }
+ }
+}
+
+
+//* Resyncing dns zones
+if(isset($_POST['resync_dns']) && $_POST['resync_dns'] == 1) {
+ $zones = $app->db->queryAllRecords("SELECT id,origin,serial FROM dns_soa WHERE active = 'Y'");
+ if(is_array($zones) && !empty($zones)) {
+ foreach($zones as $zone) {
+ $records = $app->db->queryAllRecords("SELECT id,serial FROM dns_rr WHERE zone = ".$zone['id']." AND active = 'Y'");
+ if(is_array($records)) {
+ foreach($records as $rec) {
+ $new_serial = $app->validate_dns->increase_serial($rec["serial"]);
+ $app->db->datalogUpdate('dns_rr', "serial = '".$new_serial."'", 'id', $rec['id']);
+
+ }
+ }
+ $new_serial = $app->validate_dns->increase_serial($zone["serial"]);
+ $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $zone['id']);
+ $msg .= "Resynced DNS zone: ".$zone['origin'].'<br />';
+ }
+ } else {
+ $error .= "No zones found to sync.<br />";
+ }
+
+}
+
+$app->tpl->setVar('msg',$msg);
+$app->tpl->setVar('error',$error);
+
+$app->tpl_defaults();
+$app->tpl->pparse();
+
+
+?>
\ No newline at end of file
diff --git a/interface/web/tools/templates/dns_import_tupa.htm b/interface/web/tools/templates/dns_import_tupa.htm
new file mode 100644
index 0000000..d616eba
--- /dev/null
+++ b/interface/web/tools/templates/dns_import_tupa.htm
@@ -0,0 +1,56 @@
+<h2>Import DNS recods from Tupa PowerDNS controlpanel</h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_language_import">
+
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>PowerDNS Tupa import</legend>
+ <div class="ctrlHolder">
+ <p class="label">Tupa database hostname</p>
+ <div class="multiField">
+ <input id="dbhost" type="text" value="{tmpl_var name='dbhost'}" name="dbhost" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">Tupa database name</p>
+ <div class="multiField">
+ <input id="dbname" type="text" value="{tmpl_var name='dbname'}" name="dbname" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">Tupa database user</p>
+ <div class="multiField">
+ <input id="dbuser" type="text" value="{tmpl_var name='dbuser'}" name="dbuser" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">Tupa database password</p>
+ <div class="multiField">
+ <input id="dbpassword" type="text" value="{tmpl_var name='dbpassword'}" name="dbpassword" />
+ </div>
+ </div>
+
+ <div class="ctrlHolder">
+ <p class="label">Import DNS Records</p>
+ <div class="multiField">
+ <input id="start" type="checkbox" value="1" name="start" checked/>
+ </div>
+ </div>
+ </fieldset>
+
+ <tmpl_if name="msg">
+ <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
+ </tmpl_if>
+ <tmpl_if name="error">
+ <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
+ </tmpl_if>
+
+ <input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/dns_import_tupa.php');"><span>Start</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>Cancel</span></button>
+ </div>
+ </div>
+
+</div>
diff --git a/interface/web/tools/templates/dns_resync.htm b/interface/web/tools/templates/dns_resync.htm
deleted file mode 100644
index 372206a..0000000
--- a/interface/web/tools/templates/dns_resync.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<h2>DNS Resync</h2>
-<p><tmpl_var name="list_desc_txt"></p>
-
-<div class="panel panel_language_import">
-
- <div class="pnl_formsarea">
- <fieldset class="inlineLabels"><legend>DNS Resync</legend>
- <div class="ctrlHolder">
- <p class="label">Resync DNS Records</p>
- <div class="multiField">
- <input id="resync" type="checkbox" value="1" name="resync" checked/>
- </div>
- </div>
- </fieldset>
-
- <tmpl_if name="msg">
- <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
- </tmpl_if>
- <tmpl_if name="error">
- <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
- </tmpl_if>
-
- <input type="hidden" name="id" value="{tmpl_var name='id'}">
-
- <div class="buttonHolder buttons">
- <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/dns_resync.php');"><span>Start</span></button>
- <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>Cancel</span></button>
- </div>
- </div>
-
-</div>
diff --git a/interface/web/tools/templates/import_ispconfig.htm b/interface/web/tools/templates/import_ispconfig.htm
new file mode 100644
index 0000000..4980dc4
--- /dev/null
+++ b/interface/web/tools/templates/import_ispconfig.htm
@@ -0,0 +1,105 @@
+<h2>{tmpl_var name="head_txt"}</h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_language_import">
+
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>{tmpl_var name="legend_txt"}</legend>
+ <div class="ctrlHolder">
+ <p class="label">Remote API URL</p>
+ <div class="multiField">
+ <input id="remote_server" type="text" value="{tmpl_var name='remote_server'}" name="remote_server" /> (e.g. https://www.example.com:8080/remote/ )
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">Remote User</p>
+ <div class="multiField">
+ <input id="remote_user" type="text" value="{tmpl_var name='remote_user'}" name="remote_user" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">Remote password</p>
+ <div class="multiField">
+ <input id="remote_password" type="text" value="{tmpl_var name='remote_password'}" name="remote_password" />
+ </div>
+ </div>
+ </fieldset>
+ <tmpl_if name="connected">
+<div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>{tmpl_var name="legend2_txt"}</legend>
+ <div class="ctrlHolder">
+ <label for="mail_domain">{tmpl_var name='mail_domain_txt'}</label>
+ <select name="mail_domain" id="mail_domain" class="selectInput">
+ {tmpl_var name='mail_domain'}
+ </select>
+ </div>
+ <div class="ctrlHolder">
+ <label for="client_group_id">{tmpl_var name='client_group_id_txt'}</label>
+ <select name="client_group_id" id="client_group_id" class="selectInput">
+ {tmpl_var name='client_group_id'}
+ </select>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_mailbox_txt"}</p>
+ <div class="multiField">
+ <input id="import_mailbox" type="checkbox" value="1" name="import_mailbox" checked="checked" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_user_filter_txt"}</p>
+ <div class="multiField">
+ <input id="import_user_filter" type="checkbox" value="1" name="import_user_filter" checked="checked" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_spamfilter_txt"}</p>
+ <div class="multiField">
+ <input id="import_spamfilter" type="checkbox" value="1" name="import_spamfilter" checked="checked" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_alias_txt"}</p>
+ <div class="multiField">
+ <input id="import_alias" type="checkbox" value="1" name="import_alias" checked="checked" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_forward_txt"}</p>
+ <div class="multiField">
+ <input id="import_forward" type="checkbox" value="1" name="import_forward" checked="checked" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="import_aliasdomain_txt"}</p>
+ <div class="multiField">
+ <input id="import_aliasdomain" type="checkbox" value="1" name="import_aliasdomain" checked="checked" />
+ </div>
+ </div>
+ </fieldset>
+ </tmpl_if>
+
+
+
+ <tmpl_if name="msg">
+ <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
+ </tmpl_if>
+ <tmpl_if name="error">
+ <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
+ </tmpl_if>
+
+ <input type="hidden" name="remote_session_id" value="{tmpl_var name='remote_session_id'}">
+ <input type="hidden" name="connected" value="{tmpl_var name='connected'}">
+<tmpl_if name="connected">
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/import_ispconfig.php');"><span>{tmpl_var name="btn_start_txt"}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button>
+ </div>
+<tmpl_else>
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/import_ispconfig.php');"><span>{tmpl_var name="btn_connect_txt"}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button>
+ </div>
+</tmpl_if>
+ </div>
+
+</div>
diff --git a/interface/web/tools/templates/resync.htm b/interface/web/tools/templates/resync.htm
new file mode 100644
index 0000000..196fb7e
--- /dev/null
+++ b/interface/web/tools/templates/resync.htm
@@ -0,0 +1,67 @@
+<h2>{tmpl_var name="head_txt"}</h2>
+<p><tmpl_var name="list_desc_txt"></p>
+
+<div class="panel panel_language_import">
+
+ <div class="pnl_formsarea">
+ <fieldset class="inlineLabels"><legend>{tmpl_var name="legend_txt"}</legend>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_sites_txt"}</p>
+ <div class="multiField">
+ <input id="resync_sites" type="checkbox" value="1" name="resync_sites" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_ftp_txt"}</p>
+ <div class="multiField">
+ <input id="resync_ftp" type="checkbox" value="1" name="resync_ftp" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_shell_txt"}</p>
+ <div class="multiField">
+ <input id="resync_shell" type="checkbox" value="1" name="resync_shell" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_cron_txt"}</p>
+ <div class="multiField">
+ <input id="resync_cron" type="checkbox" value="1" name="resync_cron" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_db_txt"}</p>
+ <div class="multiField">
+ <input id="resync_db" type="checkbox" value="1" name="resync_db" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_mailbox_txt"}</p>
+ <div class="multiField">
+ <input id="resync_mailbox" type="checkbox" value="1" name="resync_mailbox" />
+ </div>
+ </div>
+ <div class="ctrlHolder">
+ <p class="label">{tmpl_var name="resync_dns_txt"}</p>
+ <div class="multiField">
+ <input id="resync_dns" type="checkbox" value="1" name="resync_dns" />
+ </div>
+ </div>
+ </fieldset>
+
+ <tmpl_if name="msg">
+ <div id="OKMsg"><p><tmpl_var name="msg"></p></div>
+ </tmpl_if>
+ <tmpl_if name="error">
+ <div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
+ </tmpl_if>
+
+ <input type="hidden" name="id" value="{tmpl_var name='id'}">
+
+ <div class="buttonHolder buttons">
+ <button class="positive iconstxt icoPositive" type="button" value="Import" onClick="submitForm('pageForm','tools/resync.php');"><span>{tmpl_var name="btn_start_txt"}</span></button>
+ <button class="negative iconstxt icoNegative" type="button" value="Cancel" onClick="loadContent('tools/index.php');"><span>{tmpl_var name="btn_cancel_txt"}</span></button>
+ </div>
+ </div>
+
+</div>
diff --git a/interface/web/vm/templates/openvz.conf.tpl b/interface/web/vm/templates/openvz.conf.tpl
index 06e6ac5..5bdd385 100644
--- a/interface/web/vm/templates/openvz.conf.tpl
+++ b/interface/web/vm/templates/openvz.conf.tpl
@@ -45,5 +45,6 @@
NAMESERVER="{tmpl_var name='nameserver'}"
# alternative meminfo: "pages:256000"
MEMINFO="privvmpages:1"
+# SWAPPAGES="{tmpl_var name='swappages'}"
CAPABILITY="{tmpl_var name='capability'}"
diff --git a/remoting_client/examples/mail_catchall_add.php b/remoting_client/examples/mail_catchall_add.php
index 8bf3206..8b5d6f3 100644
--- a/remoting_client/examples/mail_catchall_add.php
+++ b/remoting_client/examples/mail_catchall_add.php
@@ -18,7 +18,7 @@
$client_id = 1;
$params = array(
'server_id' => 1,
- 'source' => 'hallo@test.int',
+ 'source' => '@test.int',
'destination' => 'ciao@test.int',
'type' => 'catchall',
'active' => 'y'
diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter.master
index acc62e5..33ddc37 100644
--- a/server/conf/sieve_filter.master
+++ b/server/conf/sieve_filter.master
@@ -3,7 +3,6 @@
<tmpl_if name="cc">
# Send a copy of email to
redirect "<tmpl_var name='cc'>";
-keep;
</tmpl_if>
<tmpl_if name="move_junk" op="==" value="y">
@@ -17,6 +16,8 @@
<tmpl_var name='custom_mailfilter'>
+keep;
+
<tmpl_if name="autoresponder" op="==" value="y">
#################################################################
# Autoreply
diff --git a/server/conf/sieve_filter_1.2.master b/server/conf/sieve_filter_1.2.master
index 78a9355..1c63ddf 100644
--- a/server/conf/sieve_filter_1.2.master
+++ b/server/conf/sieve_filter_1.2.master
@@ -3,7 +3,6 @@
<tmpl_if name="cc">
# Send a copy of email to
redirect "<tmpl_var name='cc'>";
-keep;
</tmpl_if>
<tmpl_if name="move_junk" op="==" value="y">
@@ -17,6 +16,8 @@
<tmpl_var name='custom_mailfilter'>
+keep;
+
<tmpl_if name="autoresponder" op="==" value="y">
#################################################################
# Autoreply
diff --git a/server/conf/vhost.conf.master b/server/conf/vhost.conf.master
index b3d5ca7..d65ea85 100644
--- a/server/conf/vhost.conf.master
+++ b/server/conf/vhost.conf.master
@@ -256,6 +256,7 @@
SetHandler None
</FilesMatch>
</Directory>
+ DavLockDB {tmpl_var name='document_root'}/tmp/DavLock
# DO NOT REMOVE THE COMMENTS!
# IF YOU REMOVE THEM, WEBDAV WILL NOT WORK ANYMORE!
# WEBDAV BEGIN
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 55d6543..30eecfe 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -110,6 +110,13 @@
//* Create a SSL Certificate
if($data['new']['ssl_action'] == 'create') {
+
+ //* Rename files if they exist
+ if(file_exists($key_file)) rename($key_file,$key_file.'.bak');
+ if(file_exists($key_file2)) rename($key_file2,$key_file2.'.bak');
+ if(file_exists($csr_file)) rename($csr_file,$csr_file.'.bak');
+ if(file_exists($crt_file)) rename($crt_file,$crt_file.'.bak');
+
$rand_file = $ssl_dir.'/random_file';
$rand_data = md5(uniqid(microtime(),1));
for($i=0; $i<1000; $i++) {
@@ -133,11 +140,11 @@
output_password = $ssl_password
[ req_distinguished_name ]
- C = ".$data['new']['ssl_country']."
- ST = ".$data['new']['ssl_state']."
- L = ".$data['new']['ssl_locality']."
- O = ".$data['new']['ssl_organisation']."
- OU = ".$data['new']['ssl_organisation_unit']."
+ C = ".trim($data['new']['ssl_country'])."
+ ST = ".trim($data['new']['ssl_state'])."
+ L = ".trim($data['new']['ssl_locality'])."
+ O = ".trim($data['new']['ssl_organisation'])."
+ OU = ".trim($data['new']['ssl_organisation_unit'])."
CN = $domain
emailAddress = webmaster@".$data['new']['domain']."
@@ -288,6 +295,10 @@
$app->log('Websites cannot be owned by the root user or group.',LOGLEVEL_WARN);
return 0;
}
+ if(trim($data['new']['domain']) == '') {
+ $app->log('domain is empty',LOGLEVEL_WARN);
+ return 0;
+ }
// Create group and user, if not exist
$app->uses('system');
--
Gitblit v1.9.1