From a59731a3cc9c0fc6fba481e83d56ebd22ed3c87d Mon Sep 17 00:00:00 2001 From: dcy <dcy@ispconfig3> Date: Sat, 17 Jul 2010 10:34:07 -0400 Subject: [PATCH] Secondary DNS functionality for PowerDNS and Bind --- interface/web/dns/lib/module.conf.php | 8 interface/web/dns/lib/lang/ar_dns_slave.lng | 14 interface/web/dns/list/dns_slave.list.php | 97 +++ interface/web/client/lib/lang/cz_reseller.lng | 4 interface/web/dns/lib/lang/ja_dns_slave.lng | 14 interface/web/client/lib/lang/nl_client.lng | 3 interface/web/client/lib/lang/tr_client.lng | 3 interface/web/client/lib/lang/en_client_template.lng | 4 interface/web/dns/lib/lang/it_dns_slave_list.lng | 8 interface/web/client/lib/lang/ja_reseller.lng | 3 interface/web/dns/lib/lang/bg_dns_slave_list.lng | 8 interface/web/dns/lib/lang/se_dns_slave_list.lng | 8 interface/web/client/lib/lang/fi_client.lng | 3 interface/web/dns/lib/lang/pl_dns_slave.lng | 14 interface/web/client/lib/lang/it_reseller.lng | 3 interface/web/dns/lib/lang/cz_dns_slave_list.lng | 8 interface/web/dns/lib/lang/br_dns_slave_list.lng | 8 server/plugins-available/powerdns_plugin.inc.php | 96 ++ interface/web/client/lib/lang/ro_client.lng | 3 interface/web/client/lib/lang/fr_client.lng | 3 interface/web/client/lib/lang/de_client_template.lng | 3 interface/web/client/form/reseller.tform.php | 16 interface/web/client/lib/lang/ja_client_template.lng | 3 interface/web/client/lib/lang/es_client.lng | 3 server/mods-available/dns_module.inc.php | 58 + interface/web/client/lib/lang/hu_reseller.lng | 3 interface/web/dns/lib/lang/pt_dns_slave_list.lng | 8 install/lib/update.lib.php | 35 + interface/web/client/lib/lang/cz_client_template.lng | 4 interface/web/client/lib/lang/tr_reseller.lng | 3 interface/web/client/lib/lang/ar_reseller.lng | 3 interface/web/client/lib/lang/se_client_template.lng | 3 interface/web/dns/lib/lang/fr_dns_slave_list.lng | 8 interface/web/client/lib/lang/bg_client.lng | 3 interface/web/client/lib/lang/hu_client.lng | 3 interface/web/client/lib/lang/ro_client_template.lng | 3 interface/web/client/lib/lang/se_client.lng | 3 interface/web/dns/lib/lang/de_dns_slave_list.lng | 8 interface/web/dns/templates/dns_slave_list.htm | 59 ++ interface/web/dns/dns_soa_edit.php | 9 interface/web/client/templates/client_template_edit_limits.htm | 4 interface/web/dns/lib/lang/sk_dns_slave.lng | 14 interface/web/client/lib/lang/br_reseller.lng | 3 interface/web/client/templates/client_edit_limits.htm | 4 interface/web/client/lib/lang/it_client_template.lng | 3 interface/web/client/lib/lang/ru_client.lng | 3 interface/web/dns/lib/lang/en_dns_slave_list.lng | 8 server/conf/bind_named.conf.local.slave | 9 interface/web/dns/lib/lang/pl_dns_slave_list.lng | 8 interface/web/client/lib/lang/de_reseller.lng | 6 interface/web/dns/lib/lang/bg_dns_slave.lng | 14 interface/web/dns/lib/lang/fi_dns_slave.lng | 14 interface/web/client/lib/lang/nl_client_template.lng | 3 interface/web/dns/lib/lang/fi_dns_slave_list.lng | 8 interface/web/client/lib/lang/hu_client_template.lng | 3 interface/web/client/lib/lang/pt_client_template.lng | 3 interface/web/dns/lib/lang/es_dns_slave_list.lng | 8 interface/web/client/lib/lang/pt_client.lng | 3 interface/web/dns/lib/lang/ro_dns_slave.lng | 14 interface/web/dns/lib/lang/fr_dns_slave.lng | 14 interface/web/dns/templates/dns_slave_edit.htm | 61 ++ interface/web/dns/lib/lang/nl_dns_slave.lng | 14 install/update.php | 2 interface/web/client/lib/lang/en_client.lng | 2 interface/web/client/lib/lang/es_reseller.lng | 3 install/lib/installer_base.lib.php | 15 install/sql/ispconfig3.sql | 27 interface/web/client/lib/lang/se_reseller.lng | 3 interface/web/dns/lib/lang/nl_dns_slave_list.lng | 8 interface/web/client/lib/lang/es_client_template.lng | 3 interface/web/client/lib/lang/fi_reseller.lng | 3 interface/web/client/lib/lang/it_client.lng | 3 server/plugins-available/bind_plugin.inc.php | 111 +++ interface/web/dns/lib/lang/ro_dns_slave_list.lng | 8 interface/web/client/lib/lang/cz_client.lng | 4 interface/web/client/client_del.php | 6 interface/web/client/lib/lang/ja_client.lng | 3 interface/web/dns/dns_slave_edit.php | 199 ++++++ interface/web/dns/lib/lang/en_dns_slave.lng | 14 interface/web/client/lib/lang/bg_client_template.lng | 3 interface/web/client/lib/lang/de_client.lng | 3 interface/web/client/lib/lang/pl_reseller.lng | 3 interface/web/client/lib/lang/br_client_template.lng | 3 interface/web/dashboard/lib/lang/de_dashlet_limits.lng | 1 interface/web/dns/lib/lang/es_dns_slave.lng | 14 interface/web/dns/lib/lang/tr_dns_slave.lng | 14 interface/web/client/lib/lang/pl_client_template.lng | 3 interface/web/dashboard/dashlets/limits.php | 6 interface/web/dns/lib/lang/hu_dns_slave.lng | 14 interface/web/dns/lib/lang/se_dns_slave.lng | 14 interface/web/dns/lib/lang/hu_dns_slave_list.lng | 8 interface/web/dns/lib/lang/de_dns_slave.lng | 14 interface/web/dashboard/lib/lang/en_dashlet_limits.lng | 1 interface/web/client/lib/lang/ru_reseller.lng | 3 interface/web/dns/lib/lang/br_dns_slave.lng | 14 interface/web/client/lib/lang/ar_client_template.lng | 3 interface/web/client/lib/lang/en_reseller.lng | 4 interface/web/client/lib/lang/sk_client_template.lng | 3 install/tpl/pdns.local.master | 5 interface/web/dns/lib/lang/pt_dns_slave.lng | 14 interface/web/dns/lib/lang/ru_dns_slave.lng | 14 interface/web/dns/lib/lang/ja_dns_slave_list.lng | 8 interface/web/dns/lib/lang/ru_dns_slave_list.lng | 8 interface/web/client/lib/lang/ru_client_template.lng | 3 interface/web/dns/lib/lang/it_dns_slave.lng | 14 interface/web/client/lib/lang/bg_reseller.lng | 3 interface/web/client/lib/lang/pt_reseller.lng | 3 interface/web/dns/lib/lang/ar_dns_slave_list.lng | 8 interface/web/client/lib/lang/ro_reseller.lng | 3 interface/web/client/templates/reseller_edit_limits.htm | 4 interface/web/client/lib/lang/tr_client_template.lng | 3 interface/web/client/lib/lang/fr_client_template.lng | 3 interface/web/client/lib/lang/br_client.lng | 3 interface/web/dns/lib/lang/cz_dns_slave.lng | 14 interface/web/dns/lib/lang/sk_dns_slave_list.lng | 8 interface/web/client/lib/lang/ar_client.lng | 5 interface/web/client/lib/lang/fi_client_template.lng | 3 interface/web/client/form/client.tform.php | 16 install/sql/powerdns.sql | 6 interface/web/client/lib/lang/nl_reseller.lng | 3 interface/web/client/lib/lang/sk_client.lng | 3 interface/web/dns/form/dns_slave.tform.php | 126 ++++ interface/web/client/lib/lang/pl_client.lng | 3 interface/web/dns/dns_slave_del.php | 69 ++ interface/web/dns/lib/lang/tr_dns_slave_list.lng | 8 interface/web/client/form/client_template.tform.php | 14 interface/web/client/lib/lang/sk_reseller.lng | 3 interface/web/dns/dns_slave_list.php | 25 interface/web/client/lib/lang/fr_reseller.lng | 3 129 files changed, 1,678 insertions(+), 40 deletions(-) diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index e6409ae..0c14b1e 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -936,7 +936,20 @@ public function configure_bind() { global $conf; - //* Nothing to do + //* Check if the zonefile directory has a slash at the end + $content=$conf['bind']['bind_zonefiles_dir']; + if(substr($content,-1,1) != '/') { + $content .= '/'; + } + + //* Create the slave subdirectory + $content .= 'slave'; + $content_mkdir = 'mkdir -p '.$content; + exec($content_mkdir); + + //* Chown the slave subdirectory to $conf['bind']['bind_user'] + exec('chown '.$conf['bind']['bind_user'].':'.$conf['bind']['bind_group'].' '.$content); + exec('chmod 770 '.$content); } diff --git a/install/lib/update.lib.php b/install/lib/update.lib.php index 874f3fd..fc4f57b 100644 --- a/install/lib/update.lib.php +++ b/install/lib/update.lib.php @@ -60,6 +60,21 @@ copy('existing_db.sql',$backup_db_name); exec("chmod 700 $backup_db_name"); exec("chown root:root $backup_db_name"); + + if ($conf['powerdns']['installed']) { + //** export the current PowerDNS database data + if( !empty($conf["mysql"]["admin_password"]) ) { + system("mysqldump -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' -c -t --add-drop-table --create-options --quick --result-file=existing_powerdns_db.sql ".$conf['powerdns']['database']); + } else { + system("mysqldump -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -c -t --add-drop-table --create-options --quick --result-file=existing_powerdns_db.sql ".$conf['powerdns']['database']); + } + + // create a backup copy of the PowerDNS database in the root folder + $backup_db_name = '/root/ispconfig_powerdns_db_backup_'.@date('Y-m-d_h-i').'.sql'; + copy('existing_powerdns_db.sql',$backup_db_name); + exec("chmod 700 $backup_db_name"); + exec("chown root:root $backup_db_name"); + } } function updateDbAndIni() { @@ -134,6 +149,26 @@ } else { system("mysql --default-character-set=".$conf['mysql']['charset']." --force -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' ".$conf['mysql']['database']." < existing_db.sql"); } + + if ($conf['powerdns']['installed']) { + + swriteln($inst->lng('Starting full PowerDNS database update.')); + + //** Delete the old PowerDNS database + if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['powerdns']['database']) ) { + $inst->error('Unable to drop MySQL database: '.$conf['powerdns']['database'].'.'); + } + + //** Create the mysql database + $inst->configure_powerdns(); + + //** load old data back into the PowerDNS database + if( !empty($conf["mysql"]["admin_password"]) ) { + system("mysql --default-character-set=".$conf['mysql']['charset']." --force -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' ".$conf['powerdns']['database']." < existing_powerdns_db.sql"); + } else { + system("mysql --default-character-set=".$conf['mysql']['charset']." --force -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' ".$conf['powerdns']['database']." < existing_powerdns_db.sql"); + } + } } diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql index 89a2021..3d75c6d 100644 --- a/install/sql/ispconfig3.sql +++ b/install/sql/ispconfig3.sql @@ -92,6 +92,7 @@ `limit_webdav_user` int(11) NOT NULL default '0', `default_dnsserver` int(11) unsigned NOT NULL default '1', `limit_dns_zone` int(11) NOT NULL default '-1', + `limit_dns_slave_zone` int(11) NOT NULL default '-1', `limit_dns_record` int(11) NOT NULL default '-1', `default_dbserver` int(11) NOT NULL default '1', `limit_database` int(11) NOT NULL default '-1', @@ -148,6 +149,7 @@ `limit_shell_user` int(11) NOT NULL default '0', `limit_webdav_user` int(11) NOT NULL default '0', `limit_dns_zone` int(11) NOT NULL default '-1', + `limit_dns_slave_zone` int(11) NOT NULL default '-1', `limit_dns_record` int(11) NOT NULL default '-1', `limit_database` int(11) NOT NULL default '-1', `limit_cron` int(11) NOT NULL default '0', @@ -162,7 +164,7 @@ -- -------------------------------------------------------- -- --- Table structure for table `dns_rr` +-- Table structure for table `cron` -- CREATE TABLE `cron` ( `id` int(11) unsigned NOT NULL auto_increment, @@ -246,6 +248,29 @@ -- -------------------------------------------------------- +-- +-- Table structure for table `dns_slave` +-- + +CREATE TABLE `dns_slave` ( + `id` int(10) unsigned NOT NULL auto_increment, + `sys_userid` int(11) unsigned NOT NULL, + `sys_groupid` int(11) unsigned NOT NULL, + `sys_perm_user` varchar(5) NOT NULL, + `sys_perm_group` varchar(5) NOT NULL, + `sys_perm_other` varchar(5) NOT NULL, + `server_id` int(11) NOT NULL default '1', + `origin` varchar(255) NOT NULL, + `ns` varchar(255) NOT NULL, + `active` enum('N','Y') NOT NULL, + `xfer` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `origin` (`origin`), + KEY `active` (`active`) +) ENGINE=MyISAM AUTO_INCREMENT=1; + +-- -------------------------------------------------------- + -- -- Table structure for table `dns_template` -- diff --git a/install/sql/powerdns.sql b/install/sql/powerdns.sql index 8f997ba..3301b87 100644 --- a/install/sql/powerdns.sql +++ b/install/sql/powerdns.sql @@ -9,7 +9,7 @@ `ispconfig_id` int(11) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_index` (`name`) -) ENGINE=MyISAM; +) ENGINE=InnoDB; CREATE TABLE IF NOT EXISTS `records` ( `id` int(11) NOT NULL auto_increment, @@ -25,10 +25,10 @@ KEY `rec_name_index` (`name`), KEY `nametype_index` (`name`,`type`), KEY `domain_id` (`domain_id`) -) ENGINE=MyISAM; +) ENGINE=InnoDB; CREATE TABLE IF NOT EXISTS `supermasters` ( `ip` varchar(25) NOT NULL, `nameserver` varchar(255) NOT NULL, `account` varchar(40) default NULL -) ENGINE=MyISAM; \ No newline at end of file +) ENGINE=InnoDB; diff --git a/install/tpl/pdns.local.master b/install/tpl/pdns.local.master index c383e64..3e29ec4 100644 --- a/install/tpl/pdns.local.master +++ b/install/tpl/pdns.local.master @@ -7,3 +7,8 @@ gmysql-user={mysql_server_ispconfig_user} gmysql-password={mysql_server_ispconfig_password} gmysql-dbname={powerdns_database} + +slave=yes +master=yes + +disable-axfr=no diff --git a/install/update.php b/install/update.php index acfbe30..a1ec71e 100644 --- a/install/update.php +++ b/install/update.php @@ -76,7 +76,7 @@ $conf_old = $conf; unset($conf); -if($dist['id'] == '') die('Linux Dustribution or Version not recognized.'); +if($dist['id'] == '') die('Linux Distribution or Version not recognized.'); //** Include the distribution specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once('dist/lib/'.$dist['baseid'].'.lib.php'); diff --git a/interface/web/client/client_del.php b/interface/web/client/client_del.php index b125ba4..11cfdb7 100644 --- a/interface/web/client/client_del.php +++ b/interface/web/client/client_del.php @@ -78,7 +78,7 @@ $client_group = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = $client_id"); // Get all records (sub-clients, mail, web, etc....) of this client. - $tables = 'client,dns_rr,dns_soa,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; + $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; $tables_array = explode(',',$tables); $client_group_id = intval($client_group['groupid']); $table_list = array(); @@ -127,7 +127,7 @@ $app->db->query("DELETE FROM sys_user WHERE client_id = $client_id"); // Delete all records (sub-clients, mail, web, etc....) of this client. - $tables = 'client,dns_rr,dns_soa,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; + $tables = 'client,dns_rr,dns_soa,dns_slave,ftp_user,mail_access,mail_content_filter,mail_domain,mail_forwarding,mail_get,mail_user,mail_user_filter,shell_user,spamfilter_users,support_message,web_database,web_domain,web_traffic'; $tables_array = explode(',',$tables); $client_group_id = intval($client_group['groupid']); if($client_group_id > 1) { @@ -163,4 +163,4 @@ $page = new page_action; $page->onDelete() -?> \ No newline at end of file +?> diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php index b38fdb9..5627ace 100644 --- a/interface/web/client/form/client.tform.php +++ b/interface/web/client/form/client.tform.php @@ -665,6 +665,20 @@ 'rows' => '', 'cols' => '' ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), 'limit_dns_record' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', @@ -796,4 +810,4 @@ */ -?> \ No newline at end of file +?> diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php index 9b9a3a5..9e8fe60 100644 --- a/interface/web/client/form/client_template.tform.php +++ b/interface/web/client/form/client_template.tform.php @@ -395,6 +395,20 @@ 'rows' => '', 'cols' => '' ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '0', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), 'limit_dns_record' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php index 4cfb52d..1c5c561 100644 --- a/interface/web/client/form/reseller.tform.php +++ b/interface/web/client/form/reseller.tform.php @@ -624,6 +624,20 @@ 'rows' => '', 'cols' => '' ), + 'limit_dns_slave_zone' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'ISINT', + 'errmsg'=> 'limit_dns_slave_zone_error_notint'), + ), + 'default' => '-1', + 'value' => '', + 'separator' => '', + 'width' => '10', + 'maxlength' => '10', + 'rows' => '', + 'cols' => '' + ), 'limit_dns_record' => array ( 'datatype' => 'INTEGER', 'formtype' => 'TEXT', @@ -758,4 +772,4 @@ */ -?> \ No newline at end of file +?> diff --git a/interface/web/client/lib/lang/ar_client.lng b/interface/web/client/lib/lang/ar_client.lng index 5171736..17257a1 100644 --- a/interface/web/client/lib/lang/ar_client.lng +++ b/interface/web/client/lib/lang/ar_client.lng @@ -54,6 +54,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -77,7 +78,9 @@ $wb['limit_web_subdomain_error_notint'] = 'The website subdomain limit must be a number.'; $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; -$wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_zone_error_notint'] = 'The dns zone limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/ar_client_template.lng b/interface/web/client/lib/lang/ar_client_template.lng index c12b0b2..8717432 100644 --- a/interface/web/client/lib/lang/ar_client_template.lng +++ b/interface/web/client/lib/lang/ar_client_template.lng @@ -25,6 +25,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -47,6 +48,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; $wb['limit_cron_error_frequency'] = 'The cron frequency limit must be a number.'; diff --git a/interface/web/client/lib/lang/ar_reseller.lng b/interface/web/client/lib/lang/ar_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/ar_reseller.lng +++ b/interface/web/client/lib/lang/ar_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/bg_client.lng b/interface/web/client/lib/lang/bg_client.lng index 35b3519..e88a8d0 100644 --- a/interface/web/client/lib/lang/bg_client.lng +++ b/interface/web/client/lib/lang/bg_client.lng @@ -52,6 +52,7 @@ $wb['default_dnsserver_txt'] = 'DNS сървър по подразбиране'; $wb['limit_dns_zone_txt'] = 'Макс. брой DNS зони'; $wb['limit_dns_record_txt'] = 'Макс. брой DNS записи'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_shell_user_txt'] = 'Макс. брой Shell потребители'; $wb['username_error_empty'] = 'Не е попълнено потребителско име.'; $wb['username_error_unique'] = 'Избраното потребителско име е вече заето.'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'Макс. брой FTP потребители трябва да е число.'; $wb['limit_shell_user_error_notint'] = 'Макс. брой shell потребители трябва да е число.'; $wb['limit_dns_zone_error_notint'] = 'Макс. брой DNS записи трябва да е число.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'DB сървър по подразбиране'; $wb['limit_database_error_notint'] = 'Макс. брой бази данни трябва да е число.'; $wb['username_error_regex'] = 'Потребителското име съдържа невалидни символи.'; diff --git a/interface/web/client/lib/lang/bg_client_template.lng b/interface/web/client/lib/lang/bg_client_template.lng index 7545a16..48dd6ab 100644 --- a/interface/web/client/lib/lang/bg_client_template.lng +++ b/interface/web/client/lib/lang/bg_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_maildomain_error_notint'] = 'The email domain limit must be a number.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['error_template_name_empty'] = 'Please enter a Template name'; $wb['limit_cron_txt'] = 'Max. number of cron jobs'; diff --git a/interface/web/client/lib/lang/bg_reseller.lng b/interface/web/client/lib/lang/bg_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/bg_reseller.lng +++ b/interface/web/client/lib/lang/bg_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/br_client.lng b/interface/web/client/lib/lang/br_client.lng index 6e2b67c..35b2ba9 100644 --- a/interface/web/client/lib/lang/br_client.lng +++ b/interface/web/client/lib/lang/br_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'Número máximo de usuários FTP'; $wb['default_dnsserver_txt'] = 'Servidor de Nomes Padrão'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registros DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de usuários de shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de usuários de FTP deve ser um número.'; $wb['limit_shell_user_error_notint'] = 'O limite de usuários de Shell deve ser um número.'; $wb['limit_dns_zone_error_notint'] = 'O limite de registros de DNS deve ser um número'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Servidor de Banco de Dados Padrão'; $wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número'; $wb['username_error_regex'] = 'O nome de usuário contem caracteres inválidos.'; diff --git a/interface/web/client/lib/lang/br_client_template.lng b/interface/web/client/lib/lang/br_client_template.lng index a4ab10e..652c88f 100644 --- a/interface/web/client/lib/lang/br_client_template.lng +++ b/interface/web/client/lib/lang/br_client_template.lng @@ -21,6 +21,7 @@ $wb['limit_web_subdomain_txt'] = 'Número máximo de sub-domínios'; $wb['limit_ftp_user_txt'] = 'Número máximo de usuários de FTP'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registros DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de usuários de Shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de contas FTP deve ser um número'; $wb['limit_shell_user_error_notint'] = 'O limite de contas shell DNS deve ser um número'; $wb['limit_dns_zone_error_notint'] = 'O limite de zonas DNS deve ser um número'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'O limite dos bancos de dados deve ser um número'; $wb['error_template_name_empty'] = 'Por favor insira o nome do gabarito'; $wb['limit_cron_txt'] = 'Número máximo de tarefas no cron'; diff --git a/interface/web/client/lib/lang/br_reseller.lng b/interface/web/client/lib/lang/br_reseller.lng index 6324712..6d93435 100644 --- a/interface/web/client/lib/lang/br_reseller.lng +++ b/interface/web/client/lib/lang/br_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Servidor DNS Padrão'; $wb['limit_dns_zone_txt'] = 'Máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Máximo de registros DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de usuários de shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de usuários de ftp deve ser um número.'; $wb['limit_shell_user_error_notint'] = 'O limite de usuários de shell deve ser um número.'; $wb['limit_dns_zone_error_notint'] = 'O limite de registros de dns deve ser um número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Servidor de Banco de Dados Padrão'; $wb['limit_database_error_notint'] = 'O limite de banco de dados deve ser um número.'; $wb['limit_cron_error_notint'] = 'O limite do cron deve ser um número.'; diff --git a/interface/web/client/lib/lang/cz_client.lng b/interface/web/client/lib/lang/cz_client.lng index 7c0470f..4548bdf 100644 --- a/interface/web/client/lib/lang/cz_client.lng +++ b/interface/web/client/lib/lang/cz_client.lng @@ -54,6 +54,7 @@ $wb["limit_ftp_user_txt"] = 'Max. počet FTP uživatelů'; $wb["default_dnsserver_txt"] = 'Výchozí DNS server'; $wb["limit_dns_zone_txt"] = 'Max. počet DNS zón'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. počet DNS záznamů'; $wb["limit_shell_user_txt"] = 'Max. počet shell uživatelů'; $wb["limit_client_txt"] = 'Max. počet klientů'; @@ -78,7 +79,8 @@ $wb["limit_ftp_user_error_notint"] = 'Limit FTP uživatelů musí být číslo.'; $wb["limit_shell_user_error_notint"] = 'Limit shell uživatelů musí být číslo.'; $wb["limit_dns_zone_error_notint"] = 'Limit DNS zón musí být číslo.'; -$wb["limit_dns_zone_error_notint"] = 'Limit DNS záznamů musí být číslo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb["limit_dns_record_error_notint"] = 'Limit DNS záznamů musí být číslo.'; $wb["limit_client_error_notint"] = 'Limit sub klientů musí být číslo.'; $wb["default_dbserver_txt"] = 'Výchozí databázový server'; $wb["limit_database_txt"] = 'Max. počet databází'; diff --git a/interface/web/client/lib/lang/cz_client_template.lng b/interface/web/client/lib/lang/cz_client_template.lng index 5d163fe..c7c5e4e 100644 --- a/interface/web/client/lib/lang/cz_client_template.lng +++ b/interface/web/client/lib/lang/cz_client_template.lng @@ -26,6 +26,7 @@ $wb["limit_web_subdomain_txt"] = 'Max. počet webových subdomén'; $wb["limit_ftp_user_txt"] = 'Max. počet FTP uživatelů'; $wb["limit_dns_zone_txt"] = 'Max. počet DNS zón'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. počet DNS záznamů'; $wb["limit_shell_user_txt"] = 'Max. počet shell uživatelů'; $wb["limit_client_txt"] = 'Max. počet klient'; @@ -47,7 +48,8 @@ $wb["limit_web_subdomain_error_notint"] = 'Limit webových subdomén musí být číslo.'; $wb["limit_ftp_user_error_notint"] = 'Limit shell uživatelů musí být číslo.'; $wb["limit_dns_zone_error_notint"] = 'Limit DNS zón musí být číslo.'; -$wb["limit_dns_zone_error_notint"] = 'Limit DNS záznamů musí být číslo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb["limit_dns_record_error_notint"] = 'Limit DNS záznamů musí být číslo.'; $wb["limit_database_txt"] = 'Max. počet databází'; $wb["limit_database_error_notint"] = 'Limit databází musí být číslo.'; $wb["limit_cron_error_notint"] = 'Limit cronu musí být číslo.'; diff --git a/interface/web/client/lib/lang/cz_reseller.lng b/interface/web/client/lib/lang/cz_reseller.lng index d308944..04546fc 100644 --- a/interface/web/client/lib/lang/cz_reseller.lng +++ b/interface/web/client/lib/lang/cz_reseller.lng @@ -53,6 +53,7 @@ $wb["limit_ftp_user_txt"] = 'Max. počet FTP uživatelů'; $wb["default_dnsserver_txt"] = 'Výchozí DNS server'; $wb["limit_dns_zone_txt"] = 'Max. počet DNS zón'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. počet DNS záznamů'; $wb["limit_shell_user_txt"] = 'Max. počet shell uživatelů'; $wb["limit_client_txt"] = 'Max. počet klient'; @@ -76,7 +77,8 @@ $wb["limit_ftp_user_error_notint"] = 'Limit FTP uživatelů musí být číslo.'; $wb["limit_shell_user_error_notint"] = 'Limit shell uživatelů musí být číslo.'; $wb["limit_dns_zone_error_notint"] = 'Limit DNS zón musí být číslo.'; -$wb["limit_dns_zone_error_notint"] = 'Limit DNS záznamů musí být číslo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb["limit_dns_zone_record_notint"] = 'Limit DNS záznamů musí být číslo.'; $wb["limit_client_error_notint"] = 'Limit sub klientů musí být číslo.'; $wb["default_dbserver_txt"] = 'Výchozí databázový server'; $wb["limit_database_txt"] = 'Max. počet databází'; diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng index e140dda..27d9264 100644 --- a/interface/web/client/lib/lang/de_client.lng +++ b/interface/web/client/lib/lang/de_client.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. Anzahl an FTP Benutzer'; $wb['default_dnsserver_txt'] = 'Standard DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. Anzahl an DNS Zonen'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. Anzahl an DNS Einträge'; $wb['limit_shell_user_txt'] = 'Max. Anzahl an Shell Benutzer'; $wb['limit_webdav_user_txt'] = 'Max. Anzahl an Webdav Benutzer'; @@ -77,6 +78,8 @@ $wb['limit_shell_user_error_notint'] = 'Das Shell Benutzer Limit muss eine Nummer sein.'; $wb['limit_webdav_user_error_notint'] = 'Das Webdav Benutzer Limit muss eine Nummer sein.'; $wb['limit_dns_zone_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Standarddatenbankserver'; $wb['limit_database_error_notint'] = 'Das Datenbank Limit muss eine Nummer sein.'; $wb['limit_cron_error_notint'] = 'Das Cron Job Limit muss eine Nummer sein.'; diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng index 140a9db..34a70ad 100644 --- a/interface/web/client/lib/lang/de_client_template.lng +++ b/interface/web/client/lib/lang/de_client_template.lng @@ -25,6 +25,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. Anzahl an Web Subdomains'; $wb['limit_ftp_user_txt'] = 'Max. Anzahl an FTP Benutzer'; $wb['limit_dns_zone_txt'] = 'Max. Anzahl an DNS Zonen'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. Anzahl an DNS Einträgen'; $wb['limit_shell_user_txt'] = 'Max. Anzahl an Shell Benutzer'; $wb['limit_webdav_user_txt'] = 'Max. Anzahl an Webdav Benutzer'; @@ -47,6 +48,8 @@ $wb['limit_shell_user_error_notint'] = 'Das Shell Benutzer Limit muss eine Nummer sein.'; $wb['limit_webdav_user_error_notint'] = 'Das Webdav Benutzer Limit muss eine Nummer sein.'; $wb['limit_dns_zone_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'Das Datenbanken Limit muss eine Nummer sein.'; $wb['limit_cron_error_notint'] = 'Das Cron Job Limit muss eine Nummer sein.'; $wb['limit_cron_error_frequency'] = 'Das Cron Job Intervall-Limit muss eine Nummer sein.'; diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng index 3be8680..e4abf35 100644 --- a/interface/web/client/lib/lang/de_reseller.lng +++ b/interface/web/client/lib/lang/de_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. Anzahl an FTP Benutzer'; $wb['default_dnsserver_txt'] = 'Standard DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. Anzahl an DNS Zonen'; +$wb['limit_dns_slave_zone_txt'] = 'Max. Anzahl an sekundären DNS Zonen'; $wb['limit_dns_record_txt'] = 'Max. Anzahl an DNS Einträge'; $wb['limit_shell_user_txt'] = 'Max. Anzahl an Shell Benutzer'; $wb['limit_client_txt'] = 'Max. Anzahl an Kunden'; @@ -75,7 +76,9 @@ $wb['limit_web_subdomain_error_notint'] = 'Das Webseite Subdomain Limit muss eine Nummer sein.'; $wb['limit_ftp_user_error_notint'] = 'Das FTP Benutzer Limit muss eine Nummer sein.'; $wb['limit_shell_user_error_notint'] = 'Das Shell Benutzer Limit muss eine Nummer sein.'; -$wb['limit_dns_zone_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.'; +$wb['limit_dns_zone_error_notint'] = 'Das DNS Zonen Limit muss eine Nummer sein.'; +$wb['limit_dns_slave_zone_error_notint'] = 'Das sekundär DNS Einträge Limit muss eine Nummer sein.'; +$wb['limit_dns_record_error_notint'] = 'Das DNS Einträge Limit muss eine Nummer sein.'; $wb['default_dbserver_txt'] = 'Standarddatenbankserver'; $wb['limit_database_error_notint'] = 'Das Datenbank Limit muss eine Nummer sein.'; $wb['limit_cron_error_notint'] = 'Das Cron Job Limit muss eine Zahl sein.'; @@ -91,4 +94,3 @@ $wb['limit_traffic_quota_txt'] = 'Traffic Quota'; $wb['limit_trafficquota_error_notint'] = 'Traffic Quota muss eine Zahl sein.'; ?> - diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng index 9c028f3..59e0baf 100644 --- a/interface/web/client/lib/lang/en_client.lng +++ b/interface/web/client/lib/lang/en_client.lng @@ -54,6 +54,7 @@ $wb["limit_ftp_user_txt"] = 'Max. number of FTP users'; $wb["default_dnsserver_txt"] = 'Default DNS Server'; $wb["limit_dns_zone_txt"] = 'Max. number of DNS zones'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. number DNS records'; $wb["limit_shell_user_txt"] = 'Max. number of Shell users'; $wb["limit_webdav_user_txt"] = 'Max. number of Webdav users'; @@ -80,6 +81,7 @@ $wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.'; $wb["limit_webdav_user_error_notint"] = 'The webdav user limit must be a number.'; $wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.'; +$wb["limit_dns_slave_zone_error_notint"] = 'The dns slave zone limit must be a number.'; $wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.'; $wb["limit_client_error_notint"] = 'The sub client limit must be a number.'; $wb["default_dbserver_txt"] = 'Default Database Server'; diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng index ca8d4f7..1b87a34 100644 --- a/interface/web/client/lib/lang/en_client_template.lng +++ b/interface/web/client/lib/lang/en_client_template.lng @@ -26,6 +26,7 @@ $wb["limit_web_subdomain_txt"] = 'Max. number of web subdomains'; $wb["limit_ftp_user_txt"] = 'Max. number of FTP users'; $wb["limit_dns_zone_txt"] = 'Max. number of DNS zones'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. number DNS records'; $wb["limit_shell_user_txt"] = 'Max. number of Shell users'; $wb["limit_webdav_user_txt"] = 'Max. number of Webdav users'; @@ -50,7 +51,8 @@ $wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.'; $wb["limit_webdav_user_error_notint"] = 'The webdav user limit must be a number.'; $wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.'; -$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.'; +$wb["limit_dns_slave_zone_error_notint"] = 'The dns slave zone limit must be a number.'; +$wb["limit_dns_record_error_notint"] = 'The dns record limit must be a number.'; $wb["limit_database_txt"] = 'Max. number of Databases'; $wb["limit_database_error_notint"] = 'The database limit must be a number.'; $wb["limit_cron_error_notint"] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng index 2b06c33..6207557 100644 --- a/interface/web/client/lib/lang/en_reseller.lng +++ b/interface/web/client/lib/lang/en_reseller.lng @@ -53,6 +53,7 @@ $wb["limit_ftp_user_txt"] = 'Max. number of FTP users'; $wb["default_dnsserver_txt"] = 'Default DNS Server'; $wb["limit_dns_zone_txt"] = 'Max. number of DNS zones'; +$wb["limit_dns_slave_zone_txt"] = 'Max. number of secondary DNS zones'; $wb["limit_dns_record_txt"] = 'Max. number DNS records'; $wb["limit_shell_user_txt"] = 'Max. number of Shell users'; $wb["limit_client_txt"] = 'Max. number of Clients'; @@ -76,7 +77,8 @@ $wb["limit_ftp_user_error_notint"] = 'The ftp user limit must be a number.'; $wb["limit_shell_user_error_notint"] = 'The shell user limit must be a number.'; $wb["limit_dns_zone_error_notint"] = 'The dns zone limit must be a number.'; -$wb["limit_dns_zone_error_notint"] = 'The dns record limit must be a number.'; +$wb["limit_dns_slave_zone_error_notint"] = 'The dns slave zone limit must be a number.'; +$wb["limit_dns_record_error_notint"] = 'The dns record limit must be a number.'; $wb["limit_client_error_notint"] = 'The sub client limit must be a number.'; $wb["default_dbserver_txt"] = 'Default Database Server'; $wb["limit_database_txt"] = 'Max. number of Databases'; diff --git a/interface/web/client/lib/lang/es_client.lng b/interface/web/client/lib/lang/es_client.lng index e42a548..33c0a76 100644 --- a/interface/web/client/lib/lang/es_client.lng +++ b/interface/web/client/lib/lang/es_client.lng @@ -51,6 +51,7 @@ $wb['limit_ftp_user_txt'] = 'Número máximo de usuarios FTP'; $wb['default_dnsserver_txt'] = 'Servidor DNS por defecto'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registros DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de usuarios de consola'; $wb['username_error_empty'] = 'El nombre de usuario está vacío.'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'El límite de usuarios FTP debe ser un número'; $wb['limit_shell_user_error_notint'] = 'El límite de usuarios de consola debe ser un número'; $wb['limit_dns_zone_error_notint'] = 'El límite de zonas DNS debe ser un número'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Servidor de bases de datos por defecto'; $wb['limit_database_error_notint'] = 'El límite de bases de datos debe ser un número'; $wb['username_error_regex'] = 'El usuario contiene carácteres no válidos'; diff --git a/interface/web/client/lib/lang/es_client_template.lng b/interface/web/client/lib/lang/es_client_template.lng index 551de12..9b8270c 100644 --- a/interface/web/client/lib/lang/es_client_template.lng +++ b/interface/web/client/lib/lang/es_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Número máximo de subdominios'; $wb['limit_ftp_user_txt'] = 'Número máximo de usuarios FTP'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registros DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de usuarios de consola'; $wb['limit_maildomain_error_notint'] = 'El límite de dominios de correo debe ser un número.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'El límite de usuarios FTP debe ser un número.'; $wb['limit_shell_user_error_notint'] = 'El límite de usuarios de consola debe ser un número.'; $wb['limit_dns_zone_error_notint'] = 'El límite de registros DNS debe ser un número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'El límite de bases de datos debe ser un número.'; $wb['error_template_name_empty'] = 'Por favor, introduzca un nombre de plantilla'; $wb['limit_cron_txt'] = 'Número máximo de tareas cron'; diff --git a/interface/web/client/lib/lang/es_reseller.lng b/interface/web/client/lib/lang/es_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/es_reseller.lng +++ b/interface/web/client/lib/lang/es_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/fi_client.lng b/interface/web/client/lib/lang/fi_client.lng index 87842b1..1d80779 100755 --- a/interface/web/client/lib/lang/fi_client.lng +++ b/interface/web/client/lib/lang/fi_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'FTP-käyttäjätunnuksien määrä'; $wb['default_dnsserver_txt'] = 'Oletusnimipavelin'; $wb['limit_dns_zone_txt'] = 'DNS-alueiden määrä'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'DNS-tietuieden määrä'; $wb['limit_shell_user_txt'] = 'Shell-käyttäjien määrä'; $wb['username_error_empty'] = 'Käyttäjätunnus on tyhjä'; @@ -72,6 +73,8 @@ $wb['limit_ftp_user_error_notint'] = 'Ftp-käyttäjätunnuksien raja-arvon pitää olla numero.'; $wb['limit_shell_user_error_notint'] = 'Shell-käyttäjätunnuksien raja-arvon pitää olla numero.'; $wb['limit_dns_zone_error_notint'] = 'DNS-tietueiden raja-arvon pitää olla numero.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Oletustietokantapalvelin'; $wb['limit_database_error_notint'] = 'Tietokantojen raja-arvon pitää olla numero.'; $wb['username_error_regex'] = 'Käyttäjätunnus sisältää virheellisiä merkkejä.'; diff --git a/interface/web/client/lib/lang/fi_client_template.lng b/interface/web/client/lib/lang/fi_client_template.lng index 66de5f4..182f46e 100755 --- a/interface/web/client/lib/lang/fi_client_template.lng +++ b/interface/web/client/lib/lang/fi_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Aliverkkotunnuksien määrä'; $wb['limit_ftp_user_txt'] = 'FTP-käyttäjätunnuksien määrä'; $wb['limit_dns_zone_txt'] = 'DNS-alueiden määrä'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'DNS-tietueiden määrä'; $wb['limit_shell_user_txt'] = 'Shell-käyttäjien määrä'; $wb['limit_maildomain_error_notint'] = 'Postiverkkotunnuksien raja-arvon pitää olla numero.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTP-käyttäjätunnuksien raja-arvon pitää olla numero.'; $wb['limit_shell_user_error_notint'] = 'Shell-käyttäjätunnuksien raja-arvon pitää olla numero.'; $wb['limit_dns_zone_error_notint'] = 'DNS-tietueiden raja-arvon pitää olla numero.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'Tietokantojen raja-arvon pitää olla numero.'; $wb['error_template_name_empty'] = 'Anna mallilomakkeen nimi'; $wb['limit_cron_txt'] = 'Max. number of cron jobs'; diff --git a/interface/web/client/lib/lang/fi_reseller.lng b/interface/web/client/lib/lang/fi_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/fi_reseller.lng +++ b/interface/web/client/lib/lang/fi_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/fr_client.lng b/interface/web/client/lib/lang/fr_client.lng index 7afb6e0..81111c4 100644 --- a/interface/web/client/lib/lang/fr_client.lng +++ b/interface/web/client/lib/lang/fr_client.lng @@ -51,6 +51,7 @@ $wb['limit_ftp_user_txt'] = 'Nombre max. dutilisateurs FTP'; $wb['default_dnsserver_txt'] = 'Serveur DNS par défaut'; $wb['limit_dns_zone_txt'] = 'Nombre max. de zones DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Nombre max. denregistrements DNS'; $wb['limit_shell_user_txt'] = 'Nombre max. dutilisateurs Shell'; $wb['username_error_empty'] = 'Le nom dutilisateur est vide.'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'La limite dutilisateurs FTP doit être un nombre.'; $wb['limit_shell_user_error_notint'] = 'La limite dutilisateurs Shell doit être un nombre.'; $wb['limit_dns_zone_error_notint'] = 'La limite denregistrements DNS doit être un nombre.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut'; $wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.'; $wb['username_error_regex'] = 'Le nom dutilisateur contient des caractères invalides.'; diff --git a/interface/web/client/lib/lang/fr_client_template.lng b/interface/web/client/lib/lang/fr_client_template.lng index 4004ef6..e4f6078 100644 --- a/interface/web/client/lib/lang/fr_client_template.lng +++ b/interface/web/client/lib/lang/fr_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Nombre max. de sous-domaines'; $wb['limit_ftp_user_txt'] = 'Nombre max. dutilisateurs FTP'; $wb['limit_dns_zone_txt'] = 'Nombre max. de zones DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Nombre max. denregistrements DNS'; $wb['limit_shell_user_txt'] = 'Nombre max. dutilisateurs Shell'; $wb['limit_maildomain_error_notint'] = 'La limite de domaines de-mail doit être un nombre.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'La limite dutilisateurs FTP doit être un nombre.'; $wb['limit_shell_user_error_notint'] = 'La limite dutilisateurs Shell doit être un nombre.'; $wb['limit_dns_zone_error_notint'] = 'La limite denregistrements DNS doit être un nombre.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.'; $wb['error_template_name_empty'] = 'Entrez le nom du modèle.'; $wb['limit_cron_txt'] = 'Nombre max. de tâches Cron'; diff --git a/interface/web/client/lib/lang/fr_reseller.lng b/interface/web/client/lib/lang/fr_reseller.lng index 24926d4..f0cec4d 100644 --- a/interface/web/client/lib/lang/fr_reseller.lng +++ b/interface/web/client/lib/lang/fr_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Nombre max. dutilisateurs FTP'; $wb['default_dnsserver_txt'] = 'Serveur DNS par défaut'; $wb['limit_dns_zone_txt'] = 'Nombre max. de zones DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Nombre max. denregistrements DNS'; $wb['limit_shell_user_txt'] = 'Nombre max. dutilisateurs Shell'; $wb['limit_client_txt'] = 'Nombre max. de clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'La limite dutilisateurs FTP doit être un nombre.'; $wb['limit_shell_user_error_notint'] = 'La limite dutilisateurs Shell doit être un nombre.'; $wb['limit_dns_zone_error_notint'] = 'La limite denregistrements DNS doit être un nombre.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Serveur de bases de données par défaut'; $wb['limit_database_error_notint'] = 'La limite de bases de données doit être un nombre.'; $wb['limit_cron_error_notint'] = 'La limite de tâches Cron doit être un nombre.'; diff --git a/interface/web/client/lib/lang/hu_client.lng b/interface/web/client/lib/lang/hu_client.lng index 35be91f..3ce2c54 100644 --- a/interface/web/client/lib/lang/hu_client.lng +++ b/interface/web/client/lib/lang/hu_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['username_error_empty'] = 'Username is empty.'; @@ -72,6 +73,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['username_error_regex'] = 'The Username contains invalid chracaters.'; diff --git a/interface/web/client/lib/lang/hu_client_template.lng b/interface/web/client/lib/lang/hu_client_template.lng index 4f83eaf..0060c3a 100644 --- a/interface/web/client/lib/lang/hu_client_template.lng +++ b/interface/web/client/lib/lang/hu_client_template.lng @@ -21,6 +21,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['error_template_name_empty'] = 'Please enter a Template name'; $wb['limit_cron_txt'] = 'Max. number of cron jobs'; diff --git a/interface/web/client/lib/lang/hu_reseller.lng b/interface/web/client/lib/lang/hu_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/hu_reseller.lng +++ b/interface/web/client/lib/lang/hu_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/it_client.lng b/interface/web/client/lib/lang/it_client.lng index 7dbc06c..4efe8b1 100644 --- a/interface/web/client/lib/lang/it_client.lng +++ b/interface/web/client/lib/lang/it_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'Numero massimo di utenti FTP'; $wb['default_dnsserver_txt'] = 'DNS Server predefinito'; $wb['limit_dns_zone_txt'] = 'Numero massimo di zone DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Numero massimo di record DNS'; $wb['limit_shell_user_txt'] = 'Numero massimo di utenti Shell'; $wb['username_error_empty'] = 'Nome utente è vuoto.'; @@ -72,6 +73,8 @@ $wb['limit_ftp_user_error_notint'] = 'Il limite degli utenti ftp deve essere un numero.'; $wb['limit_shell_user_error_notint'] = 'Il limite degli utenti shell deve essere un numero.'; $wb['limit_dns_zone_error_notint'] = 'Il limite dei record dns deve essere un numero.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Server Database predefinito'; $wb['limit_database_error_notint'] = 'Il limite dei database deve essere un numero.'; $wb['username_error_regex'] = 'Il nome utente contiene caratteri non validi.'; diff --git a/interface/web/client/lib/lang/it_client_template.lng b/interface/web/client/lib/lang/it_client_template.lng index d180ea3..2ddf42d 100644 --- a/interface/web/client/lib/lang/it_client_template.lng +++ b/interface/web/client/lib/lang/it_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_maildomain_error_notint'] = 'The email domain limit must be a number.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['error_template_name_empty'] = 'Devi inserire il nome del modello'; $wb['limit_cron_txt'] = 'Max. number of cron jobs'; diff --git a/interface/web/client/lib/lang/it_reseller.lng b/interface/web/client/lib/lang/it_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/it_reseller.lng +++ b/interface/web/client/lib/lang/it_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/ja_client.lng b/interface/web/client/lib/lang/ja_client.lng index 2289f94..8888c79 100644 --- a/interface/web/client/lib/lang/ja_client.lng +++ b/interface/web/client/lib/lang/ja_client.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'FTPユーザーの最大数'; $wb['default_dnsserver_txt'] = 'デフォルトのDNSサーバー'; $wb['limit_dns_zone_txt'] = 'DNSゾーンの最大数'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'DNSレコードの最大数'; $wb['limit_shell_user_txt'] = 'Shellユーザーの最大数'; $wb['limit_client_txt'] = 'クライアントの最大値'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTPユーザーの最大数は数字で指定してください。'; $wb['limit_shell_user_error_notint'] = 'Shellユーザーの最大数は数字で指定してください。'; $wb['limit_dns_zone_error_notint'] = 'DNSレコードの最大数は数字で指定してください。'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'デフォルトのデータベースサーバー'; $wb['limit_database_error_notint'] = 'データベースの最大数は数字で指定してください。'; $wb['limit_cron_error_notint'] = 'cronジョブの最大数は数字で指定してください。'; diff --git a/interface/web/client/lib/lang/ja_client_template.lng b/interface/web/client/lib/lang/ja_client_template.lng index adb81cb..b0252bd 100644 --- a/interface/web/client/lib/lang/ja_client_template.lng +++ b/interface/web/client/lib/lang/ja_client_template.lng @@ -24,6 +24,7 @@ $wb['limit_web_subdomain_txt'] = 'ウェブサブドメインの最大数'; $wb['limit_ftp_user_txt'] = 'FTPユーザーの最大数'; $wb['limit_dns_zone_txt'] = 'DNSゾーンの最大数'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'DNSレコードの最大数'; $wb['limit_shell_user_txt'] = 'Shellユーザーの最大数'; $wb['limit_client_txt'] = 'クライアントの最大値'; @@ -45,6 +46,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTPユーザーの最大数は数字で指定してください。'; $wb['limit_shell_user_error_notint'] = 'Shellユーザーの最大数は数字で指定してください。'; $wb['limit_dns_zone_error_notint'] = 'DNSレコードの最大数は数字で指定してください。'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'データベースの最大数は数字で指定してください。'; $wb['limit_cron_error_notint'] = 'cronジョブの最大数は数字で指定してください。'; $wb['limit_cron_error_frequency'] = 'The cron frequency limit must be a number.'; diff --git a/interface/web/client/lib/lang/ja_reseller.lng b/interface/web/client/lib/lang/ja_reseller.lng index fbb4380..a7a154a 100644 --- a/interface/web/client/lib/lang/ja_reseller.lng +++ b/interface/web/client/lib/lang/ja_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'FTPユーザーの最大数'; $wb['default_dnsserver_txt'] = 'デフォルトのDNSサーバー'; $wb['limit_dns_zone_txt'] = 'DNSゾーンの最大数'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'DNSレコードの最大数'; $wb['limit_shell_user_txt'] = 'Shellユーザーの最大数'; $wb['limit_client_txt'] = 'クライアントの最大値'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTPユーザーの最大数は数字で指定してください。'; $wb['limit_shell_user_error_notint'] = 'Shellユーザーの最大数は数字で指定してください。'; $wb['limit_dns_zone_error_notint'] = 'DNSレコードの最大数は数字で指定してください。'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'デフォルトのデータベースサーバー'; $wb['limit_database_error_notint'] = 'データベースの最大数は数字で指定してください。'; $wb['limit_cron_error_notint'] = 'cronジョブの最大数は数字で指定してください。'; diff --git a/interface/web/client/lib/lang/nl_client.lng b/interface/web/client/lib/lang/nl_client.lng index a50da45..55d6c54 100644 --- a/interface/web/client/lib/lang/nl_client.lng +++ b/interface/web/client/lib/lang/nl_client.lng @@ -51,6 +51,7 @@ $wb['limit_ftp_user_txt'] = '# FTP gebruikers'; $wb['default_dnsserver_txt'] = 'Standaard DNS server'; $wb['limit_dns_zone_txt'] = '# DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = '# DNS records'; $wb['limit_shell_user_txt'] = '# Shell gebruikers'; $wb['username_error_empty'] = 'Gebruikersnaam is leeg.'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'De FTP gebruiker limiet moet een nummerieke waarde zijn.'; $wb['limit_shell_user_error_notint'] = 'De Shell gebruiker limit moet een nummerieke waarde zijn.'; $wb['limit_dns_zone_error_notint'] = 'De DNS record limit moet een nummerieke waarde zijn.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Standaard database server'; $wb['limit_database_error_notint'] = 'De database limiet moet een nummerieke waarde zijn.'; $wb['username_error_regex'] = 'De gebruikersnaam bevat ongeldige karakters.'; diff --git a/interface/web/client/lib/lang/nl_client_template.lng b/interface/web/client/lib/lang/nl_client_template.lng index e8e575f..888d0f6 100644 --- a/interface/web/client/lib/lang/nl_client_template.lng +++ b/interface/web/client/lib/lang/nl_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = '# Website subdomeinen'; $wb['limit_ftp_user_txt'] = '# FTP gebruikers'; $wb['limit_dns_zone_txt'] = '# DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = '# DNS records'; $wb['limit_shell_user_txt'] = '# Shell gebruikers'; $wb['limit_maildomain_error_notint'] = 'De e-mail domein limiet moet een numerieke waarde zijn.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'De ftp user limiet moet een numerieke waarde zijn.'; $wb['limit_shell_user_error_notint'] = 'De shell user limiet moet een numerieke waarde zijn.'; $wb['limit_dns_zone_error_notint'] = 'De DNS record limiet moet een numerieke waarde zijn.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'De database limiet moet een numerieke waarde zijn.'; $wb['error_template_name_empty'] = 'Voer a.u.b. de template naam in.'; $wb['limit_cron_txt'] = '# Cron taken'; diff --git a/interface/web/client/lib/lang/nl_reseller.lng b/interface/web/client/lib/lang/nl_reseller.lng index 4fa2bdc..9e67d21 100644 --- a/interface/web/client/lib/lang/nl_reseller.lng +++ b/interface/web/client/lib/lang/nl_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = '# FTP-gebruikers'; $wb['default_dnsserver_txt'] = 'Standaard DNS server'; $wb['limit_dns_zone_txt'] = '# DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = '# DNS records'; $wb['limit_shell_user_txt'] = '# Shell gebruikers'; $wb['limit_client_txt'] = '# Klanten'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTP gebruikers limiet moet nummeriek zijn.'; $wb['limit_shell_user_error_notint'] = 'Shell gebruikers limiet moet nummeriek zijn.'; $wb['limit_dns_zone_error_notint'] = 'DNS zones limiet moet nummeriek zijn.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Standaard database server'; $wb['limit_database_error_notint'] = 'Databases limiet moet nummeriek zijn.'; $wb['limit_cron_error_notint'] = 'Cron limiet moet nummeriek zijn.'; diff --git a/interface/web/client/lib/lang/pl_client.lng b/interface/web/client/lib/lang/pl_client.lng index 42f73b8..0acf4b2 100644 --- a/interface/web/client/lib/lang/pl_client.lng +++ b/interface/web/client/lib/lang/pl_client.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Maksymalna ilość użytkowników FTP'; $wb['default_dnsserver_txt'] = 'Domyślny serwer DNS'; $wb['limit_dns_zone_txt'] = 'Maksymalna ilość stref DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Maksymalna ilość wpisów DNS'; $wb['limit_shell_user_txt'] = 'Maksymalna ilość użytkowników shell'; $wb['limit_client_txt'] = 'Maksymalna ilość klientów'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit użytkowników FTP musi być liczbą.'; $wb['limit_shell_user_error_notint'] = 'Limit użytkowników shell musi być liczbą.'; $wb['limit_dns_zone_error_notint'] = 'Limit wpisów DNS musi być liczbą.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Domyślny serwer bazy danych'; $wb['limit_database_error_notint'] = 'Limit baz danych musi być liczbą.'; $wb['limit_cron_error_notint'] = 'Limit zadań cron musi być liczbą.'; diff --git a/interface/web/client/lib/lang/pl_client_template.lng b/interface/web/client/lib/lang/pl_client_template.lng index a1a2d75..8cbfa20 100644 --- a/interface/web/client/lib/lang/pl_client_template.lng +++ b/interface/web/client/lib/lang/pl_client_template.lng @@ -24,6 +24,7 @@ $wb['limit_web_subdomain_txt'] = 'Maksymalna ilość subdomen'; $wb['limit_ftp_user_txt'] = 'Maksymalna ilość uzytkowników FTP'; $wb['limit_dns_zone_txt'] = 'Maksymalna ilość stref DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Maksymalna ilość wpisów DNS'; $wb['limit_shell_user_txt'] = 'Maksymalna ilość użytkowników shell'; $wb['limit_client_txt'] = 'Maksymalna ilość klientów'; @@ -45,6 +46,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit użytkowników FTP musi być liczbą.'; $wb['limit_shell_user_error_notint'] = 'Limit użytkowników shell musi być liczbą.'; $wb['limit_dns_zone_error_notint'] = 'Limit wpisów DNS musi być liczbą.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'Limit baz danych musi być liczbą.'; $wb['limit_cron_error_notint'] = 'Limit zadań cron musi być liczbą.'; $wb['limit_cron_error_frequency'] = 'Limit częstości zadań corn musi być liczbą.'; diff --git a/interface/web/client/lib/lang/pl_reseller.lng b/interface/web/client/lib/lang/pl_reseller.lng index f08ca1c..1cebf80 100644 --- a/interface/web/client/lib/lang/pl_reseller.lng +++ b/interface/web/client/lib/lang/pl_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Maksymalna ilość użytkowników FTP'; $wb['default_dnsserver_txt'] = 'Domyślny serwer DNS'; $wb['limit_dns_zone_txt'] = 'Maksymalna ilość stref DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Maksymalna ilość wpisów DNS'; $wb['limit_shell_user_txt'] = 'Maksymalna ilość użytkowników Shell'; $wb['limit_client_txt'] = 'Maksymalna ilość klientów'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit użytkowników ftp musi być liczbą.'; $wb['limit_shell_user_error_notint'] = 'Limit użytkowników shell musi być liczbą.'; $wb['limit_dns_zone_error_notint'] = 'Limit wpisów DNS musi być liczbą.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Domyślny serwer bazy danych'; $wb['limit_database_error_notint'] = 'Limit baz danych musi być liczbą.'; $wb['limit_cron_error_notint'] = 'Limit zadań crone musi być liczbą.'; diff --git a/interface/web/client/lib/lang/pt_client.lng b/interface/web/client/lib/lang/pt_client.lng index 07fb6d4..6d998a5 100644 --- a/interface/web/client/lib/lang/pt_client.lng +++ b/interface/web/client/lib/lang/pt_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'Número máximo de utilizadors FTP'; $wb['default_dnsserver_txt'] = 'Servidor de Nomes Padrão'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registos DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de utilizadors de shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de utilizadors de FTP deve ser um número.'; $wb['limit_shell_user_error_notint'] = 'O limite de utilizadors de Shell deve ser um número.'; $wb['limit_dns_zone_error_notint'] = 'O limite de registos de DNS deve ser um número'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Servidor de Base de Dados Padrão'; $wb['limit_database_error_notint'] = 'O limite de bases de dados deve ser um número'; $wb['username_error_regex'] = 'O nome de utilizador contem caracteres inválidos.'; diff --git a/interface/web/client/lib/lang/pt_client_template.lng b/interface/web/client/lib/lang/pt_client_template.lng index bda5bc9..346d7d8 100644 --- a/interface/web/client/lib/lang/pt_client_template.lng +++ b/interface/web/client/lib/lang/pt_client_template.lng @@ -21,6 +21,7 @@ $wb['limit_web_subdomain_txt'] = 'Número máximo de sub-domínios'; $wb['limit_ftp_user_txt'] = 'Número máximo de utilizadors de FTP'; $wb['limit_dns_zone_txt'] = 'Número máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Número máximo de registos DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de utilizadors de Shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de contas FTP deve ser um número'; $wb['limit_shell_user_error_notint'] = 'O limite de contas shell DNS deve ser um número'; $wb['limit_dns_zone_error_notint'] = 'O limite de zonas DNS deve ser um número'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'O limite de bases de dados deve ser um número'; $wb['error_template_name_empty'] = 'Por favor insira o nome da template'; $wb['limit_cron_txt'] = 'Número máximo de tarefas no cron'; diff --git a/interface/web/client/lib/lang/pt_reseller.lng b/interface/web/client/lib/lang/pt_reseller.lng index ab2823c..388ff1a 100644 --- a/interface/web/client/lib/lang/pt_reseller.lng +++ b/interface/web/client/lib/lang/pt_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Servidor DNS Padrão'; $wb['limit_dns_zone_txt'] = 'Máximo de zonas DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Máximo de registos DNS'; $wb['limit_shell_user_txt'] = 'Número máximo de utilizadors de shell'; $wb['limit_client_txt'] = 'Número máximo de clientes'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'O limite de utilizadors de ftp deve ser um número.'; $wb['limit_shell_user_error_notint'] = 'O limite de utilizadors de shell deve ser um número.'; $wb['limit_dns_zone_error_notint'] = 'O limite de registos de dns deve ser um número.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Servidor de Base de Dados Padrão'; $wb['limit_database_error_notint'] = 'O limite de bases de dados deve ser um número.'; $wb['limit_cron_error_notint'] = 'O limite do cron deve ser um número.'; diff --git a/interface/web/client/lib/lang/ro_client.lng b/interface/web/client/lib/lang/ro_client.lng index 6dbfadb..4b3a790 100644 --- a/interface/web/client/lib/lang/ro_client.lng +++ b/interface/web/client/lib/lang/ro_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'Numar maxim de useri FTP'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Numar maxim de zone DNS '; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Numar maxim de inregistrari DNS '; $wb['limit_shell_user_txt'] = 'Numar maxim de useri Shell '; $wb['limit_client_txt'] = 'Numarul maxim de clienti a fost atins'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['username_error_regex'] = 'The Username contains invalid chracaters.'; diff --git a/interface/web/client/lib/lang/ro_client_template.lng b/interface/web/client/lib/lang/ro_client_template.lng index ab6a8c2..9ea704f 100644 --- a/interface/web/client/lib/lang/ro_client_template.lng +++ b/interface/web/client/lib/lang/ro_client_template.lng @@ -21,6 +21,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['error_template_name_empty'] = 'Please enter a Template name'; $wb['limit_mailaliasdomain_txt'] = 'Max. number of domain aliases'; diff --git a/interface/web/client/lib/lang/ro_reseller.lng b/interface/web/client/lib/lang/ro_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/ro_reseller.lng +++ b/interface/web/client/lib/lang/ro_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/ru_client.lng b/interface/web/client/lib/lang/ru_client.lng index 36817aa..4f4f4f0 100644 --- a/interface/web/client/lib/lang/ru_client.lng +++ b/interface/web/client/lib/lang/ru_client.lng @@ -50,6 +50,7 @@ $wb['limit_ftp_user_txt'] = 'макс.число пользователей FTP'; $wb['default_dnsserver_txt'] = 'DNS сервер по-умолчанию'; $wb['limit_dns_zone_txt'] = 'Макс.число DNS-зон'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Макс.число записей DNS'; $wb['limit_shell_user_txt'] = 'Макс.число пользователей Shell'; $wb['username_error_empty'] = 'Логин пустой.'; @@ -72,6 +73,8 @@ $wb['limit_ftp_user_error_notint'] = 'Лимит пользователей ftp должен быть числом.'; $wb['limit_shell_user_error_notint'] = 'Лимит пользователей shell должен быть числом.'; $wb['limit_dns_zone_error_notint'] = 'Лимит DNS-записей должен быть числом.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Сервер БД по-умолчанию'; $wb['limit_database_error_notint'] = 'Лимит БД должен быть числом.'; $wb['password_strength_txt'] = 'Стойкость пароля'; diff --git a/interface/web/client/lib/lang/ru_client_template.lng b/interface/web/client/lib/lang/ru_client_template.lng index 92f299e..3162ec8 100644 --- a/interface/web/client/lib/lang/ru_client_template.lng +++ b/interface/web/client/lib/lang/ru_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Макс.число web субдоменов'; $wb['limit_ftp_user_txt'] = 'Макс.число FTP пользователей'; $wb['limit_dns_zone_txt'] = 'Макс.число DNS зон'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Макс.число DNS записей'; $wb['limit_shell_user_txt'] = 'Макс.число Shell-пользователей'; $wb['limit_maildomain_error_notint'] = 'Лимит почтовых сервером должен быть числом.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'Лимит пользователей ftp должен быть числом.'; $wb['limit_shell_user_error_notint'] = 'Лимит пользователей shell должен быть числом.'; $wb['limit_dns_zone_error_notint'] = 'Лимит DNS записей должен быть числом.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'Лимит БД должен быть числом.'; $wb['error_template_name_empty'] = 'Введите имя шаблона'; $wb['limit_cron_txt'] = 'Макс.число задач cron'; diff --git a/interface/web/client/lib/lang/ru_reseller.lng b/interface/web/client/lib/lang/ru_reseller.lng index da0ef8d..4ffdc62 100644 --- a/interface/web/client/lib/lang/ru_reseller.lng +++ b/interface/web/client/lib/lang/ru_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Макс. число FTP пользователей'; $wb['default_dnsserver_txt'] = 'DNS сервер по-умолчанию'; $wb['limit_dns_zone_txt'] = 'Макс. число DNS зон'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Макс. число DNS записей'; $wb['limit_shell_user_txt'] = 'Макс. число of Shell-пользователей'; $wb['limit_client_txt'] = 'Макс. число клиентов'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Лимит пользователей FTP должен быть числом.'; $wb['limit_shell_user_error_notint'] = 'Лимит пользователей Shell должен быть числом.'; $wb['limit_dns_zone_error_notint'] = 'Лимит записей DNS должен быть числом.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Сервер БД по-умолчанию'; $wb['limit_database_error_notint'] = 'Лимит БД должен быть числом.'; $wb['limit_cron_error_notint'] = 'Лимит задач cron должен быть числом.'; diff --git a/interface/web/client/lib/lang/se_client.lng b/interface/web/client/lib/lang/se_client.lng index 2bcea5c..46d6ff9 100644 --- a/interface/web/client/lib/lang/se_client.lng +++ b/interface/web/client/lib/lang/se_client.lng @@ -51,6 +51,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['username_error_empty'] = 'Username is empty.'; @@ -73,6 +74,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['username_error_regex'] = 'The Username contains invalid chracaters.'; diff --git a/interface/web/client/lib/lang/se_client_template.lng b/interface/web/client/lib/lang/se_client_template.lng index 7545a16..48dd6ab 100644 --- a/interface/web/client/lib/lang/se_client_template.lng +++ b/interface/web/client/lib/lang/se_client_template.lng @@ -22,6 +22,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. number of web subdomains'; $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_maildomain_error_notint'] = 'The email domain limit must be a number.'; @@ -42,6 +43,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['error_template_name_empty'] = 'Please enter a Template name'; $wb['limit_cron_txt'] = 'Max. number of cron jobs'; diff --git a/interface/web/client/lib/lang/se_reseller.lng b/interface/web/client/lib/lang/se_reseller.lng index f0dc7ca..3ed5060 100644 --- a/interface/web/client/lib/lang/se_reseller.lng +++ b/interface/web/client/lib/lang/se_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. number of FTP users'; $wb['default_dnsserver_txt'] = 'Default DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. number of DNS zones'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. number DNS records'; $wb['limit_shell_user_txt'] = 'Max. number of Shell users'; $wb['limit_client_txt'] = 'Max. number of Clients'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'The ftp user limit must be a number.'; $wb['limit_shell_user_error_notint'] = 'The shell user limit must be a number.'; $wb['limit_dns_zone_error_notint'] = 'The dns record limit must be a number.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Default Database Server'; $wb['limit_database_error_notint'] = 'The database limit must be a number.'; $wb['limit_cron_error_notint'] = 'The cron limit must be a number.'; diff --git a/interface/web/client/lib/lang/sk_client.lng b/interface/web/client/lib/lang/sk_client.lng index 6daf576..8806f59 100644 --- a/interface/web/client/lib/lang/sk_client.lng +++ b/interface/web/client/lib/lang/sk_client.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. po?et pou��vate?ov FTP'; $wb['default_dnsserver_txt'] = 'Predvolen� DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. po?et z�n DNS'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. po?et DNS z�znamov'; $wb['limit_shell_user_txt'] = 'Max. po?et Shell u�ivate?ov'; $wb['limit_client_txt'] = 'Max. po?et klientov'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit ftp u�ivate?ov mus� by? ?�slo.'; $wb['limit_shell_user_error_notint'] = 'Limit shell u�ivate?ov mus� by? ?�slo.'; $wb['limit_dns_zone_error_notint'] = 'Limit dns z�znamov mus� by? ?�slo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Predvolen� Databazov� Server'; $wb['limit_database_error_notint'] = 'Limit datab�z mus� by? ?�slo.'; $wb['limit_cron_error_notint'] = 'Limit cron mus� by? ?�slo.'; diff --git a/interface/web/client/lib/lang/sk_client_template.lng b/interface/web/client/lib/lang/sk_client_template.lng index d0fe1b7..c6fb4d5 100644 --- a/interface/web/client/lib/lang/sk_client_template.lng +++ b/interface/web/client/lib/lang/sk_client_template.lng @@ -24,6 +24,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. po?et web subdom�n'; $wb['limit_ftp_user_txt'] = 'Max. po?et FTP u�ivate?ov'; $wb['limit_dns_zone_txt'] = 'Max. po?et DNS z�n'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. po?et DNS z�znamov'; $wb['limit_shell_user_txt'] = 'Max. po?et Shell u�ivate?ov'; $wb['limit_client_txt'] = 'Max. po?et Klientov'; @@ -45,6 +46,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit ftp u�ivatelov mus� by? ?�slo.'; $wb['limit_shell_user_error_notint'] = 'Limit shell u�iva?e?ov mus� by? ?�slo.'; $wb['limit_dns_zone_error_notint'] = 'Limit dns z�znamov mus� by? ?�slo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'Limit datab�z mus� by? ?�slo.'; $wb['limit_cron_error_notint'] = 'Limit cron mus� by? ?�slo.'; $wb['limit_cron_error_frequency'] = 'Cron frekvencia limit mus� by? ?�slo.'; diff --git a/interface/web/client/lib/lang/sk_reseller.lng b/interface/web/client/lib/lang/sk_reseller.lng index 5b17a80..5edf778 100644 --- a/interface/web/client/lib/lang/sk_reseller.lng +++ b/interface/web/client/lib/lang/sk_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. po?et FTP u�ivate?ov'; $wb['default_dnsserver_txt'] = 'Predvolen� DNS Server'; $wb['limit_dns_zone_txt'] = 'Max. po?et DNS z�n'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. po?et DNS z�znamov'; $wb['limit_shell_user_txt'] = 'Max. po?et of Shell users'; $wb['limit_client_txt'] = 'Max. po?et Klientov'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Limit ftp u�ivate? mus� by? ?�slo.'; $wb['limit_shell_user_error_notint'] = 'Limit shell u�ivate? mus� by? ?�slo.'; $wb['limit_dns_zone_error_notint'] = 'Limit dns z�znamov mus� by? ?�slo.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Predvolen� datab�zov� server'; $wb['limit_database_error_notint'] = 'Datab�zov� limit mus� by? ?�slo.'; $wb['limit_cron_error_notint'] = 'Cron limit mus� by? ?�slo.'; diff --git a/interface/web/client/lib/lang/tr_client.lng b/interface/web/client/lib/lang/tr_client.lng index 74e096d..1f362e8 100644 --- a/interface/web/client/lib/lang/tr_client.lng +++ b/interface/web/client/lib/lang/tr_client.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. FTP kullanıcı sayısı'; $wb['default_dnsserver_txt'] = 'Varsayılan DNS Sunucusu'; $wb['limit_dns_zone_txt'] = 'Max. DNS zone sayısı'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. DNS kaydı sayısı'; $wb['limit_shell_user_txt'] = 'Max. Shell kullanıcısı sayısı'; $wb['limit_client_txt'] = 'Max. Müşteri sayısı'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'Ftp kullanıcısı limiti sayı olmak zorunda.'; $wb['limit_shell_user_error_notint'] = 'Shell kullanıcısı limiti sayı olmak zorunda.'; $wb['limit_dns_zone_error_notint'] = 'Dns record limiti sayı olmak zorunda.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; $wb['limit_database_error_notint'] = 'Veritabanı limiti sayı olmak zorunda.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış Görev limiti sayı olmak zorunda.'; diff --git a/interface/web/client/lib/lang/tr_client_template.lng b/interface/web/client/lib/lang/tr_client_template.lng index 59daf4d..f15f4b2 100644 --- a/interface/web/client/lib/lang/tr_client_template.lng +++ b/interface/web/client/lib/lang/tr_client_template.lng @@ -24,6 +24,7 @@ $wb['limit_web_subdomain_txt'] = 'Max. sub domain sayısı'; $wb['limit_ftp_user_txt'] = 'Max. FTP kullanıcı sayısı'; $wb['limit_dns_zone_txt'] = 'Max. DNS zone sayısı'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. DNS kaydı sayısı'; $wb['limit_shell_user_txt'] = 'Max. Shell kullanıcısı sayısı'; $wb['limit_client_txt'] = 'Max. Müşteri sayısı'; @@ -45,6 +46,8 @@ $wb['limit_ftp_user_error_notint'] = 'Ftp kullanıcı limiti sayı olmak zorunda.'; $wb['limit_shell_user_error_notint'] = 'Shell kullanıcı limiti sayı olmak zorunda.'; $wb['limit_dns_zone_error_notint'] = 'Dns kaydı limiti sayı olmak zorunda.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['limit_database_error_notint'] = 'The database limiti sayı olmak zorunda.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış Görev limiti sayı olmak zorunda.'; $wb['limit_cron_error_frequency'] = 'Zamanlanmış Görev sıklığı limiti sayı olmak zorunda.'; diff --git a/interface/web/client/lib/lang/tr_reseller.lng b/interface/web/client/lib/lang/tr_reseller.lng index f503eea..5265e9e 100644 --- a/interface/web/client/lib/lang/tr_reseller.lng +++ b/interface/web/client/lib/lang/tr_reseller.lng @@ -53,6 +53,7 @@ $wb['limit_ftp_user_txt'] = 'Max. FTP kullanıcı sayısı'; $wb['default_dnsserver_txt'] = 'Varsayılan DNS Sunucusu'; $wb['limit_dns_zone_txt'] = 'Max. DNS zone sayısı'; +$wb['limit_dns_slave_zone_txt'] = 'Max. number of secondary DNS zones'; $wb['limit_dns_record_txt'] = 'Max. DNS record sayısı'; $wb['limit_shell_user_txt'] = 'Max. Shell kullanıcı sayısı'; $wb['limit_client_txt'] = 'Max. Müşteri sayısı'; @@ -76,6 +77,8 @@ $wb['limit_ftp_user_error_notint'] = 'FTP kullanıcı limiti sayı olmak zorunda.'; $wb['limit_shell_user_error_notint'] = 'Shell kullanıcı limiti sayı olmak zorunda.'; $wb['limit_dns_zone_error_notint'] = 'Dns record limiti sayı olmak zorunda.'; +$wb['limit_dns_slave_zone_error_notint'] = 'The dns slave zone limit must be a number.'; +$wb['limit_dns_record_error_notint'] = 'The dns record limit must be a number.'; $wb['default_dbserver_txt'] = 'Varsayılan Veritabanı Sunucusu'; $wb['limit_database_error_notint'] = 'Veritabanı limiti sayı olmak zorunda.'; $wb['limit_cron_error_notint'] = 'Zamanlanmış Görev limiti sayı olmak zorunda.'; diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm index aa35ded..38097a1 100644 --- a/interface/web/client/templates/client_edit_limits.htm +++ b/interface/web/client/templates/client_edit_limits.htm @@ -150,6 +150,10 @@ <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm index 43cdda3..c9a0d39 100644 --- a/interface/web/client/templates/client_template_edit_limits.htm +++ b/interface/web/client/templates/client_template_edit_limits.htm @@ -90,6 +90,10 @@ <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm index dfed34f..ced6de8 100644 --- a/interface/web/client/templates/reseller_edit_limits.htm +++ b/interface/web/client/templates/reseller_edit_limits.htm @@ -131,6 +131,10 @@ <input name="limit_dns_zone" id="limit_dns_zone" value="{tmpl_var name='limit_dns_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> <div class="ctrlHolder"> + <label for="limit_dns_slave_zone">{tmpl_var name='limit_dns_slave_zone_txt'}</label> + <input name="limit_dns_slave_zone" id="limit_dns_slave_zone" value="{tmpl_var name='limit_dns_slave_zone'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder"> <label for="limit_dns_record">{tmpl_var name='limit_dns_record_txt'}</label> <input name="limit_dns_record" id="limit_dns_record" value="{tmpl_var name='limit_dns_record'}" size="10" maxlength="10" type="text" class="textInput formLengthLimit" /> </div> diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index 0f01ca2..e214e69 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -81,6 +81,10 @@ 'db_table' => 'dns_soa', 'db_where' => ""); + $limits[] = array('field' => 'limit_dns_slave_zone', + 'db_table' => 'dns_slave', + 'db_where' => ""); + $limits[] = array('field' => 'limit_dns_record', 'db_table' => 'dns_rr', 'db_where' => ""); @@ -166,4 +170,4 @@ -?> \ No newline at end of file +?> diff --git a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng index 820945c..949ef74 100644 --- a/interface/web/dashboard/lib/lang/de_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/de_dashlet_limits.lng @@ -20,6 +20,7 @@ $wb['limit_web_subdomain_txt'] = "Anzahl der Web Subdomains"; $wb['limit_ftp_user_txt'] = "Anzahl der FTP Benutzer"; $wb['limit_dns_zone_txt'] = "Anzahl der DNS Zonen"; +$wb["limit_dns_slave_zone_txt"] = 'Number of DNS slave zones'; $wb['limit_dns_record_txt'] = "Number DNS records"; $wb['limit_shell_user_txt'] = "Anzahl der Shellbenutzer"; $wb['limit_webdav_user_txt'] = "Anzahl der WedDAV Benutzer"; diff --git a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng index 3154fa1..22b435d 100644 --- a/interface/web/dashboard/lib/lang/en_dashlet_limits.lng +++ b/interface/web/dashboard/lib/lang/en_dashlet_limits.lng @@ -20,6 +20,7 @@ $wb["limit_web_subdomain_txt"] = 'Number of web subdomains'; $wb["limit_ftp_user_txt"] = 'Number of FTP users'; $wb["limit_dns_zone_txt"] = 'Number of DNS zones'; +$wb["limit_dns_slave_zone_txt"] = 'Number of DNS slave zones'; $wb["limit_dns_record_txt"] = 'Number DNS records'; $wb["limit_shell_user_txt"] = 'Number of Shell users'; $wb["limit_webdav_user_txt"] = 'Number of Webdav users'; diff --git a/interface/web/dns/dns_slave_del.php b/interface/web/dns/dns_slave_del.php new file mode 100644 index 0000000..845d776 --- /dev/null +++ b/interface/web/dns/dns_slave_del.php @@ -0,0 +1,69 @@ +<?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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_slave.list.php"; +$tform_def_file = "form/dns_slave.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + if($app->tform->checkPerm($this->id,'d') == false) $app->error($app->lng('error_no_delete_permission')); + + // Delete all records that belog to this zone. + $records = $app->db->queryAllRecords("SELECT id FROM dns_slave WHERE zone = '".intval($this->id)."'"); + foreach($records as $rec) { + $app->db->datalogDelete('dns_slave','id',$rec['id']); + } + } +} + +$page = new page_action; +$page->onDelete(); + +?> \ No newline at end of file diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php new file mode 100644 index 0000000..9ffbf83 --- /dev/null +++ b/interface/web/dns/dns_slave_edit.php @@ -0,0 +1,199 @@ +<?php + +/* +Copyright (c) 2007, 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. +*/ + +/****************************************** +* Begin Form configuration +******************************************/ + +$tform_def_file = "form/dns_slave.tform.php"; + +/****************************************** +* End Form configuration +******************************************/ + +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,validate_dns'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_dns_slave_zone')) { + $app->error($app->tform->wordbook["limit_dns_slave_zone_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_dns_slave_zone')) { + $app->error('Reseller: '.$app->tform->wordbook["limit_dns_slave_zone_txt"]); + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + // If user is admin, we will allow him to select to whom this record belongs + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Getting Domains of the user + $sql = "SELECT groupid, name FROM sys_group WHERE client_id > 0 ORDER by name"; + $clients = $app->db->queryAllRecords($sql); + $client_select = ''; + if($_SESSION["s"]["user"]["typ"] == 'admin') $client_select .= "<option value='0'></option>"; + $tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($clients)) { + foreach( $clients as $client) { + $selected = ($client["groupid"] == @$tmp_data_record["sys_groupid"])?'SELECTED':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + } else if($app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT client.client_id, client.contact_name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + // Fill the client select field + $sql = "SELECT groupid, name FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY name"; + $clients = $app->db->queryAllRecords($sql); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$client['client_id']); + $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contact_name'].'</option>'; + $tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($clients)) { + foreach( $clients as $client) { + $selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; + $client_select .= "<option value='$client[groupid]' $selected>$client[name]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id",$client_select); + + } + + parent::onShowEnd(); + } + + function onSubmit() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] != 'admin') { + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_dns_slave_zone, default_dnsserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + // When the record is updated + if($this->id > 0) { + // restore the server ID if the user is not admin and record is edited + $tmp = $app->db->queryOneRecord("SELECT server_id FROM dns_slave WHERE id = ".intval($this->id)); + $this->dataRecord["server_id"] = $tmp["server_id"]; + unset($tmp); + // When the record is inserted + } else { + // set the server ID to the default dnsserver of the client + $this->dataRecord["server_id"] = $client["default_dnsserver"]; + + // Check if the user may add anoter secondary domain. + if($client["limit_slave_dns_zone"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_slave WHERE sys_groupid = $client_group_id"); + if($tmp["number"] >= $client["limit_dns_slave_zone"]) { + $app->error($app->tform->wordbook["limit_dns_slave_zone_txt"]); + } + } + } + } + + //* Check if the zone name has a dot at the end + if(strlen($this->dataRecord["origin"]) > 0 && substr($this->dataRecord["origin"],-1,1) != '.') $this->dataRecord["origin"] .= '.'; + + //* Check if a primary zone with the same name already exists + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_soa WHERE origin = \"".$this->dataRecord["origin"]."\" AND server_id= \"".$this->dataRecord["server_id"]."\""); + if($tmp["number"] > 0) { + $app->error($app->tform->wordbook["origin_error_unique"]); + } + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_slave SET sys_groupid = $client_group_id WHERE id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_slave SET sys_groupid = $client_group_id WHERE id = ".$this->id); + } + + } + + function onAfterUpdate() { + global $app, $conf; + + $tmp = $app->db->diffrec($this->oldDataRecord,$app->tform->getDataRecord($this->id)); + + // make sure that the record belongs to the client group and not the admin group when a dmin inserts it + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_slave SET sys_groupid = $client_group_id WHERE id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE dns_slave SET sys_groupid = $client_group_id WHERE id = ".$this->id); + } + + //** When the client group has changed, change also the owner of the record if the owner is not the admin user + if($this->oldDataRecord["client_group_id"] != $this->dataRecord["client_group_id"] && $this->dataRecord["sys_userid"] != 1) { + $client_group_id = intval($this->dataRecord["client_group_id"]); + $tmp = $app->db->queryOneREcord("SELECT userid FROM sys_user WHERE default_group = ".$client_group_id); + if($tmp["userid"] > 0) { + $app->db->query("UPDATE dns_slave SET sys_userid = ".$tmp["userid"]." WHERE id = ".$this->id); + } + } + + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/dns/dns_slave_list.php b/interface/web/dns/dns_slave_list.php new file mode 100644 index 0000000..bc66641 --- /dev/null +++ b/interface/web/dns/dns_slave_list.php @@ -0,0 +1,25 @@ +<?php +require_once('../../lib/config.inc.php'); +require_once('../../lib/app.inc.php'); + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/dns_slave.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('dns'); + +$app->uses('listform_actions'); +// $app->listform_actions->SQLExtWhere = "access = 'REJECT'"; + +$app->listform_actions->SQLOrderBy = 'ORDER BY origin'; +$app->listform_actions->onLoad(); + + +?> \ No newline at end of file diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index 4c4d25a..646dae0 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -154,7 +154,12 @@ if(stristr($this->dataRecord["mbox"],'@')) { $this->dataRecord["mbox"] = str_replace('@','.',$this->dataRecord["mbox"]); } - + + //* Check if a secondary zone with the same name already exists + $tmp = $app->db->queryOneRecord("SELECT count(id) as number FROM dns_slave WHERE origin = \"".$this->dataRecord["origin"]."\" AND server_id = \"".$this->dataRecord["server_id"]."\""); + if($tmp["number"] > 0) { + $app->error($app->tform->wordbook["origin_error_unique"]); + } parent::onSubmit(); } @@ -219,4 +224,4 @@ $page = new page_action; $page->onLoad(); -?> \ No newline at end of file +?> diff --git a/interface/web/dns/form/dns_slave.tform.php b/interface/web/dns/form/dns_slave.tform.php new file mode 100644 index 0000000..955a6b3 --- /dev/null +++ b/interface/web/dns/form/dns_slave.tform.php @@ -0,0 +1,126 @@ +<?php + +/* + Form Definition + + Tabledefinition + + Datatypes: + - INTEGER (Forces the input to Int) + - DOUBLE + - CURRENCY (Formats the values to currency notation) + - VARCHAR (no format check, maxlength: 255) + - TEXT (no format check) + - DATE (Dateformat, automatic conversion to timestamps) + + Formtype: + - TEXT (Textfield) + - TEXTAREA (Textarea) + - PASSWORD (Password textfield, input is not shown when edited) + - SELECT (Select option field) + - RADIO + - CHECKBOX + - CHECKBOXARRAY + - FILE + + VALUE: + - Wert oder Array + + Hint: + The ID field of the database table is not part of the datafield definition. + The ID field must be always auto incement (int or bigint). + + +*/ + +$form["title"] = "Secondary DNS Zone"; +$form["description"] = ""; +$form["name"] = "dns_slave"; +$form["action"] = "dns_slave_edit.php"; +$form["db_table"] = "dns_slave"; +$form["db_table_idx"] = "id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "dns_slave"; +$form["list_default"] = "dns_slave_list.php"; +$form["auth"] = 'yes'; // yes / no + +$form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user +$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user +$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete +$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete + +$form["tabs"]['dns_slave'] = array ( + 'title' => "Secondary DNS Zone", + 'width' => 100, + 'template' => "templates/dns_slave_edit.htm", + 'fields' => array ( + ################################## + # Begin Datatable fields + ################################## + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND dns_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'server_id_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'origin' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'origin_error_empty'), + 1 => array ( 'type' => 'UNIQUE', + 'errmsg'=> 'origin_error_unique'), + 2 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-\/]{2,255}\.[a-zA-Z]{2,10}[\.]{0,1}$/', + 'errmsg'=> 'origin_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ns' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-]{1,64}$/', + 'errmsg'=> 'ns_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'xfer' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'Y', + 'value' => array(0 => 'N',1 => 'Y') + ), + ################################## + # ENDE Datatable fields + ################################## + ) +); + + +?> diff --git a/interface/web/dns/lib/lang/ar_dns_slave.lng b/interface/web/dns/lib/lang/ar_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/ar_dns_slave_list.lng b/interface/web/dns/lib/lang/ar_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/ar_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/bg_dns_slave.lng b/interface/web/dns/lib/lang/bg_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/bg_dns_slave_list.lng b/interface/web/dns/lib/lang/bg_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/bg_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/br_dns_slave.lng b/interface/web/dns/lib/lang/br_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/br_dns_slave_list.lng b/interface/web/dns/lib/lang/br_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/br_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/cz_dns_slave.lng b/interface/web/dns/lib/lang/cz_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/cz_dns_slave_list.lng b/interface/web/dns/lib/lang/cz_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/cz_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/de_dns_slave.lng b/interface/web/dns/lib/lang/de_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/de_dns_slave_list.lng b/interface/web/dns/lib/lang/de_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/de_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/en_dns_slave.lng b/interface/web/dns/lib/lang/en_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/en_dns_slave_list.lng b/interface/web/dns/lib/lang/en_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/en_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/es_dns_slave.lng b/interface/web/dns/lib/lang/es_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/es_dns_slave_list.lng b/interface/web/dns/lib/lang/es_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/es_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/fi_dns_slave.lng b/interface/web/dns/lib/lang/fi_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/fi_dns_slave_list.lng b/interface/web/dns/lib/lang/fi_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/fi_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/fr_dns_slave.lng b/interface/web/dns/lib/lang/fr_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/fr_dns_slave_list.lng b/interface/web/dns/lib/lang/fr_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/fr_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/hu_dns_slave.lng b/interface/web/dns/lib/lang/hu_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/hu_dns_slave_list.lng b/interface/web/dns/lib/lang/hu_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/hu_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/it_dns_slave.lng b/interface/web/dns/lib/lang/it_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/it_dns_slave_list.lng b/interface/web/dns/lib/lang/it_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/it_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/ja_dns_slave.lng b/interface/web/dns/lib/lang/ja_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/ja_dns_slave_list.lng b/interface/web/dns/lib/lang/ja_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/ja_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/nl_dns_slave.lng b/interface/web/dns/lib/lang/nl_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/nl_dns_slave_list.lng b/interface/web/dns/lib/lang/nl_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/nl_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/pl_dns_slave.lng b/interface/web/dns/lib/lang/pl_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/pl_dns_slave_list.lng b/interface/web/dns/lib/lang/pl_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/pl_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/pt_dns_slave.lng b/interface/web/dns/lib/lang/pt_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/pt_dns_slave_list.lng b/interface/web/dns/lib/lang/pt_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/pt_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/ro_dns_slave.lng b/interface/web/dns/lib/lang/ro_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/ro_dns_slave_list.lng b/interface/web/dns/lib/lang/ro_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/ro_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/ru_dns_slave.lng b/interface/web/dns/lib/lang/ru_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/ru_dns_slave_list.lng b/interface/web/dns/lib/lang/ru_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/ru_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/se_dns_slave.lng b/interface/web/dns/lib/lang/se_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/se_dns_slave_list.lng b/interface/web/dns/lib/lang/se_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/se_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/sk_dns_slave.lng b/interface/web/dns/lib/lang/sk_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/sk_dns_slave_list.lng b/interface/web/dns/lib/lang/sk_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/sk_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/lang/tr_dns_slave.lng b/interface/web/dns/lib/lang/tr_dns_slave.lng new file mode 100644 index 0000000..7c29de6 --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_slave.lng @@ -0,0 +1,14 @@ +<?php +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'DNS Zone'; +$wb["ns_txt"] = 'NS'; +$wb["active_txt"] = 'Active'; +$wb["limit_dns_slave_zone_txt"] = 'The max. number of Secondary DNS zones for your account is reached.'; +$wb["client_txt"] = 'Client'; +$wb["xfer_txt"] = 'Allow zone transfers to <br />these IPs (comma separated list)'; +$wb["server_id_error_empty"] = 'No server selected'; +$wb["origin_error_empty"] = 'Zone empty.'; +$wb["origin_error_unique"] = 'There is already a record for this zone.'; +$wb["origin_error_regex"] = 'Zone has a invalid format.'; +$wb["ns_error_regex"] = 'NS has a invalid format.'; +?> diff --git a/interface/web/dns/lib/lang/tr_dns_slave_list.lng b/interface/web/dns/lib/lang/tr_dns_slave_list.lng new file mode 100644 index 0000000..1e34f3d --- /dev/null +++ b/interface/web/dns/lib/lang/tr_dns_slave_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'DNS Secondary Zones'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["origin_txt"] = 'Zone'; +$wb["ns_txt"] = 'NS'; +$wb["add_new_record_txt"] = 'Add new secondary DNS Zone'; +?> \ No newline at end of file diff --git a/interface/web/dns/lib/module.conf.php b/interface/web/dns/lib/module.conf.php index 125eac4..8018e98 100644 --- a/interface/web/dns/lib/module.conf.php +++ b/interface/web/dns/lib/module.conf.php @@ -50,8 +50,16 @@ unset($items); +$items[] = array( 'title' => "Secondary Zones", + 'target' => 'content', + 'link' => 'dns/dns_slave_list.php', + 'html_id' => 'dns_slave_list'); +$module["nav"][] = array( 'title' => 'Secondary DNS', + 'open' => 1, + 'items' => $items); +unset($items); diff --git a/interface/web/dns/list/dns_slave.list.php b/interface/web/dns/list/dns_slave.list.php new file mode 100644 index 0000000..e8b2129 --- /dev/null +++ b/interface/web/dns/list/dns_slave.list.php @@ -0,0 +1,97 @@ +<?php + +/* + Datatypes: + - INTEGER + - DOUBLE + - CURRENCY + - VARCHAR + - TEXT + - DATE +*/ + + + +// Name of the list +$liste["name"] = "dns_slave"; + +// Database table +$liste["table"] = "dns_slave"; + +// Index index field of the database table +$liste["table_idx"] = "id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = 15; + +// Script File of the list +$liste["file"] = "dns_slave_list.php"; + +// Script file of the edit form +$liste["edit_file"] = "dns_slave_edit.php"; + +// Script File of the delete script +$liste["delete_file"] = "dns_slave_del.php"; + +// Paging Template +$liste["paging_tpl"] = "templates/paging.tpl.htm"; + +// Enable auth +$liste["auth"] = "yes"; + + +/***************************************************** +* Suchfelder +*****************************************************/ + + +$liste["item"][] = array( 'field' => "active", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "=", + '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>")); + + +$liste["item"][] = array( 'field' => "server_id", + 'datatype' => "VARCHAR", + 'formtype' => "SELECT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'datasource' => array ( 'type' => 'CUSTOM', + 'class'=> 'custom_datasource', + 'function'=> 'dns_servers' + ), + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "origin", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + +$liste["item"][] = array( 'field' => "ns", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + + + + +?> \ No newline at end of file diff --git a/interface/web/dns/templates/dns_slave_edit.htm b/interface/web/dns/templates/dns_slave_edit.htm new file mode 100644 index 0000000..495b74c --- /dev/null +++ b/interface/web/dns/templates/dns_slave_edit.htm @@ -0,0 +1,61 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_dns_slave"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Secondary DNS Zone</legend> + <tmpl_if name="is_admin"> + <div class="ctrlHolder"> + <label for="server_id">{tmpl_var name='server_id_txt'}</label> + <select name="server_id" id="server_id" class="selectInput"> + {tmpl_var name='server_id'} + </select> + </div> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='client_txt'}</label> + <select name="client_group_id" id="client_group_id" class="selectInput"> + {tmpl_var name='client_group_id'} + </select> + </div> + </tmpl_if> + <tmpl_if name="is_reseller"> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='client_txt'}</label> + <select name="client_group_id" id="client_group_id" class="selectInput"> + {tmpl_var name='client_group_id'} + </select> + </div> + </tmpl_if> + <div class="ctrlHolder"> + <label for="origin">{tmpl_var name='origin_txt'}</label> + <input name="origin" id="origin" value="{tmpl_var name='origin'}" size="30" maxlength="255" type="text" class="textInput" /> + <p class="formHint">e.g. domain.tld.</p> + </div> + <div class="ctrlHolder"> + <label for="ns">{tmpl_var name='ns_txt'}</label> + <input name="ns" id="ns" value="{tmpl_var name='ns'}" size="30" maxlength="255" type="text" class="textInput" /> + <p class="formHint">IPv4 form - e.g. 1.2.3.4</p> + </div> + <div class="ctrlHolder"> + <label for="xfer">{tmpl_var name='xfer_txt'}</label> + <input name="xfer" id="xfer" value="{tmpl_var name='xfer'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='active_txt'}</p> + <div class="multiField"> + {tmpl_var name='active'} + </div> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + <input name="serial" type="hidden" value="{tmpl_var name='serial'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','dns/dns_slave_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button> + <button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('dns/dns_slave_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/dns/templates/dns_slave_list.htm b/interface/web/dns/templates/dns_slave_list.htm new file mode 100644 index 0000000..2ddcc6a --- /dev/null +++ b/interface/web/dns/templates/dns_slave_list.htm @@ -0,0 +1,59 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_dns_slave"> + + <div class="pnl_toolsarea"> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="iconstxt icoAdd" type="button" onClick="loadContent('dns/dns_slave_edit.php');"> + <span>{tmpl_var name="add_new_record_txt"}</span> + </button> + </div> + </fieldset> + </div> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr> + <th class="tbl_col_active" scope="col"><tmpl_var name="active_txt"></th> + <th class="tbl_col_server_id" scope="col"><tmpl_var name="server_id_txt"></th> + <th class="tbl_col_origin" scope="col"><tmpl_var name="origin_txt"></th> + <th class="tbl_col_ns" scope="col"><tmpl_var name="ns_txt"></th> + <th class="tbl_col_buttons" scope="col"> </th> + </tr> + <tr> + <td class="tbl_col_active"><select name="search_active" onChange="submitForm('pageForm','dns/dns_slave_list.php');">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id" onChange="submitForm('pageForm','dns/dns_slave_list.php');">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_origin"><input type="text" name="search_origin" value="{tmpl_var name='search_origin'}" /></td> + <td class="tbl_col_ns"><input type="text" name="search_ns" value="{tmpl_var name='search_ns'}" /></td> + <td class="tbl_col_buttons"><div class="buttons"><button type="button" class="icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onClick="submitForm('pageForm','dns/dns_slave_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></div></td> + </tr> + </thead> + <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_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> + <td class="tbl_col_buttons"> + <div class="buttons icons16"> + <a class="icons16 icoDelete" href="javascript: del_record('dns/dns_slave_del.php?id={tmpl_var name='id'}&phpsessid={tmpl_var name='phpsessid'}','{tmpl_var name='delete_confirmation'}');"><span>{tmpl_var name='delete_txt'}</span></a> + </div> + </td> + </tr> + </tmpl_loop> + </tbody> + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="6"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> diff --git a/server/conf/bind_named.conf.local.slave b/server/conf/bind_named.conf.local.slave new file mode 100644 index 0000000..f840351 --- /dev/null +++ b/server/conf/bind_named.conf.local.slave @@ -0,0 +1,9 @@ + +<tmpl_loop name='zones'> +<tmpl_if name='zone'> +zone "<tmpl_var name='zone'>" { + type slave; +<tmpl_var name='options'> file "<tmpl_var name='zonefile_path'>"; +}; +</tmpl_if> +</tmpl_loop> diff --git a/server/mods-available/dns_module.inc.php b/server/mods-available/dns_module.inc.php index 72ae1df..f079127 100644 --- a/server/mods-available/dns_module.inc.php +++ b/server/mods-available/dns_module.inc.php @@ -35,6 +35,9 @@ var $actions_available = array( 'dns_soa_insert', 'dns_soa_update', 'dns_soa_delete', + 'dns_slave_insert', + 'dns_slave_update', + 'dns_slave_delete', 'dns_rr_insert', 'dns_rr_update', 'dns_rr_delete'); @@ -73,11 +76,13 @@ */ $app->modules->registerTableHook('dns_soa',$this->module_name,'process'); + $app->modules->registerTableHook('dns_slave',$this->module_name,'process'); $app->modules->registerTableHook('dns_rr',$this->module_name,'process'); // Register service $app->services->registerService('bind','dns_module','restartBind'); + $app->services->registerService('powerdns','dns_module','restartPowerDNS'); } @@ -94,6 +99,11 @@ if($action == 'i') $app->plugins->raiseEvent('dns_soa_insert',$data); if($action == 'u') $app->plugins->raiseEvent('dns_soa_update',$data); if($action == 'd') $app->plugins->raiseEvent('dns_soa_delete',$data); + break; + case 'dns_slave': + if($action == 'i') $app->plugins->raiseEvent('dns_slave_insert',$data); + if($action == 'u') $app->plugins->raiseEvent('dns_slave_update',$data); + if($action == 'd') $app->plugins->raiseEvent('dns_slave_delete',$data); break; case 'dns_rr': if($action == 'i') $app->plugins->raiseEvent('dns_rr_insert',$data); @@ -121,8 +131,54 @@ } } + + function restartPowerDNS($action = 'restart') { + global $app; + + $app->log("restartPDNS called.",LOGLEVEL_DEBUG); + +/** Since PowerDNS does not currently allow to limit AXFR for specific zones to specific +* IP addresses, we create a list of IPs allowed of AXFR transfers from our PowerDNS, +* however any of these IPs is allowed to AXFR transfer any of the zones we are masters +* for. +*/ + $tmps = $app->db->queryAllRecords("SELECT DISTINCT xfer FROM dns_soa WHERE active = 'Y' UNION SELECT DISTINCT xfer FROM dns_slave WHERE active = 'Y' "); + + //* Make sure the list is never empty + $options='127.0.0.1'; + foreach($tmps as $tmp) { + if (trim($tmp['xfer'])!='') { + if ($options=='') { + $options.=$tmp['xfer']; + } else { + $options=$options.",".$tmp['xfer']; + } + } + } + + //* Remove duplicate IPs from the array + $options = "allow-axfr-ips=".implode(",",array_unique(explode(",",$options))); + $app->log("".$options,LOGLEVEL_DEBUG); + +/** Not an ideal way to use a hardcoded path like that, but currently +* we have no way to find out where powerdns' configuration files are +* located, so we have to work on assumption. +*/ + file_put_contents('/etc/powerdns/pdns.d/pdns.ispconfig-axfr',$options."\n"); + + if (is_file('/etc/init.d/powerdns')) { + $command = '/etc/init.d/powerdns'; + } else { + $command = '/etc/init.d/pdns'; + } + + exec($command.' restart'); + +// unset $tmps; + + } } // end class -?> \ No newline at end of file +?> diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php index 3c084b3..2e4e334 100644 --- a/server/plugins-available/bind_plugin.inc.php +++ b/server/plugins-available/bind_plugin.inc.php @@ -63,6 +63,11 @@ $app->plugins->registerEvent('dns_soa_insert',$this->plugin_name,'soa_insert'); $app->plugins->registerEvent('dns_soa_update',$this->plugin_name,'soa_update'); $app->plugins->registerEvent('dns_soa_delete',$this->plugin_name,'soa_delete'); + + //* SLAVE + $app->plugins->registerEvent('dns_slave_insert',$this->plugin_name,'slave_insert'); + $app->plugins->registerEvent('dns_slave_update',$this->plugin_name,'slave_update'); + $app->plugins->registerEvent('dns_slave_delete',$this->plugin_name,'slave_delete'); //* RR $app->plugins->registerEvent('dns_rr_insert',$this->plugin_name,'rr_insert'); @@ -146,6 +151,61 @@ $app->services->restartServiceDelayed('bind','reload'); } + + function slave_insert($event_name,$data) { + global $app, $conf; + + $this->action = 'insert'; + $this->slave_update($event_name,$data); + + } + + function slave_update($event_name,$data) { + global $app, $conf; + + //* Load libraries + $app->uses("getconf,tpl"); + + //* load the server configuration options + $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); + + //* rebuild the named.conf file if the origin has changed or when the origin is inserted. + //if($this->action == 'insert' || $data['old']['origin'] != $data['new']['origin']) { + $this->write_named_conf($data,$dns_config); + //} + + //* Delete old domain file, if domain name has been changed + if($data['old']['origin'] != $data['new']['origin']) { + $filename = $dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($data['old']['origin'],0,-1); + if(is_file($filename)) unset($filename); + } + + //* Reload bind nameserver + $app->services->restartServiceDelayed('bind','reload'); + + } + + function slave_delete($event_name,$data) { + global $app, $conf; + + + //* load the server configuration options + $app->uses("getconf,tpl"); + $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); + + //* rebuild the named.conf file + $this->write_named_conf($data,$dns_config); + + //* Delete the domain file + $zone_file_name = $dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($data['old']['origin'],0,-1); + if(is_file($zone_file_name)) unlink($zone_file_name); + $app->log("Deleting BIND domain file for secondary zone: ".$zone_file_name,LOGLEVEL_DEBUG); + + //* Reload bind nameserver + $app->services->restartServiceDelayed('bind','reload'); + + + } function rr_insert($event_name,$data) { global $app, $conf; @@ -187,14 +247,19 @@ function write_named_conf($data, $dns_config) { global $app, $conf; - - $tmps = $app->db->queryAllRecords("SELECT origin, xfer, also_notify FROM dns_soa WHERE active = 'Y'"); + + //* Only write the master file for the current server + $tmps = $app->db->queryAllRecords("SELECT origin, xfer, also_notify FROM dns_soa WHERE active = 'Y' AND server_id=".$conf["server_id"]); $zones = array(); foreach($tmps as $tmp) { $options = ''; - if(trim($tmp['xfer']) != '') $options .= ' allow-transfer {'.str_replace(',',';',$tmp['xfer']).";};\n"; + if(trim($tmp['xfer']) != '') { + $options .= " allow-transfer {".str_replace(',',';',$tmp['xfer']).";};\n"; + } else { + $options .= " allow-transfer {none;};\n"; + } if(trim($tmp['also_notify']) != '') $options .= ' also-notify {'.str_replace(',',';',$tmp['also_notify']).";};\n"; $zones[] = array( 'zone' => substr($tmp['origin'],0,-1), @@ -202,14 +267,46 @@ 'options' => $options ); } - + $tpl = new tpl(); $tpl->newTemplate("bind_named.conf.local.master"); $tpl->setLoop('zones',$zones); - file_put_contents($dns_config['named_conf_local_path'],$tpl->grab()); - $app->log("Writing BIND named.conf.local file: ".$dns_config['named_conf_local_path'],LOGLEVEL_DEBUG); + //* And loop through the secondary zones, but only for the current server + $tmps_sec = $app->db->queryAllRecords("SELECT origin, xfer, ns FROM dns_slave WHERE active = 'Y' AND server_id=".$conf["server_id"]); + $zones_sec = array(); + + foreach($tmps_sec as $tmp) { + + $options = " masters {".$tmp['ns'].";};\n"; + if(trim($tmp['xfer']) != '') { + $options .= " allow-transfer {".str_replace(',',';',$tmp['xfer']).";};\n"; + } else { + $options .= " allow-transfer {none;};\n"; + } + + + $zones_sec[] = array( 'zone' => substr($tmp['origin'],0,-1), + 'zonefile_path' => $dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($tmp['origin'],0,-1), + 'options' => $options + ); + +// $filename = escapeshellcmd($dns_config['bind_zonefiles_dir'].'/slave/sec.'.substr($tmp['origin'],0,-1)); +// $app->log("Writing BIND domain file: ".$filename,LOGLEVEL_DEBUG); + + + } + $tpl_sec = new tpl(); + $tpl_sec->newTemplate("bind_named.conf.local.slave"); + $tpl_sec->setLoop('zones',$zones_sec); + + file_put_contents($dns_config['named_conf_local_path'],$tpl->grab()."\n".$tpl_sec->grab()); + $app->log("Writing BIND named.conf.local file: ".$dns_config['named_conf_local_path'],LOGLEVEL_DEBUG); + + unset($tpl_sec); + unset($zones_sec); + unset($tmps_sec); unset($tpl); unset($zones); unset($tmps); @@ -221,4 +318,4 @@ } // end class -?> \ No newline at end of file +?> diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php index 5627d55..74f32b9 100644 --- a/server/plugins-available/powerdns_plugin.inc.php +++ b/server/plugins-available/powerdns_plugin.inc.php @@ -111,6 +111,11 @@ $app->plugins->registerEvent('dns_soa_insert',$this->plugin_name,'soa_insert'); $app->plugins->registerEvent('dns_soa_update',$this->plugin_name,'soa_update'); $app->plugins->registerEvent('dns_soa_delete',$this->plugin_name,'soa_delete'); + + //* SLAVE + $app->plugins->registerEvent('dns_slave_insert',$this->plugin_name,'slave_insert'); + $app->plugins->registerEvent('dns_slave_update',$this->plugin_name,'slave_update'); + $app->plugins->registerEvent('dns_slave_delete',$this->plugin_name,'slave_delete'); //* RR $app->plugins->registerEvent('dns_rr_insert',$this->plugin_name,'rr_insert'); @@ -130,7 +135,6 @@ $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); $serial_id = $serial["serial"]; $app->db->query("INSERT INTO powerdns.domains (name, type, notified_serial, ispconfig_id) VALUES ('$origin', 'MASTER', $serial_id, $ispconfig_id)"); - //$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)"); $zone_id = mysql_insert_id(); if(substr($data["new"]["ns"], -1) == '.'){ $ns = substr($data["new"]["ns"], 0, -1); @@ -141,10 +145,12 @@ $hostmaster = substr($data["new"]["mbox"], 0, -1); $content = $ns.' '.$hostmaster.' 0'; - //$content = $ns.' '.$hostmaster.' '.$serial_id.''; $ttl = $data["new"]["ttl"]; $app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES ($zone_id, '$origin', 'SOA', '$content', $ttl, 0, ".time().", $ispconfig_id)"); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); } @@ -160,8 +166,8 @@ $ispconfig_id = $data["new"]["id"]; $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id); $serial_id = $serial["serial"]; - //$app->db->query("UPDATE powerdns.domains SET name = '$origin', notified_serial = $serial_id WHERE ispconfig_id = $ispconfig_id"); - //$app->db->query("UPDATE powerdns.domains SET name = '$origin' WHERE ispconfig_id = $ispconfig_id"); + //$app->db->query("UPDATE powerdns.domains SET name = '$origin', notified_serial = $serial_id WHERE ispconfig_id = $ispconfig_idi AND type = 'MASTER'"); + //$app->db->query("UPDATE powerdns.domains SET name = '$origin' WHERE ispconfig_id = $ispconfig_id AND type = 'MASTER'"); if(substr($data["new"]["ns"], -1) == '.'){ $ns = substr($data["new"]["ns"], 0, -1); @@ -175,6 +181,11 @@ $content = $ns.' '.$hostmaster.' '.$serial_id.''; $ttl = $data["new"]["ttl"]; $app->db->query("UPDATE powerdns.records SET name = '$origin', content = '$content', ttl = $ttl, change_date = ".time()." WHERE ispconfig_id = ".$data["new"]["id"]." AND type = 'SOA'"); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); + + } else { $this->soa_insert($event_name,$data); $ispconfig_id = $data["new"]["id"]; @@ -195,11 +206,78 @@ function soa_delete($event_name,$data) { global $app, $conf; - $zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["old"]["id"]); + $zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["old"]["id"]." AND type = 'MASTER'"); $zone_id = $zone["id"]; $app->db->query("DELETE FROM powerdns.records WHERE domain_id = $zone_id"); $app->db->query("DELETE FROM powerdns.domains WHERE id = $zone_id"); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); + } + + function slave_insert($event_name,$data) { + global $app, $conf; + + if($data["new"]["active"] != 'Y') return; + + $origin = substr($data["new"]["origin"], 0, -1); + $ispconfig_id = $data["new"]["id"]; + $master_ns = $data["new"]["ns"]; + + $app->db->query("INSERT INTO powerdns.domains (name, type, master, ispconfig_id) VALUES ('$origin', 'SLAVE', '$master_ns', $ispconfig_id)"); + + //$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)"); + $zone_id = mysql_insert_id(); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); + + } + + function slave_update($event_name,$data) { + global $app, $conf; + + if($data["new"]["active"] != 'Y'){ + if($data["old"]["active"] != 'Y') return; + $this->slave_delete($event_name,$data); + } else { + if($data["old"]["active"] == 'Y'){ + + $origin = substr($data["new"]["origin"], 0, -1); + $ispconfig_id = $data["new"]["id"]; + $master_ns = $data["new"]["ns"]; + + $app->db->query("UPDATE powerdns.domains SET name = '$origin', type = 'SLAVE', master = '$master_ns' WHERE ispconfig_id=$ispconfig_id AND type = 'SLAVE'"); + //$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)"); + $zone_id = mysql_insert_id(); + + $zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$ispconfig_id." AND type = 'SLAVE'"); + $zone_id = $zone["id"]; + $app->db->query("DELETE FROM powerdns.records WHERE domain_id = $zone_id AND ispconfig_id = 0"); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); + + } else { + $this->slave_insert($event_name,$data); + + } + } + + } + + function slave_delete($event_name,$data) { + global $app, $conf; + + $zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["old"]["id"]." AND type = 'SLAVE'"); + $zone_id = $zone["id"]; + $app->db->query("DELETE FROM powerdns.records WHERE domain_id = $zone_id"); + $app->db->query("DELETE FROM powerdns.domains WHERE id = $zone_id"); + + //* Reload powerdns nameserver + $app->services->restartServiceDelayed('powerdns','reload'); + } function rr_insert($event_name,$data) { @@ -208,7 +286,7 @@ $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); $origin = substr($zone["origin"], 0, -1); - $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]); + $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]." AND type = 'MASTER'"); $zone_id = $powerdns_zone["id"]; $type = $data["new"]["type"]; @@ -271,7 +349,7 @@ if($data["old"]["active"] == 'Y'){ $zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]); $origin = substr($zone["origin"], 0, -1); - $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]); + $powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]." AND type = 'MASTER'"); $zone_id = $powerdns_zone["id"]; $type = $data["new"]["type"]; @@ -338,8 +416,6 @@ } - - } // end class -?> \ No newline at end of file +?> -- Gitblit v1.9.1