From 511ba5d03c8bba828b9096f13e14ec54c1ecbb87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20M=C3=BCller?= <info@profi-webdesign.net> Date: Sun, 19 Jan 2014 21:04:38 +0100 Subject: [PATCH] New Feature VHost-Alias (FS#3296) Completly same functionality as VHost-Subdomain, not to disable if already existing vhostalias-somains in system. --- interface/lib/classes/remote.d/sites.inc.php | 69 + ...sites_web_vhost_aliasdomain_plugin.inc.php | 68 + .../web/admin/form/system_config.tform.php | 6 + .../web/admin/lib/lang/ar_system_config.lng | 4 +- .../web/admin/lib/lang/bg_system_config.lng | 2 + .../web/admin/lib/lang/br_system_config.lng | 4 +- .../web/admin/lib/lang/cz_system_config.lng | 2 + .../web/admin/lib/lang/de_system_config.lng | 2 + .../web/admin/lib/lang/el_system_config.lng | 2 + .../web/admin/lib/lang/en_system_config.lng | 4 +- .../web/admin/lib/lang/es_system_config.lng | 4 +- .../web/admin/lib/lang/fi_system_config.lng | 4 +- .../web/admin/lib/lang/fr_system_config.lng | 4 +- .../web/admin/lib/lang/hr_system_config.lng | 4 +- .../web/admin/lib/lang/hu_system_config.lng | 4 +- .../web/admin/lib/lang/id_system_config.lng | 4 +- .../web/admin/lib/lang/it_system_config.lng | 4 +- .../web/admin/lib/lang/ja_system_config.lng | 4 +- .../web/admin/lib/lang/nl_system_config.lng | 4 +- .../web/admin/lib/lang/pl_system_config.lng | 2 + .../web/admin/lib/lang/pt_system_config.lng | 4 +- .../web/admin/lib/lang/ro_system_config.lng | 4 +- .../web/admin/lib/lang/ru_system_config.lng | 4 +- .../web/admin/lib/lang/se_system_config.lng | 4 +- .../web/admin/lib/lang/sk_system_config.lng | 4 +- .../web/admin/lib/lang/tr_system_config.lng | 4 +- interface/web/admin/system_config_edit.php | 6 + .../web/admin/system_config_edit.php.bak | 205 +++ .../templates/system_config_sites_edit.htm | 6 + interface/web/dashboard/ajax_get_json.php | 3 + interface/web/dashboard/ajax_get_json.php.bak | 238 ++++ interface/web/dashboard/dashlets/limits.php | 2 +- .../web/dashboard/dashlets/limits.php.bak | 177 +++ interface/web/data.sql | 51 + interface/web/sites/aps_install_package.php | 2 +- .../web/sites/aps_install_package.php.bak | 211 ++++ interface/web/sites/form/web_folder.tform.php | 2 +- .../web/sites/form/web_folder.tform.php.bak | 110 ++ .../form/web_vhost_aliasdomain.tform.php | 735 +++++++++++ .../sites/form/web_vhost_subdomain.tform.php | 2 +- .../lib/lang/ar_web_vhost_aliasdomain.lng | 118 ++ .../lang/ar_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/bg_web_vhost_aliasdomain.lng | 118 ++ .../lang/bg_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/br_web_vhost_aliasdomain.lng | 118 ++ .../lang/br_web_vhost_aliasdomain_list.lng | 9 + .../lib/lang/cz_web_vhost_aliasdomain.lng | 119 ++ .../lang/cz_web_vhost_aliasdomain_list.lng | 9 + .../lib/lang/de_web_vhost_aliasdomain.lng | 126 ++ .../lang/de_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/el_web_vhost_aliasdomain.lng | 118 ++ .../lang/el_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/en_web_vhost_aliasdomain.lng | 127 ++ .../lang/en_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/es_web_vhost_aliasdomain.lng | 118 ++ .../lang/es_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/fi_web_vhost_aliasdomain.lng | 118 ++ .../lang/fi_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/fr_web_vhost_aliasdomain.lng | 118 ++ .../lang/fr_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/hr_web_vhost_aliasdomain.lng | 118 ++ .../lang/hr_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/hu_web_vhost_aliasdomain.lng | 118 ++ .../lang/hu_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/id_web_vhost_aliasdomain.lng | 118 ++ .../lang/id_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/it_web_vhost_aliasdomain.lng | 118 ++ .../lang/it_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/ja_web_vhost_aliasdomain.lng | 118 ++ .../lang/ja_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/nl_web_vhost_aliasdomain.lng | 118 ++ .../lang/nl_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/pl_web_vhost_aliasdomain.lng | 118 ++ .../lang/pl_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/pt_web_vhost_aliasdomain.lng | 118 ++ .../lang/pt_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/ro_web_vhost_aliasdomain.lng | 118 ++ .../lang/ro_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/ru_web_vhost_aliasdomain.lng | 118 ++ .../lang/ru_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/se_web_vhost_aliasdomain.lng | 118 ++ .../lang/se_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/sk_web_vhost_aliasdomain.lng | 118 ++ .../lang/sk_web_vhost_aliasdomain_list.lng | 8 + .../lib/lang/tr_web_vhost_aliasdomain.lng | 118 ++ .../lang/tr_web_vhost_aliasdomain_list.lng | 8 + interface/web/sites/lib/module.conf.php | 10 + interface/web/sites/list/web_folder.list.php | 2 +- .../web/sites/list/web_folder.list.php.bak | 102 ++ .../sites/templates/web_sites_stats_list.htm | 8 +- .../templates/web_sites_stats_list.htm.bak | 63 + .../web_vhost_aliasdomain_advanced.htm | 157 +++ .../web_vhost_aliasdomain_backup.htm | 36 + .../templates/web_vhost_aliasdomain_edit.htm | 234 ++++ .../templates/web_vhost_aliasdomain_list.htm | 79 ++ .../web_vhost_aliasdomain_redirect.htm | 84 ++ .../templates/web_vhost_aliasdomain_ssl.htm | 68 + .../templates/web_vhost_aliasdomain_stats.htm | 37 + interface/web/sites/web_aliasdomain_edit.php | 4 +- .../web/sites/web_aliasdomain_edit.php.bak | 191 +++ interface/web/sites/web_domain_edit.php | 8 +- interface/web/sites/web_domain_edit.php.bak | 1114 +++++++++++++++++ interface/web/sites/web_sites_stats.php | 2 +- interface/web/sites/web_sites_stats.php.bak | 188 +++ .../web/sites/web_vhost_aliasdomain_del.php | 73 ++ .../web/sites/web_vhost_aliasdomain_edit.php | 666 ++++++++++ .../web/sites/web_vhost_aliasdomain_list.php | 55 + .../admin/system_config_sites_edit.htm | 6 + .../sites/web_vhost_aliasdomain_advanced.htm | 146 +++ .../sites/web_vhost_aliasdomain_backup.htm | 32 + .../sites/web_vhost_aliasdomain_edit.htm | 208 +++ .../sites/web_vhost_aliasdomain_list.htm | 60 + .../sites/web_vhost_aliasdomain_redirect.htm | 76 ++ .../sites/web_vhost_aliasdomain_ssl.htm | 68 + .../sites/web_vhost_aliasdomain_stats.htm | 37 + server/lib/classes/aps_installer.inc.php | 3 +- server/lib/classes/aps_installer.inc.php.bak | 749 +++++++++++ server/lib/classes/cron.d/150-awstats.inc.php | 6 +- .../lib/classes/cron.d/150-webalizer.inc.php | 6 +- .../lib/classes/cron.d/200-logfiles.inc.php | 4 +- .../classes/cron.d/300-quota_notify.inc.php | 4 +- server/lib/classes/cron.d/500-backup.inc.php | 2 +- .../plugins-available/apache2_plugin.inc.php | 60 +- server/plugins-available/nginx_plugin.inc.php | 52 +- .../nginx_reverseproxy_plugin.inc.php | 6 +- 125 files changed, 9496 insertions(+), 103 deletions(-) create mode 100644 interface/lib/plugins/sites_web_vhost_aliasdomain_plugin.inc.php create mode 100644 interface/web/admin/system_config_edit.php.bak create mode 100644 interface/web/dashboard/ajax_get_json.php.bak create mode 100644 interface/web/dashboard/dashlets/limits.php.bak create mode 100644 interface/web/sites/aps_install_package.php.bak create mode 100644 interface/web/sites/form/web_folder.tform.php.bak create mode 100644 interface/web/sites/form/web_vhost_aliasdomain.tform.php create mode 100644 interface/web/sites/lib/lang/ar_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/ar_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/bg_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/bg_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/br_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/br_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/cz_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/cz_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/de_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/de_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/el_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/el_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/en_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/en_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/es_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/es_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/fi_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/fi_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/fr_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/fr_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/hr_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/hr_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/hu_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/hu_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/id_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/id_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/it_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/it_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/ja_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/ja_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/nl_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/nl_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/pl_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/pl_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/pt_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/pt_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/ro_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/ro_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/ru_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/ru_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/se_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/se_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/sk_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/sk_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/lib/lang/tr_web_vhost_aliasdomain.lng create mode 100644 interface/web/sites/lib/lang/tr_web_vhost_aliasdomain_list.lng create mode 100644 interface/web/sites/list/web_folder.list.php.bak create mode 100644 interface/web/sites/templates/web_sites_stats_list.htm.bak create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_advanced.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_backup.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_edit.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_list.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_redirect.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_ssl.htm create mode 100644 interface/web/sites/templates/web_vhost_aliasdomain_stats.htm create mode 100644 interface/web/sites/web_aliasdomain_edit.php.bak create mode 100644 interface/web/sites/web_domain_edit.php.bak create mode 100644 interface/web/sites/web_sites_stats.php.bak create mode 100644 interface/web/sites/web_vhost_aliasdomain_del.php create mode 100644 interface/web/sites/web_vhost_aliasdomain_edit.php create mode 100644 interface/web/sites/web_vhost_aliasdomain_list.php create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_advanced.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_backup.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_edit.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_list.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_redirect.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_ssl.htm create mode 100644 interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_stats.htm create mode 100644 server/lib/classes/aps_installer.inc.php.bak diff --git a/interface/lib/classes/remote.d/sites.inc.php b/interface/lib/classes/remote.d/sites.inc.php index 19958010b..5e5ac595b 100644 --- a/interface/lib/classes/remote.d/sites.inc.php +++ b/interface/lib/classes/remote.d/sites.inc.php @@ -450,6 +450,75 @@ class remoting_sites extends remoting { // ---------------------------------------------------------------------------------------------------------- + //* Get record details + public function sites_web_vhost_aliasdomain_get($session_id, $primary_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_get')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $app->uses('remoting_lib'); + $app->remoting_lib->loadFormDef('../sites/form/web_vhost_aliasdomain.tform.php'); + return $app->remoting_lib->getDataRecord($primary_id); + } + + //* Add a record + public function sites_web_vhost_aliasdomain_add($session_id, $client_id, $params) + { + global $app; + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_add')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + //* Set a few params to "not empty" values which get overwritten by the sites_web_domain_plugin + if($params['document_root'] == '') $params['document_root'] = '-'; + if($params['system_user'] == '') $params['system_user'] = '-'; + if($params['system_group'] == '') $params['system_group'] = '-'; + + //* Set a few defaults for nginx servers + if($params['pm_max_children'] == '') $params['pm_max_children'] = 1; + if($params['pm_start_servers'] == '') $params['pm_start_servers'] = 1; + if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1; + if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1; + + $domain_id = $this->insertQuery('../sites/form/web_vhost_aliasdomain.tform.php', $client_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert'); + return $domain_id; + } + + //* Update a record + public function sites_web_vhost_aliasdomain_update($session_id, $client_id, $primary_id, $params) + { + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_update')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + + //* Set a few defaults for nginx servers + if($params['pm_max_children'] == '') $params['pm_max_children'] = 1; + if($params['pm_start_servers'] == '') $params['pm_start_servers'] = 1; + if($params['pm_min_spare_servers'] == '') $params['pm_min_spare_servers'] = 1; + if($params['pm_max_spare_servers'] == '') $params['pm_max_spare_servers'] = 1; + + $affected_rows = $this->updateQuery('../sites/form/web_vhost_aliasdomain.tform.php', $client_id, $primary_id, $params, 'sites:web_vhost_aliasdomain:on_after_insert'); + return $affected_rows; + } + + //* Delete a record + public function sites_web_vhost_aliasdomain_delete($session_id, $primary_id) + { + if(!$this->checkPerm($session_id, 'sites_web_aliasdomain_delete')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $affected_rows = $this->deleteQuery('../sites/form/web_vhost_aliasdomain.tform.php', $primary_id); + return $affected_rows; + } + + // ---------------------------------------------------------------------------------------------------------- + //* Get record details public function sites_web_vhost_subdomain_get($session_id, $primary_id) { diff --git a/interface/lib/plugins/sites_web_vhost_aliasdomain_plugin.inc.php b/interface/lib/plugins/sites_web_vhost_aliasdomain_plugin.inc.php new file mode 100644 index 000000000..c94db2a27 --- /dev/null +++ b/interface/lib/plugins/sites_web_vhost_aliasdomain_plugin.inc.php @@ -0,0 +1,68 @@ +<?php +/** + * sites_web_vhost_aliasdomain_plugin plugin + * + * @author Marius Cramer <m.cramer@pixcept.de> pixcept KG 2012, copied and adapted from web_domain plugin by: + * @author Julio Montoya <gugli100@gmail.com> BeezNest 2010 + */ + + +class sites_web_vhost_aliasdomain_plugin { + + var $plugin_name = 'sites_web_vhost_aliasdomain_plugin'; + var $class_name = 'sites_web_vhost_aliasdomain_plugin'; + + // TODO: This function is a duplicate from the one in interface/web/sites/web_vhost_aliasdomain_edit.php + // There should be a single "token replacement" function to be called from modules and + // from the main code. + // Returna a "3/2/1" path hash from a numeric id '123' + function id_hash($id, $levels) { + $hash = "" . $id % 10 ; + $id /= 10 ; + $levels -- ; + while ( $levels > 0 ) { + $hash .= "/" . $id % 10 ; + $id /= 10 ; + $levels-- ; + } + return $hash; + } + + /* + This function is called when the plugin is loaded + */ + function onLoad() { + global $app; + //Register for the events + // both event call the same function as the things to do do not differ here + $app->plugin->registerEvent('sites:web_vhost_aliasdomain:on_after_insert', 'sites_web_vhost_aliasdomain_plugin', 'sites_web_vhost_aliasdomain_edit'); + $app->plugin->registerEvent('sites:web_vhost_aliasdomain:on_after_update', 'sites_web_vhost_aliasdomain_plugin', 'sites_web_vhost_aliasdomain_edit'); + } + + /* + Function to create the sites_web_vhost_aliasdomain rule and insert it into the custom rules + */ + function sites_web_vhost_aliasdomain_edit($event_name, $page_form) { + global $app, $conf; + + // Get configuration for the web system + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($app->functions->intval($page_form->dataRecord['server_id']), 'web'); + + $parent_domain = $app->db->queryOneRecord("SELECT * FROM `web_domain` WHERE `domain_id` = '" . $app->functions->intval($page_form->dataRecord['parent_domain_id']) . "'"); + + // Set the values for document_root, system_user and system_group + $system_user = $app->db->quote($parent_domain['system_user']); + $system_group = $app->db->quote($parent_domain['system_group']); + $document_root = $app->db->quote($parent_domain['document_root']); + $php_open_basedir = str_replace("[website_path]/web", $document_root.'/'.$page_form->dataRecord['web_folder'], $web_config["php_open_basedir"]); + $php_open_basedir = str_replace("[website_domain]/web", $page_form->dataRecord['domain'].'/'.$page_form->dataRecord['web_folder'], $php_open_basedir); + $php_open_basedir = str_replace("[website_path]", $document_root, $php_open_basedir); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $page_form->dataRecord['domain'], $php_open_basedir)); + $htaccess_allow_override = $app->db->quote($parent_domain['allow_override']); + + $sql = "UPDATE web_domain SET sys_groupid = ".$app->functions->intval($parent_domain['sys_groupid']).",system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$page_form->id; + $app->db->query($sql); + } + +} diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 6c0e8da28..eaa0f6f27 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -154,6 +154,12 @@ $form["tabs"]['sites'] = array ( 'default' => 'n', 'value' => array(0 => 'n', 1 => 'y') ), + 'vhost_aliasdomains' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), 'client_username_web_check_disabled' => array ( 'datatype' => 'VARCHAR', 'formtype' => 'CHECKBOX', diff --git a/interface/web/admin/lib/lang/ar_system_config.lng b/interface/web/admin/lib/lang/ar_system_config.lng index a534fa742..e5a4663f1 100644 --- a/interface/web/admin/lib/lang/ar_system_config.lng +++ b/interface/web/admin/lib/lang/ar_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/bg_system_config.lng b/interface/web/admin/lib/lang/bg_system_config.lng index 282ab42c2..8d888d551 100644 --- a/interface/web/admin/lib/lang/bg_system_config.lng +++ b/interface/web/admin/lib/lang/bg_system_config.lng @@ -41,6 +41,8 @@ $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; $wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create Aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/br_system_config.lng b/interface/web/admin/lib/lang/br_system_config.lng index 544fcc19d..fd3be081d 100644 --- a/interface/web/admin/lib/lang/br_system_config.lng +++ b/interface/web/admin/lib/lang/br_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/cz_system_config.lng b/interface/web/admin/lib/lang/cz_system_config.lng index 40804371e..aa5960d83 100644 --- a/interface/web/admin/lib/lang/cz_system_config.lng +++ b/interface/web/admin/lib/lang/cz_system_config.lng @@ -41,6 +41,8 @@ $wb['tab_change_warning_txt'] = 'Záložka zmÄ›na varovánÃ'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; $wb['vhost_subdomains_txt'] = 'VytvoÅ™it subdomény jako webové stránky'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasbdomains_txt'] = 'VytvoÅ™it aliasdomény jako webové stránky'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'phpmyadmin neplatné URL'; $wb['use_combobox_txt'] = 'Použità jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Použità indikátoru zatÞenÃ'; diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 1c9f17db4..164903892 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -11,6 +11,8 @@ $wb['shelluser_prefix_txt'] = 'Shell Benutzer Präfix'; $wb['ftpuser_prefix_txt'] = 'FTP Benutzer Präfix'; $wb['vhost_subdomains_txt'] = 'Subdomains als Webseite anlegen'; $wb['vhost_subdomains_note_txt'] = 'Diese Einstellung kann nicht wieder deaktiviert werden, wenn Vhost Subdomains im System vorhanden sind!'; +$wb['vhost_aliasbdomains_txt'] = 'Subdomains als Webseite anlegen'; +$wb['vhost_aliasdomains_note_txt'] = 'Diese Einstellung kann nicht wieder deaktiviert werden, wenn Vhost Aliasdomains im System vorhanden sind!'; $wb['dbname_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbank Namen Präfix.'; $wb['dbuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbank Benutzer Präfix.'; $wb['ftpuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in FTP Benutzer Präfix.'; diff --git a/interface/web/admin/lib/lang/el_system_config.lng b/interface/web/admin/lib/lang/el_system_config.lng index 1660f18c6..3cbadd111 100644 --- a/interface/web/admin/lib/lang/el_system_config.lng +++ b/interface/web/admin/lib/lang/el_system_config.lng @@ -41,6 +41,8 @@ $wb['tab_change_warning_txt'] = 'Î Ïοειδοποίηση αλλαγής κα $wb['tab_change_warning_note_txt'] = 'Εμφάνιση μιας Ï€Ïοειδοποίησης κατα την αλλαγή καÏÏ„Îλας σε φόÏμες επεξεÏγασίας που Îχουν Ï„Ïοποποιηθεί από τον χÏήστη.'; $wb['vhost_subdomains_txt'] = 'ΔημιουÏγία Subdomains ως web site'; $wb['vhost_subdomains_note_txt'] = 'Δεν μποÏεί να γίνει απενεÏγοποίηση όσο υπάÏχουν vhost subdomains στο σÏστημα!'; +$wb['vhost_aliasdomains_txt'] = 'ΔημιουÏγία aliasdomains ως web site'; +$wb['vhost_aliasdomains_note_txt'] = 'Δεν μποÏεί να γίνει απενεÏγοποίηση όσο υπάÏχουν vhost aliasdomains στο σÏστημα!'; $wb['phpmyadmin_url_error_regex'] = 'Μη ÎγκυÏο URL phpmyadmin'; $wb['use_combobox_txt'] = 'ΧÏήση jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'ΧÏήση Load Indicator (ενδεικτή φόÏτωσης)'; diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 755efd966..1c045cf27 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -13,8 +13,10 @@ $wb["dbuser_prefix_txt"] = 'Database user prefix'; $wb["shelluser_prefix_txt"] = 'Shell user prefix'; $wb["webdavuser_prefix_txt"] = 'Webdav user prefix'; $wb["ftpuser_prefix_txt"] = 'FTP user prefix'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb["dbname_prefix_error_regex"] = 'Char not allowed in database name prefix.'; $wb["dbuser_prefix_error_regex"] = 'Char not allowed in database user prefix.'; $wb["ftpuser_prefix_error_regex"] = 'Char not allowed in ftp user prefix.'; diff --git a/interface/web/admin/lib/lang/es_system_config.lng b/interface/web/admin/lib/lang/es_system_config.lng index a4d878cad..293eceacb 100644 --- a/interface/web/admin/lib/lang/es_system_config.lng +++ b/interface/web/admin/lib/lang/es_system_config.lng @@ -32,8 +32,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['maintenance_mode_txt'] = 'Maintenance Mode'; $wb['smtp_enabled_txt'] = 'Use SMTP to send system mails'; $wb['smtp_host_txt'] = 'SMTP host'; diff --git a/interface/web/admin/lib/lang/fi_system_config.lng b/interface/web/admin/lib/lang/fi_system_config.lng index 75658ee44..a6021921d 100755 --- a/interface/web/admin/lib/lang/fi_system_config.lng +++ b/interface/web/admin/lib/lang/fi_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/fr_system_config.lng b/interface/web/admin/lib/lang/fr_system_config.lng index 262bbe329..cd4c16b7f 100644 --- a/interface/web/admin/lib/lang/fr_system_config.lng +++ b/interface/web/admin/lib/lang/fr_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/hr_system_config.lng b/interface/web/admin/lib/lang/hr_system_config.lng index 63f816b79..e81554a7b 100644 --- a/interface/web/admin/lib/lang/hr_system_config.lng +++ b/interface/web/admin/lib/lang/hr_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/hu_system_config.lng b/interface/web/admin/lib/lang/hu_system_config.lng index 500828481..4380d9dcc 100644 --- a/interface/web/admin/lib/lang/hu_system_config.lng +++ b/interface/web/admin/lib/lang/hu_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/id_system_config.lng b/interface/web/admin/lib/lang/id_system_config.lng index 81997b708..b4c5133ee 100644 --- a/interface/web/admin/lib/lang/id_system_config.lng +++ b/interface/web/admin/lib/lang/id_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/it_system_config.lng b/interface/web/admin/lib/lang/it_system_config.lng index bc26da23e..8d2ceb031 100644 --- a/interface/web/admin/lib/lang/it_system_config.lng +++ b/interface/web/admin/lib/lang/it_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/ja_system_config.lng b/interface/web/admin/lib/lang/ja_system_config.lng index df99e6e62..77fb47b61 100644 --- a/interface/web/admin/lib/lang/ja_system_config.lng +++ b/interface/web/admin/lib/lang/ja_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/nl_system_config.lng b/interface/web/admin/lib/lang/nl_system_config.lng index 766ead2ee..57464742f 100644 --- a/interface/web/admin/lib/lang/nl_system_config.lng +++ b/interface/web/admin/lib/lang/nl_system_config.lng @@ -42,8 +42,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/pl_system_config.lng b/interface/web/admin/lib/lang/pl_system_config.lng index a3cd3c6bd..a30fd04d2 100644 --- a/interface/web/admin/lib/lang/pl_system_config.lng +++ b/interface/web/admin/lib/lang/pl_system_config.lng @@ -34,6 +34,8 @@ $wb['tab_change_warning_txt'] = 'Ostrzegaj przy zmianie zakÅ‚adki'; $wb['tab_change_warning_note_txt'] = 'Pokaż ostrzeżenie przy zmianie zakÅ‚adki jeżeli zostaÅ‚y zmienione dane przez użytkownika.'; $wb['vhost_subdomains_txt'] = 'Twórz subdomeny jako strony web'; $wb['vhost_subdomains_note_txt'] = 'Nie możesz wyÅ‚Ä…czyć tego tak dÅ‚ugo jak istniejÄ… w systemie vhosty subdomen.'; +$wb['vhost_aliasdomains_txt'] = 'Twórz aliasdomeny jako strony web'; +$wb['vhost_aliasdomains_note_txt'] = 'Nie możesz wyÅ‚Ä…czyć tego tak dÅ‚ugo jak istniejÄ… w systemie vhosty aliasdomen.'; $wb['maintenance_mode_txt'] = 'Tryb serwisowy'; $wb['smtp_enabled_txt'] = 'Używaj SMTP do wysyÅ‚ania powiadomieÅ„ systemowych'; $wb['smtp_host_txt'] = 'Host SMTP'; diff --git a/interface/web/admin/lib/lang/pt_system_config.lng b/interface/web/admin/lib/lang/pt_system_config.lng index 49bd93e9c..efaf567b2 100644 --- a/interface/web/admin/lib/lang/pt_system_config.lng +++ b/interface/web/admin/lib/lang/pt_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/ro_system_config.lng b/interface/web/admin/lib/lang/ro_system_config.lng index e2b701afc..c688f608b 100644 --- a/interface/web/admin/lib/lang/ro_system_config.lng +++ b/interface/web/admin/lib/lang/ro_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/ru_system_config.lng b/interface/web/admin/lib/lang/ru_system_config.lng index 612fe5053..e0926dd71 100644 --- a/interface/web/admin/lib/lang/ru_system_config.lng +++ b/interface/web/admin/lib/lang/ru_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/se_system_config.lng b/interface/web/admin/lib/lang/se_system_config.lng index e2b701afc..c688f608b 100644 --- a/interface/web/admin/lib/lang/se_system_config.lng +++ b/interface/web/admin/lib/lang/se_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/sk_system_config.lng b/interface/web/admin/lib/lang/sk_system_config.lng index 1340eee8b..bbebf4c40 100644 --- a/interface/web/admin/lib/lang/sk_system_config.lng +++ b/interface/web/admin/lib/lang/sk_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/lib/lang/tr_system_config.lng b/interface/web/admin/lib/lang/tr_system_config.lng index 8a5fd3a86..0acf8832c 100644 --- a/interface/web/admin/lib/lang/tr_system_config.lng +++ b/interface/web/admin/lib/lang/tr_system_config.lng @@ -39,8 +39,10 @@ $wb['smtp_missing_admin_mail_txt'] = 'Please enter the admin name and admin mail $wb['tab_change_discard_txt'] = 'Discard changes on tab change'; $wb['tab_change_warning_txt'] = 'Tab change warning'; $wb['tab_change_warning_note_txt'] = 'Show a warning on tab change in edit forms if any data has been altered by the user.'; -$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site'; +$wb['vhost_subdomains_txt'] = 'Create subdomains as web site'; $wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!'; +$wb['vhost_aliasdomains_txt'] = 'Create aliasdomains as web site'; +$wb['vhost_aliasdomains_note_txt'] = 'You cannot disable this as long as vhost aliasdomains exist in the system!'; $wb['phpmyadmin_url_error_regex'] = 'Invalid phpmyadmin URL'; $wb['use_combobox_txt'] = 'Use jQuery UI Combobox'; $wb['use_loadindicator_txt'] = 'Use Load Indicator'; diff --git a/interface/web/admin/system_config_edit.php b/interface/web/admin/system_config_edit.php index 35140b459..9c69cfa40 100644 --- a/interface/web/admin/system_config_edit.php +++ b/interface/web/admin/system_config_edit.php @@ -147,6 +147,12 @@ class page_action extends tform_actions { if($check['cnt'] > 0) { $new_config['vhost_subdomains'] = 'y'; } + } elseif($section == 'sites' && $new_config['vhost_aliasdomains'] != 'y' && $server_config_array['vhost_aliasdomains'] == 'y') { + // check for existing vhost aliasdomains, if found the mode cannot be disabled + $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostalias'"); + if($check['cnt'] > 0) { + $new_config['vhost_aliasdomains'] = 'y'; + } } elseif($section == 'mail') { if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['mail']['smtp_pass']; } elseif($section == 'misc' && $new_config['session_timeout'] != $server_config_array['misc']['session_timeout']) { diff --git a/interface/web/admin/system_config_edit.php.bak b/interface/web/admin/system_config_edit.php.bak new file mode 100644 index 000000000..35140b459 --- /dev/null +++ b/interface/web/admin/system_config_edit.php.bak @@ -0,0 +1,205 @@ +<?php +/* +Copyright (c) 2008-2010, 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/system_config.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('admin'); + +// Loading classes +$app->uses('tpl,tform,tform_actions'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + //var $_js_changed = false; + + function onShowEdit() { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + + if($app->tform->errorMessage == '') { + $app->uses('ini_parser,getconf'); + + $section = $this->active_tab; + $server_id = $this->id; + + $this->dataRecord = $app->getconf->get_global_config($section); + if ($section == 'domains'){ + if (isset($this->dataRecord['use_domain_module'])){ + $_SESSION['use_domain_module_old_value'] = $this->dataRecord['use_domain_module']; + } + } + } + + $record = $app->tform->getHTML($this->dataRecord, $this->active_tab, 'EDIT'); + + $record['warning'] = $app->tform->lng('warning'); + $record['id'] = $this->id; + $app->tpl->setVar($record); + } + + function onShowEnd() { + global $app, $conf; + + // available dashlets + $available_dashlets_txt = ''; + $handle = @opendir(ISPC_WEB_PATH.'/dashboard/dashlets'); + while ($file = @readdir($handle)) { + if ($file != '.' && $file != '..' && !is_dir($file)) { + $available_dashlets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.substr($file, 0, -4).']<pre class="addPlaceholderContent" style="display:none;">['.substr($file, 0, -4).'],</pre></a> '; + } + } + + if($available_dashlets_txt == '') $available_dashlets_txt = '------'; + $app->tpl->setVar("available_dashlets_txt", $available_dashlets_txt); + + parent::onShowEnd(); + } + + function onSubmit() { + global $app; + + $app->uses('ini_parser,getconf'); + + $section = $app->tform->getCurrentTab(); + + $server_config_array = $app->getconf->get_global_config(); + $new_config = $app->tform->encode($this->dataRecord, $section); + if($section == 'mail') { + if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['smtp_pass']; + if($new_config['smtp_enabled'] == 'y' && ($new_config['admin_mail'] == '' || $new_config['admin_name'] == '')) { + $app->tform->errorMessage .= $app->tform->lng("smtp_missing_admin_mail_txt"); + } + } + + parent::onSubmit(); + } + + function onUpdateSave($sql) { + global $app, $conf; + + if($_SESSION["s"]["user"]["typ"] != 'admin') die('This function needs admin priveliges'); + $app->uses('ini_parser,getconf'); + + $section = $app->tform->getCurrentTab(); + + $server_config_array = $app->getconf->get_global_config(); + + foreach($app->tform->formDef['tabs'][$section]['fields'] as $key => $field) { + if ($field['formtype'] == 'CHECKBOX') { + if($this->dataRecord[$key] == '') { + // if a checkbox is not set, we set it to the unchecked value + $this->dataRecord[$key] = $field['value'][0]; + } + } + } + + /* + if((isset($this->dataRecord['use_loadindicator']) && $this->dataRecord['use_loadindicator'] != $server_config_array[$section]['use_loadindicator']) || (isset($this->dataRecord['use_combobox']) && $this->dataRecord['use_combobox'] != $server_config_array[$section]['use_combobox'])){ + $this->_js_changed = true; + } + */ + + $new_config = $app->tform->encode($this->dataRecord, $section); + if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['sites']['vhost_subdomains'] == 'y') { + // check for existing vhost subdomains, if found the mode cannot be disabled + $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostsubdomain'"); + if($check['cnt'] > 0) { + $new_config['vhost_subdomains'] = 'y'; + } + } elseif($section == 'mail') { + if($new_config['smtp_pass'] == '') $new_config['smtp_pass'] = $server_config_array['mail']['smtp_pass']; + } elseif($section == 'misc' && $new_config['session_timeout'] != $server_config_array['misc']['session_timeout']) { + $app->db->query("DELETE FROM sys_config WHERE `config_id` = 2 AND `group` = 'interface' AND `name` = 'session_timeout'"); + $app->db->query("INSERT INTO sys_config (`config_id`, `group`, `name`, `value`) VALUES (2, 'interface', 'session_timeout', '" . intval($new_config['session_timeout']) . "')"); + } + $server_config_array[$section] = $new_config; + $server_config_str = $app->ini_parser->get_ini_string($server_config_array); + + //$sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1"; + //if($conf['demo_mode'] != true) $app->db->query($sql); + if($conf['demo_mode'] != true) $app->db->datalogUpdate('sys_ini', "config = '".$app->db->quote($server_config_str)."'", 'sysini_id', 1); + + /* + * If we should use the domain-module, we have to insert all existing domains into the table + * (only the first time!) + */ + if (($section == 'domains') && + ($_SESSION['use_domain_module_old_value'] == '') && + ($server_config_array['domains']['use_domain_module'] == 'y')){ + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM mail_domain"; + $app->db->query($sql); + $sql = "REPLACE INTO domain (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain ) " . + "SELECT sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, domain " . + "FROM web_domain WHERE type NOT IN ('subdomain','vhostsubdomain')"; + $app->db->query($sql); + } + + // Maintenance mode + if($server_config_array['misc']['maintenance_mode'] == 'y'){ + //print_r($_SESSION); + //echo $_SESSION['s']['id']; + $app->db->query("DELETE FROM sys_session WHERE session_id != '".$app->db->quote($_SESSION['s']['id'])."'"); + } + } + + /* + function onAfterUpdate() { + if($this->_js_changed == true) { + // not the best way, but it works + header('Content-Type: text/html'); + print '<script type="text/javascript">document.location.reload(true);</script>'; + exit; + } + } + */ + +} + +$app->tform_actions = new page_action; +$app->tform_actions->onLoad(); + + +?> diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 65f37b782..f98493ee7 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -45,6 +45,12 @@ {tmpl_var name='vhost_subdomains'} {tmpl_var name='vhost_subdomains_note_txt'} </div> </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='vhost_aliasdomains_txt'}</p> + <div class="multiField"> + {tmpl_var name='vhost_aliasdomains'} {tmpl_var name='vhost_aliasdomains_note_txt'} + </div> + </div> <div class="ctrlHolder"> <p class="label">{tmpl_var name='client_username_web_check_disabled_txt'}</p> <div class="multiField"> diff --git a/interface/web/dashboard/ajax_get_json.php b/interface/web/dashboard/ajax_get_json.php index 48294188d..2bc21d4e0 100644 --- a/interface/web/dashboard/ajax_get_json.php +++ b/interface/web/dashboard/ajax_get_json.php @@ -66,6 +66,9 @@ if($type == 'globalsearch'){ // vhostsubdomains $result[] = _search('sites', 'web_vhost_subdomain', "AND type = 'vhostsubdomain'"); + // vhostaliasdomains + $result[] = _search('sites', 'web_vhost_aliasdomain', "AND type = 'vhostalias'"); + // FTP users $result[] = _search('sites', 'ftp_user'); diff --git a/interface/web/dashboard/ajax_get_json.php.bak b/interface/web/dashboard/ajax_get_json.php.bak new file mode 100644 index 000000000..48294188d --- /dev/null +++ b/interface/web/dashboard/ajax_get_json.php.bak @@ -0,0 +1,238 @@ +<?php + +/* +Copyright (c) 2012, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +//* Check permissions for module +$app->auth->check_module_permissions('dashboard'); + +$app->uses('tform'); + +$type = $_GET["type"]; + +//if($_SESSION["s"]["user"]["typ"] == 'admin') { + + +if($type == 'globalsearch'){ + $q = $app->db->quote(trim($_GET["q"])); + $authsql = " AND ".$app->tform->getAuthSQL('r'); + $modules = explode(',', $_SESSION['s']['user']['modules']); + + $result = array(); + + // clients + $result[] = _search('client', 'client', "AND limit_client = 0"); + + // resellers + $result[] = _search('client', 'reseller', "AND limit_client != 0"); + + // web sites + $result[] = _search('sites', 'web_domain', "AND type = 'vhost'"); + + // subdomains + $result[] = _search('sites', 'web_subdomain', "AND type = 'subdomain'"); + + // web site aliases + $result[] = _search('sites', 'web_aliasdomain', "AND type = 'alias'"); + + // vhostsubdomains + $result[] = _search('sites', 'web_vhost_subdomain', "AND type = 'vhostsubdomain'"); + + // FTP users + $result[] = _search('sites', 'ftp_user'); + + // shell users + $result[] = _search('sites', 'shell_user'); + + // databases + /* + $result_databases = array('cheader' => array(), 'cdata' => array()); + if(in_array('sites', $modules)){ + $sql = "SELECT * FROM web_database WHERE database_name LIKE '%".$q."%' OR database_user LIKE '%".$q."%' OR remote_ips LIKE '%".$q."%'".$authsql." ORDER BY database_name"; + $results = $app->db->queryAllRecords($sql); + + if(is_array($results) && !empty($results)){ + $result_databases['cheader'] = array('title' => 'Databases', + 'total' => count($results), + 'limit' => count($results) + ); + foreach($results as $result){ + $description = 'Database User: '.$result['database_user'].' - Remote IPs: '.$result['remote_ips']; + $result_databases['cdata'][] = array('title' => $result['database_name'], + 'description' => $description, + 'onclick' => 'capp(\'sites\',\'sites/database_edit.php?id='.$result['database_id'].'\');', + 'fill_text' => strtolower($result['database_name']) + ); + } + } + } + */ + $result[] = _search('sites', 'database'); + + // database users + $result[] = _search('sites', 'database_user'); + + // email domains + $result[] = _search('mail', 'mail_domain'); + + // email alias domains + $result[] = _search('mail', 'mail_aliasdomain', "AND type = 'aliasdomain'"); + + // email mailboxes + $result[] = _search('mail', 'mail_user'); + + // email aliases + $result[] = _search('mail', 'mail_alias', "AND type = 'alias'"); + + // email forwards + $result[] = _search('mail', 'mail_forward', "AND type = 'forward'"); + + // email catchalls + $result[] = _search('mail', 'mail_domain_catchall', "AND type = 'catchall'"); + + // email transports + $result[] = _search('mail', 'mail_transport'); + + // mailinglists + $result[] = _search('mail', 'mail_mailinglist'); + + // getmails + $result[] = _search('mail', 'mail_get'); + + // dns zones + $result[] = _search('dns', 'dns_soa'); + + // secondary dns zones + $result[] = _search('dns', 'dns_slave'); + + // virtual machines + $result[] = _search('vm', 'openvz_vm'); + + // virtual machines os templates + $result[] = _search('vm', 'openvz_ostemplate'); + + // virtual machines vm templates + $result[] = _search('vm', 'openvz_template'); + + // virtual machines ip addresses + $result[] = _search('vm', 'openvz_ip'); + + // directive snippets + $result[] = _search('admin', 'directive_snippets'); + + $json = $app->functions->json_encode($result); +} + +//} + +function _search($module, $section, $additional_sql = ''){ + global $app, $q, $authsql, $modules; + + $result_array = array('cheader' => array(), 'cdata' => array()); + if(in_array($module, $modules)){ + $search_fields = array(); + $desc_fields = array(); + if(is_file('../'.$module.'/form/'.$section.'.tform.php')){ + include_once '../'.$module.'/form/'.$section.'.tform.php'; + + $category_title = $form["title"]; + $form_file = $form["action"]; + $db_table = $form["db_table"]; + $db_table_idx = $form["db_table_idx"]; + $order_by = $db_table_idx; + + if(is_array($form["tabs"]) && !empty($form["tabs"])){ + foreach($form["tabs"] as $tab){ + if(is_array($tab['fields']) && !empty($tab['fields'])){ + foreach($tab['fields'] as $key => $val){ + if(isset($val['searchable']) && $val['searchable'] > 0){ + $search_fields[] = $key." LIKE '%".$q."%'"; + if($val['searchable'] == 1){ + $order_by = $key; + $title_key = $key; + } + if($val['searchable'] == 2){ + $desc_fields[] = $key; + } + } + } + } + } + } + } + unset($form); + + $where_clause = ''; + if(!empty($search_fields)){ + $where_clause = implode(' OR ', $search_fields); + } else { + // valid SQL query which returns an empty result set + $where_clause = '1 = 0'; + } + if($where_clause != '') $where_clause = '('.$where_clause.')'; + if($additional_sql != '') $where_clause .= ' '.$additional_sql.' '; + $order_clause = ''; + if($order_by != '') $order_clause = ' ORDER BY '.$order_by; + + $sql = "SELECT * FROM ".$db_table." WHERE ".$where_clause.$authsql.$order_clause." LIMIT 0,10"; + $results = $app->db->queryAllRecords($sql); + + if(is_array($results) && !empty($results)){ + $lng_file = '../'.$module.'/lib/lang/'.$_SESSION['s']['language'].'_'.$section.'.lng'; + if(is_file($lng_file)) include $lng_file; + $result_array['cheader'] = array('title' => $category_title, + 'total' => count($results), + 'limit' => count($results) + ); + foreach($results as $result){ + $description = ''; + if(!empty($desc_fields)){ + $desc_items = array(); + foreach($desc_fields as $desc_field){ + if($result[$desc_field] != '') $desc_items[] = $wb[$desc_field.'_txt'].': '.$result[$desc_field]; + } + if(!empty($desc_items)) $description = implode(' - ', $desc_items); + } + + $result_array['cdata'][] = array('title' => $wb[$title_key.'_txt'].': '.$result[$title_key], + 'description' => $description, + 'onclick' => "capp('".$module."','".$module."/".$form_file."?id=".$result[$db_table_idx]."');", + 'fill_text' => strtolower($result[$title_key]) + ); + } + } + } + return $result_array; +} + +header('Content-type: application/json'); +echo $json; +?> diff --git a/interface/web/dashboard/dashlets/limits.php b/interface/web/dashboard/dashlets/limits.php index b361f6e9b..5ffa34627 100644 --- a/interface/web/dashboard/dashlets/limits.php +++ b/interface/web/dashboard/dashlets/limits.php @@ -71,7 +71,7 @@ class dashlet_limits { $limits[] = array('field' => 'limit_web_aliasdomain', 'db_table' => 'web_domain', - 'db_where' => "type = 'alias'"); + 'db_where' => "(type = 'alias' OR type = 'vhostalias'"); $limits[] = array('field' => 'limit_ftp_user', 'db_table' => 'ftp_user', diff --git a/interface/web/dashboard/dashlets/limits.php.bak b/interface/web/dashboard/dashlets/limits.php.bak new file mode 100644 index 000000000..b361f6e9b --- /dev/null +++ b/interface/web/dashboard/dashlets/limits.php.bak @@ -0,0 +1,177 @@ +<?php + +class dashlet_limits { + + function show() { + global $app, $conf; + + $limits = array(); + + /* Limits to be shown*/ + + $limits[] = array('field' => 'limit_maildomain', + 'db_table' => 'mail_domain', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailmailinglist', + 'db_table' => 'mail_mailinglist', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailbox', + 'db_table' => 'mail_user', + 'db_where' => ''); + + $limits[] = array('field' => 'limit_mailalias', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'alias'"); + + $limits[] = array('field' => 'limit_mailaliasdomain', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'aliasdomain'"); + + $limits[] = array('field' => 'limit_mailforward', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'forward'"); + + $limits[] = array('field' => 'limit_mailcatchall', + 'db_table' => 'mail_forwarding', + 'db_where' => "type = 'catchall'"); + + $limits[] = array('field' => 'limit_mailrouting', + 'db_table' => 'mail_transport', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_mailfilter', + 'db_table' => 'mail_user_filter', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_fetchmail', + 'db_table' => 'mail_get', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_wblist', + 'db_table' => 'spamfilter_wblist', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_user', + 'db_table' => 'spamfilter_users', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_spamfilter_policy', + 'db_table' => 'spamfilter_policy', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_web_domain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'vhost'"); + + $limits[] = array('field' => 'limit_web_subdomain', + 'db_table' => 'web_domain', + 'db_where' => "(type = 'subdomain' OR type = 'vhostsubdomain')"); + + $limits[] = array('field' => 'limit_web_aliasdomain', + 'db_table' => 'web_domain', + 'db_where' => "type = 'alias'"); + + $limits[] = array('field' => 'limit_ftp_user', + 'db_table' => 'ftp_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_shell_user', + 'db_table' => 'shell_user', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_dns_zone', + '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' => ""); + + $limits[] = array('field' => 'limit_database', + 'db_table' => 'web_database', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_cron', + 'db_table' => 'cron', + 'db_where' => ""); + + $limits[] = array('field' => 'limit_client', + 'db_table' => 'client', + 'db_where' => ""); + + + + + //* Loading Template + $app->uses('tpl,tform'); + + $tpl = new tpl; + $tpl->newTemplate("dashlets/templates/limits.htm"); + + $wb = array(); + $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_dashlet_limits.lng'; + if(is_file($lng_file)) include $lng_file; + $tpl->setVar($wb); + + if($app->auth->is_admin()) { + $user_is_admin = true; + } else { + $user_is_admin = false; + } + $tpl->setVar('is_admin', $user_is_admin); + + if($user_is_admin == false) { + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT * FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + } + + $rows = array(); + foreach($limits as $limit) { + $field = $limit['field']; + if($user_is_admin) { + $value = $wb['unlimited_txt']; + } else { + $value = $client[$field]; + } + if($value != 0 || $value == $wb['unlimited_txt']) { + $value_formatted = ($value == '-1')?$wb['unlimited_txt']:$value; + $rows[] = array('field' => $field, + 'field_txt' => $wb[$field.'_txt'], + 'value' => $value_formatted, + 'usage' => $this->_get_limit_usage($limit)); + } + } + $tpl->setLoop('rows', $rows); + + + return $tpl->grab(); + + } + + function _get_limit_usage($limit) { + global $app; + + $sql = "SELECT count(sys_userid) as number FROM ".$app->db->quote($limit['db_table'])." WHERE "; + if($limit['db_where'] != '') $sql .= $limit['db_where']." AND "; + $sql .= $app->tform->getAuthSQL('r'); + $rec = $app->db->queryOneRecord($sql); + return $rec['number']; + + } + +} + + + + + + + + +?> diff --git a/interface/web/data.sql b/interface/web/data.sql index 67234bd43..0c15827b2 100644 --- a/interface/web/data.sql +++ b/interface/web/data.sql @@ -322,6 +322,57 @@ INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ( INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_subdomain_edit.php', 'nginx_directives', '0', '', ''); INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_subdomain_edit.php', 'proxy_directives', '0', '', ''); INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_subdomain_edit.php', 'php_fpm_use_socket', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'domain', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'web_folder', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'traffic_quota', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'parent_domain_id', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'sel_domain', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'parent_domain_id', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'aliasdomain', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'php', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'fastcgi_php_version', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'cgi', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssi', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'perl', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ruby', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'python', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'suexec', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'errordocs', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'active', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'redirect_path', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'redirect_type', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'seo_redirect', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_state', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_locality', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_organisation', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_organisation_unit', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_country', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_domain', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_action', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_key', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_request', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_cert', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'ssl_bundle', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'stats_password', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'repeat_password', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'stats_type', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'backup_interval', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'backup_copies', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'allow_override', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_max_children', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_start_servers', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_min_spare_servers', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_max_spare_servers', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_process_idle_timeout', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm_max_requests', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'php_open_basedir', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'pm', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'custom_php_ini', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'apache_directives', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'nginx_directives', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'proxy_directives', '0', '', ''); +INSERT IGNORE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_vhost_aliasdomain_edit.php', 'php_fpm_use_socket', '0', '', ''); REPLACE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_folder_edit.php', 'path', '0', '', 'Welches Verzeichnis von Ihrer Webseite möchten Sie mit einem Passwort schützen?'); REPLACE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_folder_edit.php', 'parent_domain_id', '0', '', 'Zu welcher Webseite soll ein Passwortschutz angelegt werden?'); REPLACE INTO `help_tooltips` (`url`, `field`, `demo`, `en`, `de`) VALUES ('/sites/web_folder_edit.php', 'active', '0', '', 'Ist diese Option gesetzt, ist der Passwortschutz aktiv.'); diff --git a/interface/web/sites/aps_install_package.php b/interface/web/sites/aps_install_package.php index 8ba04efd2..2e2e7bc76 100644 --- a/interface/web/sites/aps_install_package.php +++ b/interface/web/sites/aps_install_package.php @@ -87,7 +87,7 @@ $domains = array(); $domain_for_user = ''; if(!$adminflag) $domain_for_user = "AND (sys_userid = '".$app->db->quote($_SESSION['s']['user']['userid'])."' OR sys_groupid = '".$app->db->quote($_SESSION['s']['user']['userid'])."' )"; -$domains_assoc = $app->db->queryAllRecords("SELECT domain FROM web_domain WHERE document_root != '' AND (type = 'vhost' OR type = 'vhostsubdomain') AND active = 'y' ".$domain_for_user." ORDER BY domain;"); +$domains_assoc = $app->db->queryAllRecords("SELECT domain FROM web_domain WHERE document_root != '' AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y' ".$domain_for_user." ORDER BY domain;"); if(!empty($domains_assoc)) foreach($domains_assoc as $domain) $domains[] = $domain['domain']; // If data has been submitted, validate it diff --git a/interface/web/sites/aps_install_package.php.bak b/interface/web/sites/aps_install_package.php.bak new file mode 100644 index 000000000..8ba04efd2 --- /dev/null +++ b/interface/web/sites/aps_install_package.php.bak @@ -0,0 +1,211 @@ +<?php +/* +Copyright (c) 2012, ISPConfig UG +Contributors: web wack creations, http://www.web-wack.at +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; +//require_once('classes/class.guicontroller.php'); +$app->load('aps_guicontroller'); + +// Check the module permissions +$app->auth->check_module_permissions('sites'); + +// Load needed classes +$app->uses('tpl,tform'); +$app->tpl->newTemplate("form.tpl.htm"); +$app->tpl->setInclude('content_tpl', 'templates/aps_install_package.htm'); + +// Load the language file +$lngfile = 'lib/lang/'.$_SESSION['s']['language'].'_aps.lng'; +require_once $lngfile; +$app->tpl->setVar($wb); +$app->load_language_file('web/sites/'.$lngfile); + +// we will check only users, not admins +if($_SESSION["s"]["user"]["typ"] == 'user') { + $app->tform->formDef['db_table_idx'] = 'client_id'; + $app->tform->formDef['db_table'] = 'client'; + if(!$app->tform->checkClientLimit('limit_aps')) { + $app->error($app->lng("limit_aps_txt")); + } + if(!$app->tform->checkResellerLimit('limit_aps')) { + $app->error('Reseller: '.$wb["limit_aps_txt"]); + } +} + + +$adminflag = ($_SESSION['s']['user']['typ'] == 'admin') ? true : false; +$gui = new ApsGUIController($app); +$pkg_id = (isset($_GET['id'])) ? $app->db->quote($_GET['id']) : ''; + +// Check if a newer version is available for the current package +// Note: It's intended that here is no strict ID check (see below) +if(isset($pkg_id)) +{ + $newest_pkg_id = $gui->getNewestPackageID($pkg_id); + if($newest_pkg_id != 0) $pkg_id = $newest_pkg_id; +} + +// Make sure an integer ID is given +if(!isset($pkg_id) || !$gui->isValidPackageID($pkg_id, $adminflag)) + $app->error($app->lng('Invalid ID')); + +// Get package details +$details = $gui->getPackageDetails($pkg_id); +if(isset($details['error'])) $app->error($details['error']); +$settings = $gui->getPackageSettings($pkg_id); +if(isset($settings['error'])) $app->error($settings['error']); + +// Get domain list +$domains = array(); +$domain_for_user = ''; +if(!$adminflag) $domain_for_user = "AND (sys_userid = '".$app->db->quote($_SESSION['s']['user']['userid'])."' + OR sys_groupid = '".$app->db->quote($_SESSION['s']['user']['userid'])."' )"; +$domains_assoc = $app->db->queryAllRecords("SELECT domain FROM web_domain WHERE document_root != '' AND (type = 'vhost' OR type = 'vhostsubdomain') AND active = 'y' ".$domain_for_user." ORDER BY domain;"); +if(!empty($domains_assoc)) foreach($domains_assoc as $domain) $domains[] = $domain['domain']; + + // If data has been submitted, validate it + $result['input'] = array(); +if(count($_POST) > 1) +{ + $result = $gui->validateInstallerInput($_POST, $details, $domains, $settings); + if(empty($result['error'])) + { + $gui->createPackageInstance($result['input'], $pkg_id); + @header('Location:aps_installedpackages_list.php'); + } + else + { + $app->tpl->setVar('error', implode('<br />', $result['error'])); + + // Set memorized values (license, db password, install location) + if(!empty($result['input'])) + foreach($result['input'] as $key => $value) $app->tpl->setVar('inp_'.$key, $value); + } +} +else $app->tpl->setVar('inp_main_database_password', ucfirst(substr(md5(crypt(rand(0, 10))), 0, 16))); + +// Pass the package details to the template +foreach($details as $key => $value) +{ + if(!is_array($value)) $app->tpl->setVar('pkg_'.str_replace(' ', '_', strtolower($key)), $value); + else if($key == 'Requirements PHP settings') $app->tpl->setLoop('pkg_requirements_php_settings', $details['Requirements PHP settings']); +} + +// Parse the template as far as possible, then do the rest manually +$app->tpl_defaults(); +$parsed_tpl = $app->tpl->grab(); + + +// ISPConfig has a very old and functionally limited template engine. We have to style parts on our own... + +// Print the domain list +$domains_tpl = ''; +if(!empty($domains)) +{ + $set = array(); + $set[] = '<select name="main_domain" id="main_domain" class="selectInput">'; + foreach($domains as $domain) + { + $selected = ''; + if((count($_POST) > 1) + && (isset($result['input']['main_domain'])) + && ($result['input']['main_domain'] == $domain)) + $selected = ' selected '; + $set[] = '<option value="'.$domain.'" '.$selected.'>'.$domain.'</option>'; + } + $set[] = '</select>'; + + $domains_tpl = implode("\n", $set); +} +$parsed_tpl = str_replace('DOMAIN_LIST_SPACE', $domains_tpl, $parsed_tpl); + +// Print the packgae settings +$settings_tpl = ''; +if(!empty($settings)) +{ + $set = array(); + $set[] = '<legend>'.$app->lng('package_settings_txt').'</legend>'; + foreach($settings as $setting) + { + $set[] = '<div class="ctrlHolder">'; + $set[] = '<label for="'.$setting['SettingID'].'">'.$setting['SettingName'].'</label>'; + if($setting['SettingInputType'] == 'string' || $setting['SettingInputType'] == 'password') + { + $input_type = ($setting['SettingInputType'] == 'string') ? 'text' : 'password'; + + $input_value = ''; + if((count($_POST) > 1) + && (isset($result['input'][$setting['SettingID']]))) + $input_value = $result['input'][$setting['SettingID']]; + else $input_value = @$setting['SettingDefaultValue']; + + $set[] = '<input type="'.$input_type.'" class="textInput" name="'.$setting['SettingID'].'" maxlength="'.$setting['SettingMaxLength'].'" id="'.$setting['SettingID'].'" value="'.$input_value.'" /> + <p class="formHint">'.$setting['SettingDescription'].'</p>'; + } + else if($setting['SettingInputType'] == 'checkbox') + { + $checked = ''; + if((count($_POST) > 1) + && (isset($result['input'][$setting['SettingID']]) + && ($result['input'][$setting['SettingID']] == 'true'))) + $checked = 'checked '; + else if($setting['SettingDefaultValue'] == '1') $checked = 'checked '; + + $set[] = '<input type="checkbox" id="'.$setting['SettingID'].'" name="'.$setting['SettingID'].'" '.$checked.'/> + <p class="formHint">'.$setting['SettingDescription'].'</p>'; + } + else if($setting['SettingInputType'] == 'select') + { + $set[] = '<select size="1" class="selectInput" name="'.$setting['SettingID'].'">'; + foreach($setting['SettingChoices'] as $choice) + { + $selected = ''; + if((count($_POST) > 1) + && (isset($result['input'][$setting['SettingID']]))) + { + if($result['input'][$setting['SettingID']] == $choice['EnumID']) + $selected = 'selected '; + } + else if($setting['SettingDefaultValue'] == $choice['EnumID']) $selected = 'selected '; + + $set[] = '<option value="'.$choice['EnumID'].'" '.$selected.'>'.$choice['EnumName'].'</option>'; + } + $set[] = '</select> + <p class="formHint">'.$setting['SettingDescription'].'</p>'; + } + + $set[] = '</div>'; + } + $settings_tpl = implode("\n", $set); +} +$parsed_tpl = str_replace('PKG_SETTINGS_SPACE', $settings_tpl, $parsed_tpl); + +echo $parsed_tpl; +?> diff --git a/interface/web/sites/form/web_folder.tform.php b/interface/web/sites/form/web_folder.tform.php index ab8d4747c..5fec523a6 100644 --- a/interface/web/sites/form/web_folder.tform.php +++ b/interface/web/sites/form/web_folder.tform.php @@ -74,7 +74,7 @@ $form["tabs"]['folder'] = array ( 'formtype' => 'SELECT', 'default' => '', 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT web_domain.domain_id, CONCAT(web_domain.domain, ' :: ', server.server_name) AS parent_domain FROM web_domain, server WHERE (web_domain.type = 'vhost' OR web_domain.type = 'vhostsubdomain') AND web_domain.server_id = server.server_id AND {AUTHSQL::web_domain} ORDER BY web_domain.domain", + 'querystring' => "SELECT web_domain.domain_id, CONCAT(web_domain.domain, ' :: ', server.server_name) AS parent_domain FROM web_domain, server WHERE (web_domain.type = 'vhost' OR web_domain.type = 'vhostsubdomain' OR web_domain.type = 'vhostalias') AND web_domain.server_id = server.server_id AND {AUTHSQL::web_domain} ORDER BY web_domain.domain", 'keyfield'=> 'domain_id', 'valuefield'=> 'parent_domain' ), diff --git a/interface/web/sites/form/web_folder.tform.php.bak b/interface/web/sites/form/web_folder.tform.php.bak new file mode 100644 index 000000000..ab8d4747c --- /dev/null +++ b/interface/web/sites/form/web_folder.tform.php.bak @@ -0,0 +1,110 @@ +<?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"] = "Web Folder"; +$form["description"] = ""; +$form["name"] = "web_folder"; +$form["action"] = "web_folder_edit.php"; +$form["db_table"] = "web_folder"; +$form["db_table_idx"] = "web_folder_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "folder"; +$form["list_default"] = "web_folder_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"]['folder'] = array ( + 'title' => "Folder", + 'width' => 100, + 'template' => "templates/web_folder_edit.htm", + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'parent_domain_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT web_domain.domain_id, CONCAT(web_domain.domain, ' :: ', server.server_name) AS parent_domain FROM web_domain, server WHERE (web_domain.type = 'vhost' OR web_domain.type = 'vhostsubdomain') AND web_domain.server_id = server.server_id AND {AUTHSQL::web_domain} ORDER BY web_domain.domain", + 'keyfield'=> 'domain_id', + 'valuefield'=> 'parent_domain' + ), + 'value' => '' + ), + 'path' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^[\w\.\-\_\/]{0,255}$/', + 'errmsg'=> 'path_error_regex'), + ), + '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/sites/form/web_vhost_aliasdomain.tform.php b/interface/web/sites/form/web_vhost_aliasdomain.tform.php new file mode 100644 index 000000000..1b877a645 --- /dev/null +++ b/interface/web/sites/form/web_vhost_aliasdomain.tform.php @@ -0,0 +1,735 @@ +<?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). + + Search: + - searchable = 1 or searchable = 2 include the field in the search + - searchable = 1: this field will be the title of the search result + - searchable = 2: this field will be included in the description of the search result + + +*/ + +$form["title"] = "Aliasdomain"; +$form["description"] = ""; +$form["name"] = "web_vhost_aliasdomain"; +$form["action"] = "web_vhost_aliasdomain_edit.php"; +$form["db_table"] = "web_domain"; +$form["db_table_idx"] = "domain_id"; +$form["db_history"] = "yes"; +$form["tab_default"] = "domain"; +$form["list_default"] = "web_vhost_aliasdomain_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 + +$wildcard_available = false; +$ssl_available = true; +if(!$app->auth->is_admin()) { + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT limit_wildcard, limit_ssl FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + if($client['limit_ssl'] != 'y') $ssl_available = false; +} + +$app->uses('getconf'); +$web_config = $app->getconf->get_global_config('sites'); + +$form["tabs"]['domain'] = array ( + 'title' => "Domain", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_edit.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'server_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE mirror_server_id = 0 AND web_server = 1 AND {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'value' => '' + ), + 'ip_address' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + /*'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT ip_address,ip_address FROM server_ip WHERE ip_type = 'IPv4' AND {AUTHSQL} ORDER BY ip_address", + 'keyfield'=> 'ip_address', + 'valuefield'=> 'ip_address' + ),*/ + 'value' => '', + 'searchable' => 2 + ), + 'ipv6_address' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + /*'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT ip_address,ip_address FROM server_ip WHERE ip_type = 'IPv6' AND {AUTHSQL} ORDER BY ip_address", + 'keyfield'=> 'ip_address', + 'valuefield'=> 'ip_address' + ),*/ + 'value' => '', + 'searchable' => 2 + ), + 'domain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'filters' => array( 0 => array( 'event' => 'SAVE', + 'type' => 'IDNTOASCII'), + 1 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8'), + 2 => array( 'event' => 'SAVE', + 'type' => 'TOLOWER') + ), + 'validators' => array ( 0 => array ( 'type' => 'CUSTOM', + 'class' => 'validate_domain', + 'function' => 'alias_domain', + 'errmsg'=> 'domain_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255', + 'searchable' => 1 + ), + 'type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'y', + 'value' => array('vhost' => 'Site', 'alias' => 'Alias', 'vhostalias' => 'Alias', 'subdomain' => 'Subdomain', 'vhostsubdomain' => 'Subdomain') + ), + 'parent_domain_id' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT web_domain.domain_id, CONCAT(web_domain.domain, ' :: ', server.server_name) AS parent_domain FROM web_domain, server WHERE web_domain.type = 'vhost' AND web_domain.server_id = server.server_id AND {AUTHSQL::web_domain} ORDER BY web_domain.domain", + 'keyfield'=> 'domain_id', + 'valuefield'=> 'parent_domain' + ), + 'value' => '' + ), + 'web_folder' => array ( + 'datatype' => 'VARCHAR', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '@^((?!.*\.\.)[\w/_\.\-]{1,100})$@', + 'errmsg'=> 'web_folder_error_regex'), + ), + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'vhost_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'y', + 'value' => array('name' => 'Namebased', 'ip' => 'IP-Based') + ), + 'hd_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'default' => '0', + 'value' => '', + 'width' => '7', + 'maxlength' => '7' + ), + 'traffic_quota' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'traffic_quota_error_empty'), + 1 => array ( 'type' => 'REGEX', + 'regex' => '/^(\-1|[0-9]{1,10})$/', + 'errmsg'=> 'traffic_quota_error_regex'), + ), + 'default' => '-1', + 'value' => '', + 'width' => '7', + 'maxlength' => '7' + ), + 'cgi' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'ssi' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'suexec' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'errordocs' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'CHECKBOX', + 'default' => '1', + 'value' => array(0 => '0', 1 => '1') + ), + 'subdomain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'www', + 'value' => ($wildcard_available ? array('none' => 'none_txt', 'www' => 'www.', '*' => '*.') : array('none' => 'none_txt', 'www' => 'www.')) + ), + 'ssl' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'php' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'fast-cgi', + 'valuelimit' => 'client:web_php_options', + 'value' => array('no' => 'disabled_txt', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP', 'php-fpm' => 'PHP-FPM'), + 'searchable' => 2 + ), + 'fastcgi_php_version' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + /*'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT ip_address,ip_address FROM server_ip WHERE ip_type = 'IPv4' AND {AUTHSQL} ORDER BY ip_address", + 'keyfield'=> 'ip_address', + 'valuefield'=> 'ip_address' + ),*/ + 'value' => '' + ), + 'perl' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'ruby' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'python' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'active' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'y', + 'value' => array(0 => 'n', 1 => 'y') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + + +$form["tabs"]['redirect'] = array ( + 'title' => "Redirect", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_redirect.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'redirect_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => 'no_redirect_txt', 'no' => 'no_flag_txt', 'R' => 'R', 'L' => 'L', 'R,L' => 'R,L', 'R=301,L' => 'R=301,L', 'last' => 'last', 'break' => 'break', 'redirect' => 'redirect', 'permanent' => 'permanent', 'proxy' => 'proxy') + ), + 'redirect_path' => array ( + 'datatype' => 'VARCHAR', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '@^(([\.]{0})|((ftp|https?)://([-\w\.]+)+(:\d+)?(/([\w/_\.\,\-\+\?\~!:%]*(\?\S+)?)?)?)|(\[scheme\]://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~!:%]*(\?\S+)?)?)?)|(/(?!.*\.\.)[\w/_\.\-]{1,255}/))$@', + 'errmsg'=> 'redirect_error_regex'), + ), + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'seo_redirect' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.doman.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld') + ), + 'rewrite_rules' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +if($ssl_available) { + $form["tabs"]['ssl'] = array ( + 'title' => "SSL", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_ssl.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'ssl_state' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([\.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', + 'errmsg'=> 'ssl_state_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ssl_locality' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([\.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', + 'errmsg'=> 'ssl_locality_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ssl_organisation' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([\.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', + 'errmsg'=> 'ssl_organisation_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ssl_organisation_unit' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([\.]{0})|([a-zA-Z0-9\ \.\-\_\,]{1,255}))$/', + 'errmsg'=> 'ssl_organistaion_unit_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + /* + 'ssl_country' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^(([\.]{0})|([A-Z]{2,2}))$/', + 'errmsg'=> 'ssl_country_error_regex'), + ), + 'default' => '', + 'value' => '', + 'width' => '2', + 'maxlength' => '2' + ), + */ + 'ssl_country' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => 'SELECT iso,printable_name FROM country ORDER BY printable_name', + 'keyfield'=> 'iso', + 'valuefield'=> 'printable_name' + ), + 'value' => '' + ), + 'ssl_domain' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'ssl_key' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'cols' => '30', + 'rows' => '10' + ), + 'ssl_request' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'cols' => '30', + 'rows' => '10' + ), + 'ssl_cert' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'cols' => '30', + 'rows' => '10' + ), + 'ssl_bundle' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXTAREA', + 'default' => '', + 'value' => '', + 'cols' => '30', + 'rows' => '10' + ), + 'ssl_action' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('' => 'none_txt', 'save' => 'save_certificate_txt', 'create' => 'create_certificate_txt', 'del' => 'delete_certificate_txt') + ), + //################################# + // ENDE Datatable fields + //################################# + ) + ); +} + +//* Statistics +$form["tabs"]['stats'] = array ( + 'title' => "Stats", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_stats.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'stats_password' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'PASSWORD', + 'encryption' => 'CRYPT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'stats_type' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'webalizer', + 'value' => array('webalizer' => 'Webalizer', 'awstats' => 'AWStats') + ), + //################################# + // ENDE Datatable fields + //################################# + ) +); + +// if($_SESSION["s"]["user"]["typ"] == 'admin') { + +//* Backup +$form["tabs"]['backup'] = array ( + 'title' => "Backup", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_backup.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'backup_interval' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('none' => 'No backup', 'daily' => 'Daily', 'weekly' => 'Weekly', 'monthly' => 'Monthly') + ), + 'backup_copies' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'SELECT', + 'default' => '', + 'value' => array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10') + ), + 'backup_excludes' => array ( + 'datatype' => 'VARCHAR', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '@^(?!.*\.\.)[-a-zA-Z0-9_/.~,*]*$@', + 'errmsg'=> 'backup_excludes_error_regex'), + ), + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ), + 'plugins' => array ( + 'backup_records' => array ( + 'class' => 'plugin_backuplist', + 'options' => array( + ) + ) + ) +); + +// } + +if($_SESSION["s"]["user"]["typ"] == 'admin' + || ($web_config['reseller_can_use_options'] == 'y' && $app->auth->has_clients($_SESSION['s']['user']['userid']))) { + + $form["tabs"]['advanced'] = array ( + 'title' => "Options", + 'width' => 100, + 'template' => "templates/web_vhost_aliasdomain_advanced.htm", + 'readonly' => false, + 'fields' => array ( + //################################# + // Begin Datatable fields + //################################# + 'document_root' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'documentroot_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'system_user' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'sysuser_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'system_group' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'sysgroup_error_empty'), + ), + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'allow_override' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'allow_override_error_empty'), + ), + 'default' => 'All', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'php_fpm_use_socket' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n', 1 => 'y') + ), + 'pm' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'SELECT', + 'default' => 'dynamic', + 'value' => array('static' => 'static', 'dynamic' => 'dynamic', 'ondemand' => 'ondemand (PHP Version >= 5.3.9)') + ), + 'pm_max_children' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([1-9][0-9]{0,10})$/', + 'errmsg'=> 'pm_max_children_error_regex'), + ), + 'default' => '10', + 'value' => '', + 'width' => '3', + 'maxlength' => '3' + ), + 'pm_start_servers' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([1-9][0-9]{0,10})$/', + 'errmsg'=> 'pm_start_servers_error_regex'), + ), + 'default' => '2', + 'value' => '', + 'width' => '3', + 'maxlength' => '3' + ), + 'pm_min_spare_servers' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([1-9][0-9]{0,10})$/', + 'errmsg'=> 'pm_min_spare_servers_error_regex'), + ), + 'default' => '1', + 'value' => '', + 'width' => '3', + 'maxlength' => '3' + ), + 'pm_max_spare_servers' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([1-9][0-9]{0,10})$/', + 'errmsg'=> 'pm_max_spare_servers_error_regex'), + ), + 'default' => '5', + 'value' => '', + 'width' => '3', + 'maxlength' => '3' + ), + 'pm_process_idle_timeout' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([1-9][0-9]{0,10})$/', + 'errmsg'=> 'pm_process_idle_timeout_error_regex'), + ), + 'default' => '10', + 'value' => '', + 'width' => '3', + 'maxlength' => '6' + ), + 'pm_max_requests' => array ( + 'datatype' => 'INTEGER', + 'formtype' => 'TEXT', + 'validators' => array ( 0 => array ( 'type' => 'REGEX', + 'regex' => '/^([0-9]{1,11})$/', + 'errmsg'=> 'pm_max_requests_error_regex'), + ), + 'default' => '0', + 'value' => '', + 'width' => '3', + 'maxlength' => '6' + ), + 'php_open_basedir' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'TEXT', + /*'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', + 'errmsg'=> 'php_open_basedir_error_empty'), + ), */ + 'default' => 'All', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'custom_php_ini' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'apache_directives' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'nginx_directives' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + 'proxy_directives' => array ( + 'datatype' => 'TEXT', + 'formtype' => 'TEXT', + 'default' => '', + 'value' => '', + 'width' => '30', + 'maxlength' => '255' + ), + //################################# + // ENDE Datatable fields + //################################# + ) + ); + +} + + +?> diff --git a/interface/web/sites/form/web_vhost_subdomain.tform.php b/interface/web/sites/form/web_vhost_subdomain.tform.php index 2e30efa87..de2fba800 100644 --- a/interface/web/sites/form/web_vhost_subdomain.tform.php +++ b/interface/web/sites/form/web_vhost_subdomain.tform.php @@ -136,7 +136,7 @@ $form["tabs"]['domain'] = array ( 'datatype' => 'VARCHAR', 'formtype' => 'SELECT', 'default' => 'y', - 'value' => array('vhost' => 'Site', 'alias' => 'Alias', 'subdomain' => 'Subdomain', 'vhostsubdomain' => 'Subdomain') + 'value' => array('vhost' => 'Site', 'alias' => 'Alias', 'vhostalias' => 'Alias', 'subdomain' => 'Subdomain', 'vhostsubdomain' => 'Subdomain') ), 'parent_domain_id' => array ( 'datatype' => 'INTEGER', diff --git a/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..ae8bfec7a --- /dev/null +++ b/interface/web/sites/lib/lang/ar_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Add new aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..8e60e143c --- /dev/null +++ b/interface/web/sites/lib/lang/bg_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Ðктивен'; +$wb['server_id_txt'] = 'Сървър'; +$wb['parent_domain_id_txt'] = 'Сайт'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Ðов aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/br_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/br_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/br_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/br_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..78dbdd022 --- /dev/null +++ b/interface/web/sites/lib/lang/br_web_vhost_aliasdomain_list.lng @@ -0,0 +1,9 @@ +<?php +<?php +$wb['list_head_txt'] = 'DomÃnio Alias'; +$wb['active_txt'] = 'Ativo'; +$wb['server_id_txt'] = 'Servidor'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'DomÃnio Alias'; +$wb['add_new_record_txt'] = 'Adcionar novo domÃnio alias'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..ab47f26dc --- /dev/null +++ b/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain.lng @@ -0,0 +1,119 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Interval zálohovánÃ'; +$wb['backup_copies_txt'] = 'PoÄet záložnÃch kopiÃ'; +$wb['ssl_state_txt'] = 'Stát'; +$wb['ssl_locality_txt'] = 'Lokalita'; +$wb['ssl_organisation_txt'] = 'Organizace'; +$wb['ssl_organisation_unit_txt'] = 'OrganizaÄnà jednotka'; +$wb['ssl_country_txt'] = 'ZemÄ›'; +$wb['ssl_key_txt'] = 'SSL klÃÄ'; +$wb['ssl_request_txt'] = 'SSL požadavek'; +$wb['ssl_cert_txt'] = 'SSL certifikát'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL akce'; +$wb['ssl_domain_txt'] = 'SSL Doména'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Doména'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Verze'; +$wb['redirect_type_txt'] = 'Typ pÅ™esmÄ›rovánÃ'; +$wb['redirect_path_txt'] = 'Cesta pÅ™esmÄ›rovánÃ'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Klient'; +$wb['limit_web_domain_txt'] = 'The max. PoÄet webových stránek for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Doména je prázdná.'; +$wb['domain_error_unique'] = 'Webové stránky nebo sub-doména / alias-domény již existuje s tÃmto doménovým jménem.'; +$wb['domain_error_regex'] = 'Neplatné doménové jméno.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Klient'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffik kvóta pÅ™ekroÄena'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Uložit certifikát'; +$wb['create_certificate_txt'] = 'VytvoÅ™it certifikát'; +$wb['delete_certificate_txt'] = 'Smazat certifikát'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO pÅ™esmÄ›rovánÃ'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Kvóta pevného disku je neplatná.'; +$wb['traffic_quota_error_regex'] = 'Traffik kvóta je neplatná.'; +$wb['fastcgi_php_version_txt'] = 'PHP verze'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generovat heslo'; +$wb['repeat_password_txt'] = 'Opakujte heslo'; +$wb['password_mismatch_txt'] = 'Hesla se neshodujÃ.'; +$wb['password_match_txt'] = 'Hesla se shodujÃ.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> + diff --git a/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..08a25f2ac --- /dev/null +++ b/interface/web/sites/lib/lang/cz_web_vhost_aliasdomain_list.lng @@ -0,0 +1,9 @@ +<?php +$wb['list_head_txt'] = 'Alias doména'; +$wb['active_txt'] = 'AktivnÃ'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Webová stránka'; +$wb['domain_txt'] = 'Alias doména'; +$wb['add_new_record_txt'] = 'PÅ™idat alias doménu'; +?> + diff --git a/interface/web/sites/lib/lang/de_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/de_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..e43803fd2 --- /dev/null +++ b/interface/web/sites/lib/lang/de_web_vhost_aliasdomain.lng @@ -0,0 +1,126 @@ +<?php +$wb['parent_domain_id_txt'] = 'Zugehörige Webseite'; +$wb['web_folder_txt'] = 'Basisordner'; +$wb['web_folder_invalid_txt'] = 'Dieser Ordner darf nicht als Basisordner verwendet werden.'; +$wb['web_folder_unique_txt'] = 'Dieser Ordner wird bereits verwendet, bitte geben Sie einen anderen Basisordner an.'; +$wb['ssl_state_txt'] = 'Bundesland'; +$wb['ssl_locality_txt'] = 'Ort'; +$wb['ssl_organisation_txt'] = 'Firma'; +$wb['ssl_organisation_unit_txt'] = 'Abteilung'; +$wb['ssl_country_txt'] = 'Land'; +$wb['ssl_key_txt'] = 'SSL-Key'; +$wb['ssl_request_txt'] = 'SSL-Request'; +$wb['ssl_cert_txt'] = 'SSL-Zertifikat'; +$wb['ssl_bundle_txt'] = 'SSL-Bundle'; +$wb['ssl_action_txt'] = 'SSL-Aktion'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Host'; +$wb['type_txt'] = 'Typ'; +$wb['web_folder_error_regex'] = 'Ungültige Ordnerangabe, bitte keinen / eingeben.'; +$wb['redirect_type_txt'] = 'Redirect-Typ'; +$wb['redirect_path_txt'] = 'Redirect-Pfad'; +$wb['active_txt'] = 'Aktiv'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux-Benutzer'; +$wb['system_group_txt'] = 'Linux-Gruppe'; +$wb['ip_address_txt'] = 'IP Adresse'; +$wb['vhost_type_txt'] = 'vHost-Typ'; +$wb['hd_quota_txt'] = 'Festplatten-Quota'; +$wb['traffic_quota_txt'] = 'Traffic-Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Kunde'; +$wb['limit_web_domain_txt'] = 'Die max. Anzahl an Webdomains für Ihr Konto wurde erreicht.'; +$wb['limit_web_aliasdomain_txt'] = 'Die max. Anzahl an Aliasdomains für Ihr Konto wurde erreicht.'; +$wb['limit_web_subdomain_txt'] = 'Die max. Anzahl an Subdomains für Ihr Konto wurde erreicht.'; +$wb['apache_directives_txt'] = 'Apache-Direktiven'; +$wb['domain_error_empty'] = 'Domain ist leer.'; +$wb['domain_error_unique'] = 'Domain muss eindeutig sein'; +$wb['domain_error_regex'] = 'Domain-Name ungültig.'; +$wb['domain_error_wildcard'] = 'Wildcard-Subdomains sind nicht erlaubt.'; +$wb['hd_quota_error_empty'] = 'Harddisk-Quota ist leer.'; +$wb['traffic_quota_error_empty'] = 'Traffic-Quota ist leer.'; +$wb['errordocs_txt'] = 'Eigene Fehlerseiten'; +$wb['error_ssl_state_empty'] = 'Bundesland (SSL) ist leer.'; +$wb['error_ssl_locality_empty'] = 'Ort (SSL) ist leer.'; +$wb['error_ssl_organisation_empty'] = 'Organisation (SSL) ist leer.'; +$wb['error_ssl_organisation_unit_empty'] = 'Abteilung (SSL) ist leer.'; +$wb['error_ssl_country_empty'] = 'Land (SSL) ist leer.'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['client_group_id_txt'] = 'Kunde'; +$wb['stats_password_txt'] = 'Webstatistik-Passwort'; +$wb['ssl_domain_txt'] = 'SSL-Domain'; +$wb['allow_override_txt'] = 'Allow Override'; +$wb['limit_web_quota_free_txt'] = 'Max. mögliches Festplatten-Quota'; +$wb['ssl_state_error_regex'] = 'Ungültiges SSL-Bundesland. Gültige Zeichen sind: a-z, 0-9 und .,-_'; +$wb['ssl_locality_error_regex'] = 'Ungültiger SSL-Ort. Gülige Zeichen sind: a-z, 0-9 und .,-_'; +$wb['ssl_organisation_error_regex'] = 'Ungültige SSL-Firma. Gültige Zeichen sind: a-z, 0-9 und .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Ungültige SSL-Abteilung. Gültige Zeichen sind: a-z, 0-9 und .,-_'; +$wb['ssl_country_error_regex'] = 'Ungültiges SSL-Land. Gültige Zeichen sind: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. mögliches Traffic-Quota'; +$wb['redirect_error_regex'] = 'Ungültiger Redirect-Pfad. Gültige Angaben sind beispielsweise: /test/ oder http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['backup_interval_txt'] = 'Backup-Intervall'; +$wb['backup_copies_txt'] = 'Anzahl an Backups'; +$wb['traffic_quota_exceeded_txt'] = 'Max. Datentransfer verbraucht.'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistik-Benutzername'; +$wb['stats_type_txt'] = 'Webstatistik-Programm'; +$wb['custom_php_ini_txt'] = 'Individuelle php.ini-Einstellungen'; +$wb['error_ssl_cert_empty'] = 'SSL-Zertifikat-Feld ist leer.'; +$wb['none_txt'] = 'Keine'; +$wb['disabled_txt'] = 'Deaktiviert'; +$wb['no_redirect_txt'] = 'Kein Redirect'; +$wb['no_flag_txt'] = 'Kein Flag'; +$wb['save_certificate_txt'] = 'Zertifikat speichern'; +$wb['create_certificate_txt'] = 'Zertifikat erstellen'; +$wb['delete_certificate_txt'] = 'Zertifikat löschen'; +$wb['nginx_directives_txt'] = 'nginx-Direktiven'; +$wb['seo_redirect_txt'] = 'SEO-Redirect'; +$wb['non_www_to_www_txt'] = 'Nicht-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> Nicht-www'; +$wb['php_fpm_use_socket_txt'] = 'Benutze Socket für PHP-FPM'; +$wb['ipv6_address_txt'] = 'IPv6-Adresse'; +$wb['error_no_sni_txt'] = 'SNI für SSL ist auf diesem Server nicht aktiviert. Sie können daher nur ein SSL-Zertifikat pro IP-Adresse eintragen.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Die Werte der PHP-FPM pm Einstellungen müssen wie folgt sein: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children muß eine positive ganze Zahl sein.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers muß eine positive ganze Zahl sein.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers muß eine positive ganze Zahl sein.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers muß eine positive ganze Zahl sein.'; +$wb['hd_quota_error_regex'] = 'Harddisk-Quota ist ungültig.'; +$wb['traffic_quota_error_regex'] = 'Traffic-Quota ist ungültig.'; +$wb['fastcgi_php_version_txt'] = 'PHP-Version'; +$wb['pm_txt'] = 'PHP-FPM Prozess Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout muß eine positive ganze Zahl sein.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests muß eine ganze Zahl >= 0 sein.'; +$wb['pm_ondemand_hint_txt'] = 'Bitte beachten Sie, daß Ihre PHP Version >= 5.3.9 sein muß, wenn Sie den ondemand Prozess Manager nutzen möchten. Wenn Sie ondemand für eine ältere PHP-Version auswählen, wird PHP nicht mehr starten!'; +$wb['generate_password_txt'] = 'Passwort erzeugen'; +$wb['repeat_password_txt'] = 'Passwort wiederholen'; +$wb['password_mismatch_txt'] = 'Die Passwörter stimmen nicht überein.'; +$wb['password_match_txt'] = 'Die Passwörter stimmen überein.'; +$wb['available_php_directive_snippets_txt'] = 'Verfügbare PHP-Direktiven-Schnipsel:'; +$wb['available_apache_directive_snippets_txt'] = 'Verfügbare Apache-Direktiven-Schnipsel:'; +$wb['available_nginx_directive_snippets_txt'] = 'Verfügbare nginx-Direktiven-Schnipsel:'; +$wb['proxy_directives_txt'] = 'Proxy-Direktiven'; +$wb['available_proxy_directive_snippets_txt'] = 'Verfügbare Proxy-Direktiven-Schnipsel:'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Unzulässige Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Erlaubte Direktiven:'; +$wb['configuration_error_txt'] = 'KONFIGURATIONSFEHLER'; +$wb['variables_txt'] = 'Variablen'; +$wb['backup_excludes_txt'] = 'Auszuschließende Verzeichnisse'; +$wb['backup_excludes_note_txt'] = '(Mehrere Verzeichnisse mit Kommas trennen. Beispiel: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'Die auszuschließenden Verzeichnisse enthalten ungültige Zeichen.'; +?> diff --git a/interface/web/sites/lib/lang/de_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/de_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..7926017c0 --- /dev/null +++ b/interface/web/sites/lib/lang/de_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomains'; +$wb['active_txt'] = 'Aktiv'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Domain'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Neue Subdomain hinzufügen'; +?> diff --git a/interface/web/sites/lib/lang/el_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/el_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..7381df6bf --- /dev/null +++ b/interface/web/sites/lib/lang/el_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Γονικό Website'; +$wb['web_folder_txt'] = 'Φάκελος Web'; +$wb['web_folder_invalid_txt'] = 'Ο Φάκελος Web δεν είναι ÎγκυÏος, διαλÎξτε κάποιον άλλο.'; +$wb['web_folder_unique_txt'] = 'Ο Φάκελος Web χÏησιμοποιείται ήδη, διαλÎξτε κάποιον άλλο.'; +$wb['backup_interval_txt'] = 'ΧÏονικό διάστημα ΑντιγÏάφων Ασφαλείας'; +$wb['backup_copies_txt'] = 'Πλήθος ΑντιγÏάφων Ασφαλείας'; +$wb['ssl_state_txt'] = 'Κατάσταση'; +$wb['ssl_locality_txt'] = 'Τοποθεσία'; +$wb['ssl_organisation_txt'] = 'ΟÏγανισμός'; +$wb['ssl_organisation_unit_txt'] = 'Τμήμα ΟÏγανισμοÏ'; +$wb['ssl_country_txt'] = 'ΧώÏα'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Εισάγατε μη ÎγκυÏο φάκελο. Μην εισάγετε την κάθετο'; +$wb['type_txt'] = 'ΤÏπος'; +$wb['redirect_type_txt'] = 'ΤÏπος ΑνακατεÏθυνσης'; +$wb['redirect_path_txt'] = 'ΔιαδÏομή ΑνακατεÏθυνσης'; +$wb['active_txt'] = 'ΕνεÏγό'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'ΧÏήστης Linux'; +$wb['system_group_txt'] = 'Ομάδα Linux'; +$wb['ip_address_txt'] = 'ΔιεÏθυνση IP'; +$wb['ipv6_address_txt'] = 'ΔιεÏθυνση IPv6'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'ÎŒÏιο Î±Ï€Î¿Î¸Î·ÎºÎµÏ…Ï„Î¹ÎºÎ¿Ï Ï‡ÏŽÏου'; +$wb['traffic_quota_txt'] = 'ÎŒÏιο μεταφοÏάς δεδομÎνων'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Î Ïοσωπικά ÎγγÏαφα σφάλματος'; +$wb['subdomain_txt'] = 'Αυτόματο-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Πελάτης'; +$wb['limit_web_domain_txt'] = 'Έχετε φτάσει το μÎγιστο πλήθος των web domains για τον λογαÏιασμό σας.'; +$wb['limit_web_aliasdomain_txt'] = 'Έχετε φτάσει το μÎγιστο πλήθος των aliasdomains για τον λογαÏιασμό σας.'; +$wb['limit_web_subdomain_txt'] = 'Έχετε φτάσει το μÎγιστο πλήθος των web subdomains για τον λογαÏιασμό σας.'; +$wb['apache_directives_txt'] = 'Apache directives'; +$wb['domain_error_empty'] = 'Το Domain δεν Îχει οÏιστεί.'; +$wb['domain_error_unique'] = 'ΥπάÏχει ήδη Îνα website ή Îνα sub / aliasdomain με αυτό το όνομα domain.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Το ÏŒÏιο Î±Ï€Î¿Î¸Î·ÎºÎµÏ…Ï„Î¹ÎºÎ¿Ï Ï‡ÏŽÏου είναι 0 ή δεν Îχει οÏιστεί.'; +$wb['traffic_quota_error_empty'] = 'Το ÏŒÏιο μεταφοÏάς δεδομÎνων δεν Îχει οÏιστεί.'; +$wb['error_ssl_state_empty'] = 'Κενή πεÏιφÎÏεια SSL.'; +$wb['error_ssl_locality_empty'] = 'Κενή τοποθεσία SSL.'; +$wb['error_ssl_organisation_empty'] = 'Ο ΟÏγανισμός SSL δεν Îχει οÏιστεί.'; +$wb['error_ssl_organisation_unit_empty'] = 'Το SSL τμήμα ΟÏÎ³Î±Î½Î¹ÏƒÎ¼Î¿Ï Î´ÎµÎ½ Îχει οÏιστεί.'; +$wb['error_ssl_country_empty'] = 'Κενή χώÏα SSL.'; +$wb['error_ssl_cert_empty'] = 'Το πεδίο SSL Certificate δεν Îχει οÏιστεί'; +$wb['client_group_id_txt'] = 'Πελάτης'; +$wb['stats_password_txt'] = 'Συνθηματικο Στατιστικών Web'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'ÎŒÏιο Î±Ï€Î¿Î¸Î·ÎºÎµÏ…Ï„Î¹ÎºÎ¿Ï Ï‡ÏŽÏου'; +$wb['ssl_state_error_regex'] = 'ΆκυÏη πολιτεία-πεÏιφÎÏεια SSL. ΈγκυÏοι χαÏακτήÏες: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'ΆκυÏο SSL Locality. ΈγκυÏοι χαÏακτήÏες: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'ΆκυÏος ΟÏγανισμός SSL. ΈγκυÏοι χαÏακτήÏες: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'ΆκυÏη μονάδα οÏÎ³Î±Î½Î¹ÏƒÎ¼Î¿Ï SSL. ΈγκυÏοι χαÏακτήÏες: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'ΆκυÏη ΧώÏα SSL. ΈγκυÏοι χαÏακτήÏες: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'ÎŒÏιο μεταφοÏάς δεδομÎνων'; +$wb['redirect_error_regex'] = 'Μη ÎγκυÏη διαδÏομή ανακατεÏθυνσης. ΈγκυÏες τιμÎÏ‚ είναι: /test/ ή http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'ΞεπεÏάστηκε το ÏŒÏιο μεταφοÏάς δεδομÎνων'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Όνομα ΧÏήστη Στατιστικών Web'; +$wb['stats_type_txt'] = 'Î ÏόγÏαμμα Στατιστικών Web'; +$wb['custom_php_ini_txt'] = 'Î ÏοσαÏμοσμÎνες Ïυθμίσεις php.ini'; +$wb['none_txt'] = 'Καμία'; +$wb['disabled_txt'] = 'ΑπενεÏγοπ.'; +$wb['no_redirect_txt'] = 'ΧωÏίς ΑνακατεÏθυνση'; +$wb['no_flag_txt'] = 'ΧωÏίς Σημαία'; +$wb['save_certificate_txt'] = 'Αποθήκευση ΠιστοποιητικοÏ'; +$wb['create_certificate_txt'] = 'ΔημιουÏγία ΠιστοποιητικοÏ'; +$wb['delete_certificate_txt'] = 'ΔιαγÏαφή ΠιστοποιητικοÏ'; +$wb['nginx_directives_txt'] = 'ÎτιÏεκτίβες nginx'; +$wb['seo_redirect_txt'] = 'ΑνακατεÏθυνση SEO'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'ΧÏήση Socket Για PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'ΔημιουÏγία ΣυνθηματικοÏ'; +$wb['repeat_password_txt'] = 'Επανάληψη ΣυνθηματικοÏ'; +$wb['password_mismatch_txt'] = 'Τα Συνθηματικά δεν ταιÏιάζουν.'; +$wb['password_match_txt'] = 'Τα Συνθηματικά ταιÏιάζουν.'; +$wb['available_php_directive_snippets_txt'] = 'ΔιαθÎσιμα PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'ΔιαθÎσιμα Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'ΔιαθÎσιμα nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'ΔιαθÎσιμα Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/el_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/el_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..4905e4240 --- /dev/null +++ b/interface/web/sites/lib/lang/el_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Ψευδώνυμο domain'; +$wb['active_txt'] = 'ΕνεÏγό'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Ψευδώνυμο domain'; +$wb['add_new_record_txt'] = 'ÎÎο ψευδωνÏμο domain'; +?> diff --git a/interface/web/sites/lib/lang/en_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/en_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..3c9009ee1 --- /dev/null +++ b/interface/web/sites/lib/lang/en_web_vhost_aliasdomain.lng @@ -0,0 +1,127 @@ +<?php +$wb["parent_domain_id_txt"] = 'Parent Website'; +$wb["web_folder_txt"] = 'Web folder'; +$wb["web_folder_invalid_txt"] = 'The web folder is invalid, please choose a different one.'; +$wb["web_folder_unique_txt"] = 'The web folder is already used, please choose a different one.'; +$wb["backup_interval_txt"] = 'Backup interval'; +$wb["backup_copies_txt"] = 'Number of backup copies'; +$wb["ssl_state_txt"] = 'State'; +$wb["ssl_locality_txt"] = 'Locality'; +$wb["ssl_organisation_txt"] = 'Organisation'; +$wb["ssl_organisation_unit_txt"] = 'Organisation Unit'; +$wb["ssl_country_txt"] = 'Country'; +$wb["ssl_key_txt"] = 'SSL Key'; +$wb["ssl_request_txt"] = 'SSL Request'; +$wb["ssl_cert_txt"] = 'SSL Certificate'; +$wb["ssl_bundle_txt"] = 'SSL Bundle'; +$wb["ssl_action_txt"] = 'SSL Action'; +$wb["ssl_domain_txt"] = 'SSL Domain'; +$wb["server_id_txt"] = 'Server'; +$wb["domain_txt"] = 'Domain'; +$wb["host_txt"] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb["type_txt"] = 'Type'; +$wb["parent_domain_id_txt"] = 'Parent Website'; +$wb["redirect_type_txt"] = 'Redirect Type'; +$wb["redirect_path_txt"] = 'Redirect Path'; +$wb["active_txt"] = 'Active'; +$wb["document_root_txt"] = 'Documentroot'; +$wb["system_user_txt"] = 'Linux User'; +$wb["system_group_txt"] = 'Linux Group'; +$wb["ip_address_txt"] = 'IPv4-Address'; +$wb["ipv6_address_txt"] = 'IPv6-Address'; +$wb["vhost_type_txt"] = 'VHost Type'; +$wb["hd_quota_txt"] = 'Harddisk Quota'; +$wb["traffic_quota_txt"] = 'Traffic Quota'; +$wb["cgi_txt"] = 'CGI'; +$wb["ssi_txt"] = 'SSI'; +$wb["errordocs_txt"] = 'Own Error-Documents'; +$wb["subdomain_txt"] = 'Auto-Subdomain'; +$wb["ssl_txt"] = 'SSL'; +$wb["suexec_txt"] = 'SuEXEC'; +$wb["php_txt"] = 'PHP'; +$wb["client_txt"] = 'Client'; +$wb["limit_web_domain_txt"] = 'The max. number of web domains for your account is reached.'; +$wb["limit_web_aliasdomain_txt"] = 'The max. number of aliasdomains for your account is reached.'; +$wb["limit_web_subdomain_txt"] = 'The max. number of web subdomains for your account is reached.'; +$wb["apache_directives_txt"] = 'Apache Directives'; +$wb["domain_error_empty"] = 'Domain is empty.'; +$wb["domain_error_unique"] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb["domain_error_regex"] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb["hd_quota_error_empty"] = 'Harddisk quota is 0 or empty.'; +$wb["traffic_quota_error_empty"] = 'Traffic quota is empty.'; +$wb["error_ssl_state_empty"] = 'SSL State is empty.'; +$wb["error_ssl_locality_empty"] = 'SSL Locality is empty.'; +$wb["error_ssl_organisation_empty"] = 'SSL Organisation is empty.'; +$wb["error_ssl_organisation_unit_empty"] = 'SSL Organisation Unit is empty.'; +$wb["error_ssl_country_empty"] = 'SSL Country is empty.'; +$wb["error_ssl_cert_empty"] = 'SSL Certificate field is empty'; +$wb["client_group_id_txt"] = 'Client'; +$wb["stats_password_txt"] = 'Set Webstatistics password'; +$wb["allow_override_txt"] = 'Apache AllowOverride'; +$wb["limit_web_quota_free_txt"] = 'Max. available Harddisk Quota'; +$wb["ssl_state_error_regex"] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_locality_error_regex"] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_organisation_error_regex"] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_organistaion_unit_error_regex"] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb["ssl_country_error_regex"] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb["limit_traffic_quota_free_txt"] = 'Max. available Traffic Quota'; +$wb["redirect_error_regex"] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb["php_open_basedir_txt"] = 'PHP open_basedir'; +$wb["traffic_quota_exceeded_txt"] = 'Traffic quota exceeded'; +$wb["ruby_txt"] = 'Ruby'; +$wb["stats_user_txt"] = 'Webstatistics username'; +$wb["stats_type_txt"] = 'Webstatistics program'; +$wb["custom_php_ini_txt"] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb["nginx_directives_txt"] = 'nginx Directives'; +$wb["seo_redirect_txt"] = 'SEO Redirect'; +$wb["non_www_to_www_txt"] = 'Non-www -> www'; +$wb["www_to_non_www_txt"] = 'www -> non-www'; +$wb["php_fpm_use_socket_txt"] = 'Use Socket For PHP-FPM'; +$wb["error_no_sni_txt"] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb["python_txt"] = 'Python'; +$wb["perl_txt"] = 'Perl'; +$wb["pm_max_children_txt"] = 'PHP-FPM pm.max_children'; +$wb["pm_start_servers_txt"] = 'PHP-FPM pm.start_servers'; +$wb["pm_min_spare_servers_txt"] = 'PHP-FPM pm.min_spare_servers'; +$wb["pm_max_spare_servers_txt"] = 'PHP-FPM pm.max_spare_servers'; +$wb["error_php_fpm_pm_settings_txt"] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb["pm_max_children_error_regex"] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb["pm_start_servers_error_regex"] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb["pm_min_spare_servers_error_regex"] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb["pm_max_spare_servers_error_regex"] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb["hd_quota_error_regex"] = 'Harddisk quota is invalid.'; +$wb["traffic_quota_error_regex"] = 'Traffic quota is invalid.'; +$wb["fastcgi_php_version_txt"] = 'PHP Version'; +$wb["pm_txt"] = 'PHP-FPM Process Manager'; +$wb["pm_process_idle_timeout_txt"] = 'PHP-FPM pm.process_idle_timeout'; +$wb["pm_max_requests_txt"] = 'PHP-FPM pm.max_requests'; +$wb["pm_process_idle_timeout_error_regex"] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb["pm_max_requests_error_regex"] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb["pm_ondemand_hint_txt"] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +$wb['rewrite_rules_txt'] = 'Rewrite Rules'; +$wb['invalid_rewrite_rules_txt'] = 'Invalid Rewrite Rules'; +$wb['allowed_rewrite_rule_directives_txt'] = 'Allowed Directives:'; +$wb['configuration_error_txt'] = "CONFIGURATION ERROR"; +$wb['variables_txt'] = 'Variables'; +$wb['backup_excludes_txt'] = 'Excluded Directories'; +$wb['backup_excludes_note_txt'] = '(Separate multiple directories with commas. Example: web/cache/*,web/backup)'; +$wb['backup_excludes_error_regex'] = 'The excluded directories contain invalid characters.'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/en_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/en_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..3699711f1 --- /dev/null +++ b/interface/web/sites/lib/lang/en_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb["list_head_txt"] = 'Aliasdomain'; +$wb["active_txt"] = 'Active'; +$wb["server_id_txt"] = 'Server'; +$wb["parent_domain_id_txt"] = 'Website'; +$wb["domain_txt"] = 'Aliasdomain'; +$wb["add_new_record_txt"] = 'Add new aliasdomain'; +?> \ No newline at end of file diff --git a/interface/web/sites/lib/lang/es_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/es_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/es_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/es_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/es_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..4b28a648e --- /dev/null +++ b/interface/web/sites/lib/lang/es_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias de dominio'; +$wb['active_txt'] = 'Activar'; +$wb['server_id_txt'] = 'Servidor'; +$wb['parent_domain_id_txt'] = 'Sitio web'; +$wb['domain_txt'] = 'Alias de dominio'; +$wb['add_new_record_txt'] = 'Añadir nuevo alias de dominio'; +?> diff --git a/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..bbea906d1 --- /dev/null +++ b/interface/web/sites/lib/lang/fi_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasverkkotunnus'; +$wb['active_txt'] = 'Käytössä'; +$wb['server_id_txt'] = 'Palvelin'; +$wb['parent_domain_id_txt'] = 'Sivusto'; +$wb['domain_txt'] = 'Aliasverkkotunnus'; +$wb['add_new_record_txt'] = 'Lisää uusi aliasverkkotunnus'; +?> diff --git a/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..0c6ab59b5 --- /dev/null +++ b/interface/web/sites/lib/lang/fr_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias de domaine'; +$wb['active_txt'] = 'Actif'; +$wb['server_id_txt'] = 'Serveur'; +$wb['parent_domain_id_txt'] = 'Site web'; +$wb['domain_txt'] = 'Alias de domaine'; +$wb['add_new_record_txt'] = 'Nouvel alias de domaine'; +?> diff --git a/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..79ee85dfe --- /dev/null +++ b/interface/web/sites/lib/lang/hr_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias domena'; +$wb['active_txt'] = 'Aktivno'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Web stranica'; +$wb['domain_txt'] = 'Alias domena'; +$wb['add_new_record_txt'] = 'Dodaj novu alias domenu'; +?> diff --git a/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..8fe58ed56 --- /dev/null +++ b/interface/web/sites/lib/lang/hu_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'AktÃv'; +$wb['server_id_txt'] = 'Szerver'; +$wb['parent_domain_id_txt'] = 'Webhely'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Új Aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/id_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/id_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/id_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/id_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/id_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..b4aa9e0a1 --- /dev/null +++ b/interface/web/sites/lib/lang/id_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias Domain'; +$wb['active_txt'] = 'Aktif'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Situs Web'; +$wb['domain_txt'] = 'Alias Domain'; +$wb['add_new_record_txt'] = 'Tambah Alias Domain Baru'; +?> diff --git a/interface/web/sites/lib/lang/it_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/it_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/it_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/it_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/it_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..ae8bfec7a --- /dev/null +++ b/interface/web/sites/lib/lang/it_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Add new aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..1407d49ae --- /dev/null +++ b/interface/web/sites/lib/lang/ja_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'エイリアスドメイン'; +$wb['active_txt'] = '有効'; +$wb['server_id_txt'] = 'サーãƒãƒ¼'; +$wb['parent_domain_id_txt'] = 'ウェブサイト'; +$wb['domain_txt'] = 'エイリアスドメイン'; +$wb['add_new_record_txt'] = 'ã‚¨ã‚¤ãƒªã‚¢ã‚¹ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚’è¿½åŠ ã™ã‚‹'; +?> diff --git a/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..7a24c02a9 --- /dev/null +++ b/interface/web/sites/lib/lang/nl_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomein'; +$wb['active_txt'] = 'Actief'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Aliasdomein'; +$wb['add_new_record_txt'] = 'Toevoegen nieuw aliasdomein'; +?> diff --git a/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..8420a9d2b --- /dev/null +++ b/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Strona macierzysta'; +$wb['web_folder_txt'] = 'Folder strony'; +$wb['web_folder_invalid_txt'] = 'Folder strony jest nieprawidÅ‚owy, proszÄ™ wybrać inny.'; +$wb['web_folder_unique_txt'] = 'Folder strony jest już w użyciu, proszÄ™ wybrać inny.'; +$wb['backup_interval_txt'] = 'CzÄ™stotliwość kopii'; +$wb['backup_copies_txt'] = 'Liczba kopii zapasowych'; +$wb['ssl_state_txt'] = 'Województwo'; +$wb['ssl_locality_txt'] = 'Lokalizacja'; +$wb['ssl_organisation_txt'] = 'Ogranizacja'; +$wb['ssl_organisation_unit_txt'] = 'Jednostka organizacji'; +$wb['ssl_country_txt'] = 'Kraj'; +$wb['ssl_key_txt'] = 'Klucz SSL'; +$wb['ssl_request_txt'] = 'Żądanie SSL'; +$wb['ssl_cert_txt'] = 'Certyfikat SSL'; +$wb['ssl_bundle_txt'] = 'Pakiet SSL (Bundle)'; +$wb['ssl_action_txt'] = 'Czynność SSL'; +$wb['ssl_domain_txt'] = 'Domena SSL'; +$wb['server_id_txt'] = 'Serwer'; +$wb['domain_txt'] = 'Domena'; +$wb['host_txt'] = 'Nazwa hosta'; +$wb['web_folder_error_regex'] = 'Wpisano nieprawidÅ‚owy folder. ProszÄ™ nie dopisywać znaku slash: / '; +$wb['type_txt'] = 'Rodzaj'; +$wb['redirect_type_txt'] = 'Rodzaj przekierowania'; +$wb['redirect_path_txt'] = 'Åšcieżka przekierowania'; +$wb['active_txt'] = 'Aktywny'; +$wb['document_root_txt'] = 'Document root'; +$wb['system_user_txt'] = 'Użytkownik systemowy'; +$wb['system_group_txt'] = 'Grupa systemowa'; +$wb['ip_address_txt'] = 'Adres IPv4'; +$wb['ipv6_address_txt'] = 'Adres IPv6'; +$wb['vhost_type_txt'] = 'Typ VHosta'; +$wb['hd_quota_txt'] = 'Limit dysku'; +$wb['traffic_quota_txt'] = 'Limit transferu'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'WÅ‚asne strony bÅ‚Ä™dów'; +$wb['subdomain_txt'] = 'Automatyczna subdomena'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Klient'; +$wb['limit_web_domain_txt'] = 'Maks. liczba domen dla Twojego konta zostaÅ‚a osiÄ…gniÄ™ta.'; +$wb['limit_web_aliasdomain_txt'] = 'Maks. liczba aliasów domen dla Twojego konta zostaÅ‚a osiÄ…gniÄ™ta.'; +$wb['limit_web_subdomain_txt'] = 'Maks. liczba poddomen dla Twojego konta zostaÅ‚a osiÄ…gniÄ™ta.'; +$wb['apache_directives_txt'] = 'Dyrektywy Apache'; +$wb['domain_error_empty'] = 'Pole domeny jest puste'; +$wb['domain_error_unique'] = 'Istnieje już strona z takÄ… domenÄ… lub subdomenÄ….'; +$wb['domain_error_regex'] = 'Nazwa domeny jest nieprawidÅ‚owa.'; +$wb['domain_error_wildcard'] = 'Subdomeny typu wildcard nie sÄ… dozwolone.'; +$wb['hd_quota_error_empty'] = 'Pole limitu dysku jest puste lub wynosi 0.'; +$wb['traffic_quota_error_empty'] = 'Pole limitu transferu jest puste.'; +$wb['error_ssl_state_empty'] = 'Pole województwa dla SSL jest puste.'; +$wb['error_ssl_locality_empty'] = 'Pole lokalizacji dla SSL jest puste.'; +$wb['error_ssl_organisation_empty'] = 'Pole organizacji dla SSL jest puste.'; +$wb['error_ssl_organisation_unit_empty'] = 'Pole jednostki dla SSL jest puste.'; +$wb['error_ssl_country_empty'] = 'Pole kraju dla SSL jest puste.'; +$wb['error_ssl_cert_empty'] = 'Pole certyfikatu SSL jest puste.'; +$wb['client_group_id_txt'] = 'Klient'; +$wb['stats_password_txt'] = 'HasÅ‚o do statystyk'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Maks. dostÄ™pny limit dysku'; +$wb['ssl_state_error_regex'] = 'NieprawidÅ‚owe województwo SSL. Dozwolone znaki: a-z, 0-9 i .,-_'; +$wb['ssl_locality_error_regex'] = 'NieprawidÅ‚owa lokalizacja SSL. Dozwolone znaki: a-z, 0-9 i .,-_'; +$wb['ssl_organisation_error_regex'] = 'NieprawidÅ‚owa organizacja SSL. Dozwolone znaki: a-z, 0-9 i .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'NieprawidÅ‚owa jednostka SSL. Dozwolone znaki: a-z, 0-9 i .,-_'; +$wb['ssl_country_error_regex'] = 'NieprawidÅ‚owy kraj SSL. Dozwolone znaki: a-z, 0-9 i .,-_'; +$wb['limit_traffic_quota_free_txt'] = 'Maks. dostÄ™pny limit transferu'; +$wb['redirect_error_regex'] = 'NieprawidÅ‚owa Å›cieżka przekierowania. PrzykÅ‚adowe prawidÅ‚owe przekierowania: /test/ lub http://www.domena.pl/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Limit transferu zostaÅ‚ przekroczony'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Login do statystyk'; +$wb['stats_type_txt'] = 'Rodzaj statystyk'; +$wb['custom_php_ini_txt'] = 'WÅ‚asne ustawienia php.ini'; +$wb['none_txt'] = 'Brak'; +$wb['disabled_txt'] = 'WyÅ‚Ä…czone'; +$wb['no_redirect_txt'] = 'Bez przekierowania'; +$wb['no_flag_txt'] = 'Bez flagi'; +$wb['save_certificate_txt'] = 'Zapisz certyfikat'; +$wb['create_certificate_txt'] = 'Utwórz certyfikat'; +$wb['delete_certificate_txt'] = 'UsuÅ„ certyfikat'; +$wb['nginx_directives_txt'] = 'Dyrektywy nginx'; +$wb['seo_redirect_txt'] = 'Przekierowanie SEO'; +$wb['non_www_to_www_txt'] = 'bez-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> bez-www'; +$wb['php_fpm_use_socket_txt'] = 'Użyj gniazda dla PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI dla SSL nie jest aktywowane dla tego serwera. Możesz wÅ‚Ä…czyć tylko jeden certyfikat SSL dla jednego adresu IP.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'WartoÅ›ci ustawieÅ„ PHP-FPM pm muszÄ… być nastÄ™pujÄ…ce: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; +$wb['hd_quota_error_regex'] = 'Limit dyski jest nieprawidÅ‚owy'; +$wb['traffic_quota_error_regex'] = 'Limit transferu jest nieprawidÅ‚owy'; +$wb['fastcgi_php_version_txt'] = 'Wersja PHP'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout musi być dodatniÄ… wartoÅ›ciÄ… caÅ‚kowitÄ….'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests musi być wartoÅ›ciÄ… caÅ‚kowitÄ… >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'PamiÄ™taj że musisz mieć wersjÄ™ PHP >= 5.3.9 aby używać ondemand process manager. W przypadku starszej wersji PHP nie bÄ™dzie dziaÅ‚ać w ogóle!'; +$wb['generate_password_txt'] = 'Generuj hasÅ‚o'; +$wb['repeat_password_txt'] = 'Powtórz hasÅ‚o'; +$wb['password_mismatch_txt'] = 'HasÅ‚a nie pasujÄ… do siebie'; +$wb['password_match_txt'] = 'HasÅ‚a pasujÄ… do siebie'; +$wb['available_php_directive_snippets_txt'] = 'DostÄ™pne zestawy dyrektyw PHP:'; +$wb['available_apache_directive_snippets_txt'] = 'DostÄ™pne zestawy dyrektyw Apache:'; +$wb['available_nginx_directive_snippets_txt'] = 'DostÄ™pne zestawy dyrektyw nginx:'; +$wb['proxy_directives_txt'] = 'Dyrektywy Proxy'; +$wb['available_proxy_directive_snippets_txt'] = 'DostÄ™pne zestawy dyrektyw Proxy:'; +?> diff --git a/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..621b614fd --- /dev/null +++ b/interface/web/sites/lib/lang/pl_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias domeny'; +$wb['active_txt'] = 'Aktywny'; +$wb['server_id_txt'] = 'Serwer'; +$wb['parent_domain_id_txt'] = 'Strona www'; +$wb['domain_txt'] = 'Alias domeny'; +$wb['add_new_record_txt'] = 'Dodaj nowy alias domeny'; +?> diff --git a/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..b9dd27cbb --- /dev/null +++ b/interface/web/sites/lib/lang/pt_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'DomÃnio Alias'; +$wb['active_txt'] = 'Activo'; +$wb['server_id_txt'] = 'Servidor'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'DomÃnio Alias'; +$wb['add_new_record_txt'] = 'Adicionar Alias de DomÃnio'; +?> diff --git a/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..f63f62e24 --- /dev/null +++ b/interface/web/sites/lib/lang/ro_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Adauga un nou aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..041c188ea --- /dev/null +++ b/interface/web/sites/lib/lang/ru_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Доменные алиаÑÑ‹'; +$wb['active_txt'] = 'Ðктивен?'; +$wb['server_id_txt'] = 'Сервер'; +$wb['parent_domain_id_txt'] = 'Web-Ñайт'; +$wb['domain_txt'] = 'Доменный алиаÑ'; +$wb['add_new_record_txt'] = 'Добавить новый алиаÑ'; +?> diff --git a/interface/web/sites/lib/lang/se_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/se_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/se_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/se_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/se_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..ae8bfec7a --- /dev/null +++ b/interface/web/sites/lib/lang/se_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Active'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Website'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Add new aliasdomain'; +?> diff --git a/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..c626f081e --- /dev/null +++ b/interface/web/sites/lib/lang/sk_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Alias doména'; +$wb['active_txt'] = 'AktÃvne'; +$wb['server_id_txt'] = 'Server'; +$wb['parent_domain_id_txt'] = 'Webstránky'; +$wb['domain_txt'] = 'Alias doména'; +$wb['add_new_record_txt'] = 'PridaÅ¥ novú alias doménu'; +?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain.lng b/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain.lng new file mode 100644 index 000000000..b87c78812 --- /dev/null +++ b/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain.lng @@ -0,0 +1,118 @@ +<?php +$wb['parent_domain_id_txt'] = 'Parent Website'; +$wb['web_folder_txt'] = 'Web folder'; +$wb['web_folder_invalid_txt'] = 'The web folder is invalid, please choose a different one.'; +$wb['web_folder_unique_txt'] = 'The web folder is already used, please choose a different one.'; +$wb['backup_interval_txt'] = 'Backup interval'; +$wb['backup_copies_txt'] = 'Number of backup copies'; +$wb['ssl_state_txt'] = 'State'; +$wb['ssl_locality_txt'] = 'Locality'; +$wb['ssl_organisation_txt'] = 'Organisation'; +$wb['ssl_organisation_unit_txt'] = 'Organisation Unit'; +$wb['ssl_country_txt'] = 'Country'; +$wb['ssl_key_txt'] = 'SSL Key'; +$wb['ssl_request_txt'] = 'SSL Request'; +$wb['ssl_cert_txt'] = 'SSL Certificate'; +$wb['ssl_bundle_txt'] = 'SSL Bundle'; +$wb['ssl_action_txt'] = 'SSL Action'; +$wb['ssl_domain_txt'] = 'SSL Domain'; +$wb['server_id_txt'] = 'Server'; +$wb['domain_txt'] = 'Domain'; +$wb['host_txt'] = 'Hostname'; +$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.'; +$wb['type_txt'] = 'Type'; +$wb['redirect_type_txt'] = 'Redirect Type'; +$wb['redirect_path_txt'] = 'Redirect Path'; +$wb['active_txt'] = 'Active'; +$wb['document_root_txt'] = 'Documentroot'; +$wb['system_user_txt'] = 'Linux User'; +$wb['system_group_txt'] = 'Linux Group'; +$wb['ip_address_txt'] = 'IPv4-Address'; +$wb['ipv6_address_txt'] = 'IPv6-Address'; +$wb['vhost_type_txt'] = 'VHost Type'; +$wb['hd_quota_txt'] = 'Harddisk Quota'; +$wb['traffic_quota_txt'] = 'Traffic Quota'; +$wb['cgi_txt'] = 'CGI'; +$wb['ssi_txt'] = 'SSI'; +$wb['errordocs_txt'] = 'Own Error-Documents'; +$wb['subdomain_txt'] = 'Auto-Subdomain'; +$wb['ssl_txt'] = 'SSL'; +$wb['suexec_txt'] = 'SuEXEC'; +$wb['php_txt'] = 'PHP'; +$wb['client_txt'] = 'Client'; +$wb['limit_web_domain_txt'] = 'The max. number of web domains for your account is reached.'; +$wb['limit_web_aliasdomain_txt'] = 'The max. number of aliasdomains for your account is reached.'; +$wb['limit_web_subdomain_txt'] = 'The max. number of web subdomains for your account is reached.'; +$wb['apache_directives_txt'] = 'Apache Directives'; +$wb['domain_error_empty'] = 'Domain is empty.'; +$wb['domain_error_unique'] = 'There is already a website or sub / aliasdomain with this domain name.'; +$wb['domain_error_regex'] = 'Domain name invalid.'; +$wb['domain_error_wildcard'] = 'Wildcard subdomains are not allowed.'; +$wb['hd_quota_error_empty'] = 'Harddisk quota is 0 or empty.'; +$wb['traffic_quota_error_empty'] = 'Traffic quota is empty.'; +$wb['error_ssl_state_empty'] = 'SSL State is empty.'; +$wb['error_ssl_locality_empty'] = 'SSL Locality is empty.'; +$wb['error_ssl_organisation_empty'] = 'SSL Organisation is empty.'; +$wb['error_ssl_organisation_unit_empty'] = 'SSL Organisation Unit is empty.'; +$wb['error_ssl_country_empty'] = 'SSL Country is empty.'; +$wb['error_ssl_cert_empty'] = 'SSL Certificate field is empty'; +$wb['client_group_id_txt'] = 'Client'; +$wb['stats_password_txt'] = 'Webstatistics password'; +$wb['allow_override_txt'] = 'Apache AllowOverride'; +$wb['limit_web_quota_free_txt'] = 'Max. available Harddisk Quota'; +$wb['ssl_state_error_regex'] = 'Invalid SSL State. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_locality_error_regex'] = 'Invalid SSL Locality. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organisation_error_regex'] = 'Invalid SSL Organisation. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_organistaion_unit_error_regex'] = 'Invalid SSL Organisation Unit. Valid characters are: a-z, 0-9 and .,-_'; +$wb['ssl_country_error_regex'] = 'Invalid SSL Country. Valid characters are: A-Z'; +$wb['limit_traffic_quota_free_txt'] = 'Max. available Traffic Quota'; +$wb['redirect_error_regex'] = 'Invalid redirect path. Valid redirects are for example: /test/ or http://www.domain.tld/test/'; +$wb['php_open_basedir_txt'] = 'PHP open_basedir'; +$wb['traffic_quota_exceeded_txt'] = 'Traffic quota exceeded'; +$wb['ruby_txt'] = 'Ruby'; +$wb['stats_user_txt'] = 'Webstatistics username'; +$wb['stats_type_txt'] = 'Webstatistics program'; +$wb['custom_php_ini_txt'] = 'Custom php.ini settings'; +$wb['none_txt'] = 'None'; +$wb['disabled_txt'] = 'Disabled'; +$wb['no_redirect_txt'] = 'No redirect'; +$wb['no_flag_txt'] = 'No flag'; +$wb['save_certificate_txt'] = 'Save certificate'; +$wb['create_certificate_txt'] = 'Create certificate'; +$wb['delete_certificate_txt'] = 'Delete certificate'; +$wb['nginx_directives_txt'] = 'nginx Directives'; +$wb['seo_redirect_txt'] = 'SEO Redirect'; +$wb['non_www_to_www_txt'] = 'Non-www -> www'; +$wb['www_to_non_www_txt'] = 'www -> non-www'; +$wb['php_fpm_use_socket_txt'] = 'Use Socket For PHP-FPM'; +$wb['error_no_sni_txt'] = 'SNI for SSL is not activated on this server. You can enable only one SSL certificate on each IP address.'; +$wb['python_txt'] = 'Python'; +$wb['perl_txt'] = 'Perl'; +$wb['pm_max_children_txt'] = 'PHP-FPM pm.max_children'; +$wb['pm_start_servers_txt'] = 'PHP-FPM pm.start_servers'; +$wb['pm_min_spare_servers_txt'] = 'PHP-FPM pm.min_spare_servers'; +$wb['pm_max_spare_servers_txt'] = 'PHP-FPM pm.max_spare_servers'; +$wb['error_php_fpm_pm_settings_txt'] = 'Values of PHP-FPM pm settings must be as follows: pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0'; +$wb['pm_max_children_error_regex'] = 'PHP-FPM pm.max_children must be a positive integer value.'; +$wb['pm_start_servers_error_regex'] = 'PHP-FPM pm.start_servers must be a positive integer value.'; +$wb['pm_min_spare_servers_error_regex'] = 'PHP-FPM pm.min_spare_servers must be a positive integer value.'; +$wb['pm_max_spare_servers_error_regex'] = 'PHP-FPM pm.max_spare_servers must be a positive integer value.'; +$wb['hd_quota_error_regex'] = 'Harddisk quota is invalid.'; +$wb['traffic_quota_error_regex'] = 'Traffic quota is invalid.'; +$wb['fastcgi_php_version_txt'] = 'PHP Version'; +$wb['pm_txt'] = 'PHP-FPM Process Manager'; +$wb['pm_process_idle_timeout_txt'] = 'PHP-FPM pm.process_idle_timeout'; +$wb['pm_max_requests_txt'] = 'PHP-FPM pm.max_requests'; +$wb['pm_process_idle_timeout_error_regex'] = 'PHP-FPM pm.process_idle_timeout must be a positive integer value.'; +$wb['pm_max_requests_error_regex'] = 'PHP-FPM pm.max_requests must be an integer value >= 0.'; +$wb['pm_ondemand_hint_txt'] = 'Please note that you must have PHP version >= 5.3.9 in order to use the ondemand process manager. If you select ondemand for an older PHP version, PHP will not start anymore!'; +$wb['generate_password_txt'] = 'Generate Password'; +$wb['repeat_password_txt'] = 'Repeat Password'; +$wb['password_mismatch_txt'] = 'The passwords do not match.'; +$wb['password_match_txt'] = 'The passwords do match.'; +$wb['available_php_directive_snippets_txt'] = 'Available PHP Directive Snippets:'; +$wb['available_apache_directive_snippets_txt'] = 'Available Apache Directive Snippets:'; +$wb['available_nginx_directive_snippets_txt'] = 'Available nginx Directive Snippets:'; +$wb['proxy_directives_txt'] = 'Proxy Directives'; +$wb['available_proxy_directive_snippets_txt'] = 'Available Proxy Directive Snippets:'; +?> diff --git a/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain_list.lng b/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain_list.lng new file mode 100644 index 000000000..afe91af16 --- /dev/null +++ b/interface/web/sites/lib/lang/tr_web_vhost_aliasdomain_list.lng @@ -0,0 +1,8 @@ +<?php +$wb['list_head_txt'] = 'Aliasdomain'; +$wb['active_txt'] = 'Aktif'; +$wb['server_id_txt'] = 'Sunucu'; +$wb['parent_domain_id_txt'] = 'Websitesi'; +$wb['domain_txt'] = 'Aliasdomain'; +$wb['add_new_record_txt'] = 'Yeni Aliasdomain'; +?> diff --git a/interface/web/sites/lib/module.conf.php b/interface/web/sites/lib/module.conf.php index 7bb6f8e16..92e1c1274 100644 --- a/interface/web/sites/lib/module.conf.php +++ b/interface/web/sites/lib/module.conf.php @@ -43,6 +43,16 @@ if($app->auth->get_client_limit($userid, 'web_aliasdomain') != 0) 'target' => 'content', 'link' => 'sites/web_aliasdomain_list.php', 'html_id' => 'aliasdomain_list'); + + // read web config + $app->uses('getconf'); + $sys_config = $app->getconf->get_global_config('sites'); + if($sys_config['vhost_aliasdomains'] == 'y') { + $items[] = array( 'title' => "Aliasdomain (Vhost)", + 'target' => 'content', + 'link' => 'sites/web_vhost_aliasdomain_list.php', + 'html_id' => 'subdomain_list'); + } } if(count($items)) diff --git a/interface/web/sites/list/web_folder.list.php b/interface/web/sites/list/web_folder.list.php index aa23fac67..fedef22a2 100644 --- a/interface/web/sites/list/web_folder.list.php +++ b/interface/web/sites/list/web_folder.list.php @@ -82,7 +82,7 @@ $liste["item"][] = array( 'field' => "parent_domain_id", 'prefix' => "", 'suffix' => "", 'datasource' => array ( 'type' => 'SQL', - 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain') AND {AUTHSQL} ORDER BY domain", + 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND {AUTHSQL} ORDER BY domain", 'keyfield'=> 'domain_id', 'valuefield'=> 'domain' ), diff --git a/interface/web/sites/list/web_folder.list.php.bak b/interface/web/sites/list/web_folder.list.php.bak new file mode 100644 index 000000000..aa23fac67 --- /dev/null +++ b/interface/web/sites/list/web_folder.list.php.bak @@ -0,0 +1,102 @@ +<?php + +/* + Datatypes: + - INTEGER + - DOUBLE + - CURRENCY + - VARCHAR + - TEXT + - DATE +*/ + + + +// Name of the list +$liste["name"] = "web_folder"; + +// Database table +$liste["table"] = "web_folder"; + +// Index index field of the database table +$liste["table_idx"] = "web_folder_id"; + +// Search Field Prefix +$liste["search_prefix"] = "search_"; + +// Records per page +$liste["records_per_page"] = "15"; + +// Script File of the list +$liste["file"] = "web_folder_list.php"; + +// Script file of the edit form +$liste["edit_file"] = "web_folder_edit.php"; + +// Script File of the delete script +$liste["delete_file"] = "web_folder_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' => 'SQL', + 'querystring' => 'SELECT server_id,server_name FROM server WHERE {AUTHSQL} ORDER BY server_name', + 'keyfield'=> 'server_id', + 'valuefield'=> 'server_name' + ), + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "parent_domain_id", + 'datatype' => "VARCHAR", + 'filters' => array( 0 => array( 'event' => 'SHOW', + 'type' => 'IDNTOUTF8') + ), + 'formtype' => "SELECT", + 'op' => "=", + 'prefix' => "", + 'suffix' => "", + 'datasource' => array ( 'type' => 'SQL', + 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain') AND {AUTHSQL} ORDER BY domain", + 'keyfield'=> 'domain_id', + 'valuefield'=> 'domain' + ), + 'width' => "", + 'value' => ""); + +$liste["item"][] = array( 'field' => "path", + 'datatype' => "VARCHAR", + 'formtype' => "TEXT", + 'op' => "like", + 'prefix' => "%", + 'suffix' => "%", + 'width' => "", + 'value' => ""); + + +?> diff --git a/interface/web/sites/templates/web_sites_stats_list.htm b/interface/web/sites/templates/web_sites_stats_list.htm index f721dfbd2..8a1241ad7 100644 --- a/interface/web/sites/templates/web_sites_stats_list.htm +++ b/interface/web/sites/templates/web_sites_stats_list.htm @@ -30,10 +30,10 @@ <tmpl_loop name="records"> <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> <td class="tbl_col_domain"><a target="_blank" href="http://{tmpl_var name="domain"}/stats">{tmpl_var name="domain"}</a></td> - <td class="tbl_col_this_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"}</a></td> - <td class="tbl_col_last_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"}</a></td> - <td class="tbl_col_this_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"}</a></td> - <td class="tbl_col_last_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"}</a></td> + <td class="tbl_col_this_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"} MB</a></td> + <td class="tbl_col_last_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"} MB</a></td> + <td class="tbl_col_this_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"} MB</a></td> + <td class="tbl_col_last_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if><tmpl_if name='type' op='==' value='vhostalias'>vhost_alias</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"} MB</a></td> <td class="tbl_col_buttons"></td> </tr> </tmpl_loop> diff --git a/interface/web/sites/templates/web_sites_stats_list.htm.bak b/interface/web/sites/templates/web_sites_stats_list.htm.bak new file mode 100644 index 000000000..f721dfbd2 --- /dev/null +++ b/interface/web/sites/templates/web_sites_stats_list.htm.bak @@ -0,0 +1,63 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_web_sites_stats"> + + <div class="pnl_listarea"> + <fieldset><legend><tmpl_var name="list_head_txt"></legend> + <table class="list"> + <thead> + <tr class="caption"> + <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_web_traffic_this_month" scope="col"><tmpl_var name="this_month_txt"></th> + <th class="tbl_col_web_traffic_last_month" scope="col"><tmpl_var name="last_month_txt"></th> + <th class="tbl_col_web_traffic_this_year" scope="col"><tmpl_var name="this_year_txt"></th> + <th class="tbl_col_web_traffic_last_year" scope="col"><tmpl_var name="last_year_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr class="filter"> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_this_month"></td> + <td class="tbl_col_last_month"></td> + <td class="tbl_col_this_year"></td> + <td class="tbl_col_last_year"></td> + <td class="tbl_col_buttons"> + <button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','sites/web_sites_stats.php');"><span>{tmpl_var name="filter_txt"}</span></button> + </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_domain"><a target="_blank" href="http://{tmpl_var name="domain"}/stats">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_this_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_month"}</a></td> + <td class="tbl_col_last_month"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_month"}</a></td> + <td class="tbl_col_this_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="this_year"}</a></td> + <td class="tbl_col_last_year"><a href="#" onclick="loadContent('sites/web_<tmpl_if name='type' op='==' value='vhostsubdomain'>vhost_sub</tmpl_if>domain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="last_year"}</a></td> + <td class="tbl_col_buttons"></td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="6">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + <tr class="tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td class="tbl_col_domain"><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_txt"}</a></td> + <td class="tbl_col_this_month"><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_month"} MB</a></td> + <td class="tbl_col_last_month"><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_month"} MB</a></td> + <td class="tbl_col_this_year"><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_this_year"} MB</a></td> + <td class="tbl_col_last_year"><a href="#" onclick="return false;" style="font-weight:bold;">{tmpl_var name="sum_last_year"} MB</a></td> + <td class="tbl_col_buttons"></td> + </tr> + </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/interface/web/sites/templates/web_vhost_aliasdomain_advanced.htm b/interface/web/sites/templates/web_vhost_aliasdomain_advanced.htm new file mode 100644 index 000000000..85f502722 --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_advanced.htm @@ -0,0 +1,157 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" /> + <div class="ctrlHolder"> + <label for="system_user">{tmpl_var name='system_user_txt'}</label> + <label for="system_user">{tmpl_var name='system_user'}</label> + <input name="system_user" id="system_user" value="{tmpl_var name='system_user'}" type="hidden" /> + </div> + <div class="ctrlHolder"> + <label for="system_group">{tmpl_var name='system_group_txt'}</label> + <label for="system_group">{tmpl_var name='system_group'}</label> + <input name="system_group" id="system_group" value="{tmpl_var name='system_group'}" type="hidden" /> + </div> + <div class="ctrlHolder apache"> + <label for="allow_override">{tmpl_var name='allow_override_txt'}</label> + <input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="phpfpm"> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p> + <div class="multiField"> + {tmpl_var name='php_fpm_use_socket'} + </div> + </div> + <div class="ctrlHolder"> + <label for="pm">{tmpl_var name='pm_txt'}</label> + <select name="pm" id="pm" class="selectInput"> + {tmpl_var name='pm'} + </select> + </div> + <div class="ctrlHolder pm_ondemand" style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> + {tmpl_var name='pm_ondemand_hint_txt'} + </div> + <div class="ctrlHolder"> + <label for="pm_max_children">{tmpl_var name='pm_max_children_txt'}</label> + <input name="pm_max_children" id="pm_max_children" value="{tmpl_var name='pm_max_children'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_start_servers">{tmpl_var name='pm_start_servers_txt'}</label> + <input name="pm_start_servers" id="pm_start_servers" value="{tmpl_var name='pm_start_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_min_spare_servers">{tmpl_var name='pm_min_spare_servers_txt'}</label> + <input name="pm_min_spare_servers" id="pm_min_spare_servers" value="{tmpl_var name='pm_min_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_max_spare_servers">{tmpl_var name='pm_max_spare_servers_txt'}</label> + <input name="pm_max_spare_servers" id="pm_max_spare_servers" value="{tmpl_var name='pm_max_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_ondemand"> + <label for="pm_process_idle_timeout">{tmpl_var name='pm_process_idle_timeout_txt'}</label> + <input name="pm_process_idle_timeout" id="pm_process_idle_timeout" value="{tmpl_var name='pm_process_idle_timeout'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> s + </div> + <div class="ctrlHolder"> + <label for="pm_max_requests">{tmpl_var name='pm_max_requests_txt'}</label> + <input name="pm_max_requests" id="pm_max_requests" value="{tmpl_var name='pm_max_requests'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> + </div> + </div> + <div class="ctrlHolder"> + <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> + <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="30" type="text" class="textInput" style="width:400px;" /> + </div> + <div class="ctrlHolder"> + <label for="custom_php_ini">{tmpl_var name='custom_php_ini_txt'}</label> + <textarea name="custom_php_ini" id="custom_php_ini" rows='10' cols='50' style="width:400px;">{tmpl_var name='custom_php_ini'}</textarea> <b>{tmpl_var name="available_php_directive_snippets_txt"}</b><br><br> {tmpl_var name="php_directive_snippets_txt"} + </div> + <div class="ctrlHolder apache"> + <label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label> + <textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea> <b>{tmpl_var name="available_apache_directive_snippets_txt"}</b><br><br> {tmpl_var name="apache_directive_snippets_txt"} + </div> + <div class="ctrlHolder nginx"> + <label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label> + <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea> <b>{tmpl_var name="available_nginx_directive_snippets_txt"}</b><br><br> {tmpl_var name="nginx_directive_snippets_txt"}<br>----<br><b> {tmpl_var name='variables_txt'}:</b> <a href="javascript:void(0);" class="addPlaceholder">{DOCROOT}</a>, <a href="javascript:void(0);" class="addPlaceholder">{FASTCGIPASS}</a> + </div> + <div class="ctrlHolder proxy"> + <label for="proxy_directives">{tmpl_var name='proxy_directives_txt'}</label> + <textarea name="proxy_directives" id="proxy_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='proxy_directives'}</textarea> <b>{tmpl_var name="available_proxy_directive_snippets_txt"}</b><br><br> {tmpl_var name="proxy_directive_snippets_txt"} + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var webId = jQuery('input[name="id"]').val(); + var serverId; + getServerId(); + adjustForm(); + + var pm = jQuery('#pm').val(); + pmMode(pm); + jQuery('#pm').change(function(){ + pm = jQuery(this).val(); + pmMode(pm); + }); + + function pmMode(pm){ + switch(pm){ + case "static": + jQuery('.pm_dynamic').add('.pm_ondemand').hide(); + jQuery('.pm_static').show(); + break; + case "dynamic": + jQuery('.pm_static').add('.pm_ondemand').hide(); + jQuery('.pm_dynamic').show(); + break; + case "ondemand": + jQuery('.pm_static').add('.pm_dynamic').hide(); + jQuery('.pm_ondemand').show(); + break; + } + } + + function getServerId(){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { + serverId = data.serverid; + }); + } + + function adjustForm(){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + if(data.servertype == "nginx"){ + jQuery('.nginx').show(); + jQuery('.apache').hide(); + } else { + jQuery('.nginx').hide(); + jQuery('.apache').show(); + } + }); + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getphptype"}, function(data) { + if(data.phptype == "php-fpm"){ + jQuery('.phpfpm').show(); + } else { + jQuery('.phpfpm').hide(); + } + }); + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getredirecttype"}, function(data) { + if(data.redirecttype == "proxy"){ + jQuery('.proxy').show(); + } else { + jQuery('.proxy').hide(); + } + }); + } + +</script> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_backup.htm b/interface/web/sites/templates/web_vhost_aliasdomain_backup.htm new file mode 100644 index 000000000..8a3b0c3af --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_backup.htm @@ -0,0 +1,36 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Backup</legend> + <div class="ctrlHolder"> + <label for="backup_interval">{tmpl_var name='backup_interval_txt'}</label> + <select name="backup_interval" id="backup_interval" class="selectInput"> + {tmpl_var name='backup_interval'} + </select> + </div> + <div class="ctrlHolder"> + <label for="backup_copies">{tmpl_var name='backup_copies_txt'}</label> + <select name="backup_copies" id="backup_copies" class="selectInput"> + {tmpl_var name='backup_copies'} + </select> + </div> + <div class="ctrlHolder"> + <label for="backup_excludes">{tmpl_var name='backup_excludes_txt'}</label> + <input name="backup_excludes" id="backup_excludes" value="{tmpl_var name='backup_excludes'}" size="30" type="text" class="textInput" /> {tmpl_var name='backup_excludes_note_txt'} + </div> + </fieldset> + + {tmpl_var name='backup_records'} + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_edit.htm b/interface/web/sites/templates/web_vhost_aliasdomain_edit.htm new file mode 100644 index 000000000..f646b94bc --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_edit.htm @@ -0,0 +1,234 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <input type="hidden" name="server_id" id="server_id" value="{tmpl_var name='server_id_value'}" /> + <tmpl_if name="domain_option"> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='parent_domain_id_txt'}</label> + <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> + </div> + </tmpl_if> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='host_txt'}</label> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <tmpl_if name="domain_option"> + <div class="ctrlHolder"> + <label for="sel_domain">{tmpl_var name='domain_txt'}</label> + <select name="sel_domain" id="sel_domain" class="selectInput"> + {tmpl_var name='domain_option'} + </select> + </div> + <tmpl_else> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> + <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> + </div> + </tmpl_if> + <div class="ctrlHolder"> + <label for="web_folder">{tmpl_var name='web_folder_txt'}</label> + <input name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" size="30" maxlength="100" type="text" class="textInput formLengthHalf"<tmpl_if name='fixed_folder' op='==' value='y'> readonly="readonly"</tmpl_if> /> + </div> + <div class="ctrlHolder"> + <label for="traffic_quota">{tmpl_var name='traffic_quota_txt'}</label> + <input name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB <tmpl_var name='traffic_quota_exceeded_txt'> + </div> + <tmpl_if name="limit_cgi" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='cgi_txt'}</p> + <div class="multiField"> + {tmpl_var name='cgi'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_ssi" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssi_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssi'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_perl" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='perl_txt'}</p> + <div class="multiField"> + {tmpl_var name='perl'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_ruby" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='ruby_txt'}</p> + <div class="multiField"> + {tmpl_var name='ruby'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_python" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='python_txt'}</p> + <div class="multiField"> + {tmpl_var name='python'} + </div> + </div></tmpl_if> + <tmpl_if name="force_suexec" op="==" value="n"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='suexec_txt'}</p> + <div class="multiField"> + {tmpl_var name='suexec'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_hterror" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='errordocs_txt'}</p> + <div class="multiField"> + {tmpl_var name='errordocs'} + </div> + </div></tmpl_if> + + <div class="ctrlHolder"> + <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> + <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> + {tmpl_var name='subdomain'} + </select> + </div> + <tmpl_if name="limit_ssl" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssl_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssl'} + </div> + </div></tmpl_if> + <div class="ctrlHolder"> + <label for="php">{tmpl_var name='php_txt'}</label> + <select name="php" id="php" class="selectInput formLengthHalf"> + {tmpl_var name='php'} + </select> + </div> + <div class="ctrlHolder fastcgi_php_version"> + <label for="fastcgi_php_version">{tmpl_var name='fastcgi_php_version_txt'}</label> + <select name="fastcgi_php_version" id="fastcgi_php_version" class="selectInput formLengthHalf"> + {tmpl_var name='fastcgi_php_version'} + </select> + </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'}"> + + <div class="buttonHolder buttons"> + <button id="dom-edit-submit" class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}"><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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var serverId; + var clientGroupId = jQuery('#client_group_id').val(); + var serverIdDisabled = jQuery('#server_id_disabled').val(); + if(serverIdDisabled > 0){ + serverId = serverIdDisabled; + } else { + serverId = jQuery('#server_id').val(); + jQuery('#server_id').change(function(){ + serverId = $(this).val(); + adjustForm(); + reloadWebIP(); + reloadFastcgiPHPVersions(); + }); + } + reloadServerId(true); + + jQuery('#client_group_id').change(function(){ + clientGroupId = $(this).val(); + reloadWebIP(); + }); + + if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){ + jQuery('.fastcgi_php_version:hidden').show(); + } else { + jQuery('.fastcgi_php_version:visible').hide(); + } + jQuery('#php').change(function(){ + reloadFastcgiPHPVersions(); + if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm'){ + jQuery('.fastcgi_php_version:hidden').show(); + } else { + jQuery('.fastcgi_php_version:visible').hide(); + } + }); + jQuery('#parent_domain_id').change(function() { + reloadServerId(false); + }); + + function reloadServerId(noFormChange) { + var parentWebId = jQuery('#parent_domain_id').val(); + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : parentWebId, type : "getserverid"}, function(data) { + if(data.serverid) serverId = data.serverid; + adjustForm(noFormChange); + if(noFormChange) reloadFastcgiPHPVersions(noFormChange); + }); + } + + function adjustForm(noFormChange){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + if(data.servertype == "nginx"){ + var selected = jQuery('#php').val(); + jQuery('.apache').hide(); + if(selected != "no" && selected != "php-fpm") { + jQuery('#php option[value="php-fpm"]').attr('selected', 'selected').val('php-fpm'); + } + jQuery('#php option[value="fast-cgi"]').hide(); + jQuery('#php option[value="cgi"]').hide(); + jQuery('#php option[value="mod"]').hide(); + jQuery('#php option[value="suphp"]').hide(); + } else { + jQuery('.apache').show(); + jQuery('#php option[value="fast-cgi"]').show(); + jQuery('#php option[value="cgi"]').show(); + jQuery('#php option[value="mod"]').show(); + jQuery('#php option[value="suphp"]').show(); + } + if(noFormChange) { + resetFormChanged(); + jQuery('#php').addClass('no-page-form-change').change(); + jQuery('#php').removeClass('no-page-form-change'); + } else { + jQuery('#php').change(); + } + }); + } + + function reloadWebIP() { + loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId); + loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId); + } + + function reloadFastcgiPHPVersions(noFormChange) { + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) { + var options = '<option value="">Default</option>'; + var phpfastcgiselected = ''; + $.each(data, function(key, val) { + if($('#fastcgi_php_version').val() == key){ + phpfastcgiselected = ' selected="selected"'; + } else { + phpfastcgiselected = ''; + } + options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; + }); + $('#fastcgi_php_version').html(options).change(); + if(noFormChange) resetFormChanged(); + }); + } + + <tmpl_if name="readonly_tab"> + jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').bind('click mousedown', function(e) { e.preventDefault(); }).focus(function() { $(this).blur(); }); + jQuery('#dom-edit-submit').click(function() { + submitForm('pageForm','sites/web_vhost_aliasdomain_edit.php'); + }); + <tmpl_else> + jQuery('#dom-edit-submit').click(function() { + submitForm('pageForm','sites/web_vhost_aliasdomain_edit.php'); + }); + </tmpl_if> + +</script> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_list.htm b/interface/web/sites/templates/web_vhost_aliasdomain_list.htm new file mode 100644 index 000000000..f07c4f393 --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_list.htm @@ -0,0 +1,79 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_web_aliasdomain"> + + <div class="pnl_toolsarea"> + <tmpl_if name='datalog_changes_count' op='>' value='0'> + <div> + <div class="systemmonitor-state state-info"> + <div class="status"></div> + <div class="statusMsg"> + {tmpl_var name="datalog_changes_txt"} + <ul> + <tmpl_loop name="datalog_changes"> + <li><strong>{tmpl_var name="text"}:</strong> {tmpl_var name="count"}</li> + </tmpl_loop> + </ul> + {tmpl_var name="datalog_changes_end_txt"} + </div> + </div><br /> + </div> + </tmpl_if> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="button iconstxt icoAdd" type="button" onclick="loadContent('sites/web_vhost_aliasdomain_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_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> + <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></td> + <td class="tbl_col_buttons"><button type="button" class="button icons16 icoFilter" name="Filter" id="Filter" value="{tmpl_var name="filter_txt"}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name="filter_txt"}</span></button></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('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_server_id"><a href="#" onclick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_parent_domain_id"><a href="#" onclick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> + <td class="tbl_col_domain"><a href="#" onclick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_buttons"> + <a class="button icons16 icoDelete" href="javascript: del_record('sites/web_vhost_aliasdomain_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> + </td> + </tr> + </tmpl_loop> + <tmpl_unless name="records"> + <tr class="tbl_row_noresults tbl_row_<tmpl_if name='__EVEN__'}even<tmpl_else>uneven</tmpl_if>"> + <td colspan="5">{tmpl_var name='globalsearch_noresults_text_txt'}</td> + </tr> + </tmpl_unless> + </tbody> + + <tfoot> + <tr> + <td class="tbl_footer tbl_paging" colspan="5"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_redirect.htm b/interface/web/sites/templates/web_vhost_aliasdomain_redirect.htm new file mode 100644 index 000000000..d1b8b307d --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_redirect.htm @@ -0,0 +1,84 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> + <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> + {tmpl_var name='redirect_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> + <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label> + <select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf"> + {tmpl_var name='seo_redirect'} + </select> + </div> + <div class="ctrlHolder nginx"> + <label for="rewrite_rules">{tmpl_var name='rewrite_rules_txt'}</label> + <textarea name="rewrite_rules" id="rewrite_rules" rows='10' cols='50' style="width:400px;">{tmpl_var name='rewrite_rules'}</textarea> <b>{tmpl_var name="allowed_rewrite_rule_directives_txt"}</b><br><br> break<br> if<br> return<br> rewrite<br> set<br><br> <a href="http://wiki.nginx.org/HttpRewriteModule" target="_blank">http://wiki.nginx.org/HttpRewriteModule</a> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var webId = jQuery('input[name="id"]').val(); + var serverId; + getServerId(webId); + + function getServerId(webId){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { + serverId = data.serverid; + adjustForm(serverId); + }); + } + + function adjustForm(serverId){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + var selected = jQuery('#redirect_type').val(); + if(data.servertype == "nginx"){ + jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); + jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); + + jQuery('#redirect_type option[value="R"]').hide(); + jQuery('#redirect_type option[value="L"]').hide(); + jQuery('#redirect_type option[value="R,L"]').hide(); + jQuery('#redirect_type option[value="R=301,L"]').hide(); + if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent" && selected != "proxy") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); + jQuery('.nginx').show(); + } else { + jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="proxy"]').attr('disabled','disabled'); + + jQuery('#redirect_type option[value="last"]').hide(); + jQuery('#redirect_type option[value="break"]').hide(); + jQuery('#redirect_type option[value="redirect"]').hide(); + jQuery('#redirect_type option[value="permanent"]').hide(); + jQuery('#redirect_type option[value="proxy"]').hide(); + if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); + jQuery('.nginx').hide(); + } + }); + } + +</script> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_ssl.htm b/interface/web/sites/templates/web_vhost_aliasdomain_ssl.htm new file mode 100644 index 000000000..e442f3d0f --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_ssl.htm @@ -0,0 +1,68 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="ssl_state">{tmpl_var name='ssl_state_txt'}</label> + <input name="ssl_state" id="ssl_state" value="{tmpl_var name='ssl_state'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_locality">{tmpl_var name='ssl_locality_txt'}</label> + <input name="ssl_locality" id="ssl_locality" value="{tmpl_var name='ssl_locality'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_organisation">{tmpl_var name='ssl_organisation_txt'}</label> + <input name="ssl_organisation" id="ssl_organisation" value="{tmpl_var name='ssl_organisation'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_organisation_unit">{tmpl_var name='ssl_organisation_unit_txt'}</label> + <input name="ssl_organisation_unit" id="ssl_organisation_unit" value="{tmpl_var name='ssl_organisation_unit'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_country">{tmpl_var name='ssl_country_txt'}</label> + <select name="ssl_country" id="ssl_country" class="selectInput flags"> + {tmpl_var name='ssl_country'} + </select> + </div> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='ssl_domain_txt'}</label> + <select name="ssl_domain" id="ssl_domain" class="selectInput"> + {tmpl_var name='ssl_domain'} + </select> + </div> + <div class="ctrlHolder"> + <label for="ssl_request">{tmpl_var name='ssl_key_txt'}</label> + <textarea name="ssl_key" id="ssl_key" rows='10' cols='30'>{tmpl_var name='ssl_key'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_request">{tmpl_var name='ssl_request_txt'}</label> + <textarea name="ssl_request" id="ssl_request" rows='10' cols='30'>{tmpl_var name='ssl_request'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_cert">{tmpl_var name='ssl_cert_txt'}</label> + <textarea name="ssl_cert" id="ssl_cert" rows='10' cols='30'>{tmpl_var name='ssl_cert'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_bundle">{tmpl_var name='ssl_bundle_txt'}</label> + <textarea name="ssl_bundle" id="ssl_bundle" rows='10' cols='30'>{tmpl_var name='ssl_bundle'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_action">{tmpl_var name='ssl_action_txt'}</label> + <select name="ssl_action" id="ssl_action" class="selectInput formLengthHalf"> + {tmpl_var name='ssl_action'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/sites/templates/web_vhost_aliasdomain_stats.htm b/interface/web/sites/templates/web_vhost_aliasdomain_stats.htm new file mode 100644 index 000000000..d4b06bde0 --- /dev/null +++ b/interface/web/sites/templates/web_vhost_aliasdomain_stats.htm @@ -0,0 +1,37 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='stats_user_txt'}</p><p class="value">admin</p> + </div> + <div class="ctrlHolder"> + <label for="stats_password">{tmpl_var name='stats_password_txt'}</label> + <input name="stats_password" id="stats_password" value="{tmpl_var name='stats_password'}" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> <a href="javascript:void(0);" onclick="generatePassword('stats_password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> + </div> + <div class="ctrlHolder"> + <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> + <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> + </div> + <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> + <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> + <div class="ctrlHolder"> + <label for="stats_type">{tmpl_var name='stats_type_txt'}</label> + <select name="stats_type" id="stats_type" class="selectInput" > + {tmpl_var name='stats_type'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onclick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php index b220011dd..e618a4349 100644 --- a/interface/web/sites/web_aliasdomain_edit.php +++ b/interface/web/sites/web_aliasdomain_edit.php @@ -57,10 +57,10 @@ class page_action extends tform_actions { // we will check only users, not admins if($_SESSION["s"]["user"]["typ"] == 'user') { - if(!$app->tform->checkClientLimit('limit_web_aliasdomain', "type = 'alias'")) { + if(!$app->tform->checkClientLimit('limit_web_aliasdomain',"(type = 'alias' OR type = 'vhostalias')")) { $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]); } - if(!$app->tform->checkResellerLimit('limit_web_aliasdomain', "type = 'alias'")) { + if(!$app->tform->checkResellerLimit('limit_web_aliasdomain',"(type = 'alias' OR type = 'vhostalias')")) { $app->error('Reseller: '.$app->tform->wordbook["limit_web_aliasdomain_txt"]); } } diff --git a/interface/web/sites/web_aliasdomain_edit.php.bak b/interface/web/sites/web_aliasdomain_edit.php.bak new file mode 100644 index 000000000..b220011dd --- /dev/null +++ b/interface/web/sites/web_aliasdomain_edit.php.bak @@ -0,0 +1,191 @@ +<?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/web_aliasdomain.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('sites'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,tools_sites'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + var $parent_domain_record; + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_web_aliasdomain', "type = 'alias'")) { + $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_web_aliasdomain', "type = 'alias'")) { + $app->error('Reseller: '.$app->tform->wordbook["limit_web_aliasdomain_txt"]); + } + } + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + /* + * Now we have to check, if we should use the domain-module to select the domain + * or not + */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + /* + * The domain-module is in use. + */ + $domains = $app->tools_sites->getDomainModuleDomains(); + $domain_select = ''; + if(is_array($domains) && sizeof($domains) > 0) { + /* We have domains in the list, so create the drop-down-list */ + foreach( $domains as $domain) { + $domain_select .= "<option value=" . $domain['domain_id'] ; + if ($domain['domain'] == $this->dataRecord["domain"]) { + $domain_select .= " selected"; + } + $domain_select .= ">" . $app->functions->idn_decode($domain['domain']) . "</option>\r\n"; + } + } + else { + /* + * We have no domains in the domain-list. This means, we can not add ANY new domain. + * To avoid, that the variable "domain_option" is empty and so the user can + * free enter a domain, we have to create a empty option! + */ + $domain_select .= "<option value=''></option>\r\n"; + } + $app->tpl->setVar("domain_option", $domain_select); + } + + if($_SESSION["s"]["user"]["typ"] == 'admin') { + // Directive Snippets + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$proxy_directive_snippet['snippet'].'</pre></a> '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt", $proxy_directive_snippets_txt); + } + + parent::onShowEnd(); + + } + + function onSubmit() { + global $app, $conf; + + /* check if the domain module is used - and check if the selected domain can be used! */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']); + if(!$domain_check) { + // invalid domain selected + $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />"; + } else { + $this->dataRecord['domain'] = $domain_check; + } + } + + // nginx: if redirect type is proxy and redirect path is no URL, display error + if($this->dataRecord["redirect_type"] == 'proxy' && substr($this->dataRecord['redirect_path'], 0, 1) == '/'){ + $app->tform->errorMessage .= $app->tform->lng("error_proxy_requires_url")."<br />"; + } + + // Get the record of the parent domain + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ? AND ".$app->tform->getAuthSQL('r'), @$this->dataRecord["parent_domain_id"]); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + + // Set a few fixed values + $this->dataRecord["type"] = 'alias'; + $this->dataRecord["server_id"] = $parent_domain["server_id"]; + //$this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"]; + + $this->parent_domain_record = $parent_domain; + + //* make sure that the domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + $app->db->query('UPDATE web_domain SET sys_groupid = ? WHERE domain_id = ?', $this->parent_domain_record['sys_groupid'], $this->id); + + } + + function onAfterUpdate() { + global $app, $conf; + + //* Check if parent domain has been changed + if($this->dataRecord['parent_domain_id'] != $this->oldDataRecord['parent_domain_id']) { + + //* Update the domain owner + $app->db->query('UPDATE web_domain SET sys_groupid = ? WHERE domain_id = ?', $this->parent_domain_record['sys_groupid'], $this->id); + + //* Update the old website, so that the vhost alias gets removed + //* We force the update by inserting a transaction record without changes manually. + $old_website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = ?', $this->oldDataRecord['domain_id']); + $app->db->datalogSave('web_domain', 'UPDATE', 'domain_id', $this->oldDataRecord['parent_domain_id'], $old_website, $old_website, true); + } + + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index 2d9c77440..c793cd0eb 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -992,7 +992,7 @@ class page_action extends tform_actions { $records = $app->db->queryAllRecords("SELECT domain_id, `domain`, `type`, `web_folder` FROM web_domain WHERE parent_domain_id = ".$this->id); foreach($records as $rec) { $update_columns = "sys_userid = '".$web_rec['sys_userid']."', sys_groupid = '".$web_rec['sys_groupid']."'"; - if($rec['type'] == 'vhostsubdomain') { + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { $php_open_basedir = str_replace("[website_path]/web", $document_root.'/'.$rec['web_folder'], $web_config["php_open_basedir"]); $php_open_basedir = str_replace("[website_domain]/web", $rec['domain'].'/'.$rec['web_folder'], $php_open_basedir); $php_open_basedir = str_replace("[website_path]", $document_root, $php_open_basedir); @@ -1017,7 +1017,7 @@ class page_action extends tform_actions { //* If the domain name has been changed, we will have to change all subdomains + APS instances if(!empty($this->dataRecord["domain"]) && !empty($this->oldDataRecord["domain"]) && $this->dataRecord["domain"] != $this->oldDataRecord["domain"]) { - $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE (type = 'subdomain' OR type = 'vhostsubdomain') AND domain LIKE '%.".$app->db->quote($this->oldDataRecord["domain"])."'"); + $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE (type = 'subdomain' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND domain LIKE '%.".$app->db->quote($this->oldDataRecord["domain"])."'"); foreach($records as $rec) { $subdomain = $app->db->quote(str_replace($this->oldDataRecord["domain"], $this->dataRecord["domain"], $rec['domain'])); $app->db->datalogUpdate('web_domain', "domain = '".$subdomain."'", 'domain_id', $rec['domain_id']); @@ -1077,9 +1077,9 @@ class page_action extends tform_actions { unset($backup_interval); } - //* Change vhost subdomain ip/ipv6 if domain ip/ipv6 has changed + //* Change vhost subdomain and alias ip/ipv6 if domain ip/ipv6 has changed if(isset($this->dataRecord['ip_address']) && ($this->dataRecord['ip_address'] != $this->oldDataRecord['ip_address'] || $this->dataRecord['ipv6_address'] != $this->oldDataRecord['ipv6_address'])) { - $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".$this->id); + $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE (type = 'vhostsubdomain' OR type = 'vhostalias') AND parent_domain_id = ".$this->id); foreach($records as $rec) { $app->db->datalogUpdate('web_domain', "ip_address = '".$app->db->quote($web_rec['ip_address'])."', ipv6_address = '".$app->db->quote($web_rec['ipv6_address'])."'", 'domain_id', $rec['domain_id']); } diff --git a/interface/web/sites/web_domain_edit.php.bak b/interface/web/sites/web_domain_edit.php.bak new file mode 100644 index 000000000..2d9c77440 --- /dev/null +++ b/interface/web/sites/web_domain_edit.php.bak @@ -0,0 +1,1114 @@ +<?php +/* +Copyright (c) 2007 - 2009, 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/web_domain.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('sites'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,tools_sites'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + //* Returna a "3/2/1" path hash from a numeric id '123' + function id_hash($id, $levels) { + $hash = "" . $id % 10 ; + $id /= 10 ; + $levels -- ; + while ( $levels > 0 ) { + $hash .= "/" . $id % 10 ; + $id /= 10 ; + $levels-- ; + } + return $hash; + } + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_web_domain', "type = 'vhost'")) { + $app->error($app->tform->wordbook["limit_web_domain_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_web_domain', "type = 'vhost'")) { + $app->error('Reseller: '.$app->tform->wordbook["limit_web_domain_txt"]); + } + + // Get the limits of the client + $client_group_id = $_SESSION["s"]["user"]["default_group"]; + $client = $app->db->queryOneRecord("SELECT client.web_servers FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + $web_servers = explode(',', $client['web_servers']); + $app->tpl->setVar("server_id_value", $web_servers[0]); + unset($web_servers); + } + $app->tform->formDef['tabs']['domain']['readonly'] = false; + + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + $app->uses('ini_parser,getconf'); + + $read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl'); + + //* Client: If the logged in user is not admin and has no sub clients (no reseller) + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$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.limit_web_domain, client.web_servers, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + $client['web_servers_ids'] = explode(',', $client['web_servers']); + + $only_one_server = count($client['web_servers_ids']) === 1; + $app->tpl->setVar('only_one_server', $only_one_server); + + //* Get global web config + foreach ($client['web_servers_ids'] as $web_server_id) { + $web_config[$web_server_id] = $app->getconf->get_server_config($web_server_id, 'web'); + } + + $sql = "SELECT server_id, server_name FROM server WHERE server_id IN (" . $client['web_servers'] . ");"; + $web_servers = $app->db->queryAllRecords($sql); + + $options_web_servers = ""; + + foreach ($web_servers as $web_server) { + $options_web_servers .= "<option value='$web_server[server_id]'>$web_server[server_name]</option>"; + } + + $app->tpl->setVar("server_id", $options_web_servers); + unset($options_web_servers); + + if($this->id > 0) { + if(!isset($this->dataRecord["server_id"])){ + $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $this->dataRecord["server_id"] = $tmp["server_id"]; + unset($tmp); + } + $server_id = intval(@$this->dataRecord["server_id"]); + } else { + $server_id = (isset($web_servers[0])) ? intval($web_servers[0]) : 0; + } + + //* Fill the IPv4 select field with the IP addresses that are allowed for this client + $sql = "SELECT ip_address FROM server_ip WHERE server_id IN (" . $client['web_servers'] . ") AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $ips = $app->db->queryAllRecords($sql); + $ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ip_address", $ip_select); + unset($tmp); + unset($ips); + + //* Fill the IPv6 select field with the IP addresses that are allowed for this client + $sql = "SELECT ip_address FROM server_ip WHERE server_id IN (" . $client['web_servers'] . ") AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $ips = $app->db->queryAllRecords($sql); + $ip_select = "<option value=''></option>"; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ipv6_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ipv6_address", $ip_select); + unset($tmp); + unset($ips); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $app->functions->intval($this->dataRecord['server_id']) : $app->functions->intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + if($this->dataRecord['php'] == 'fast-cgi'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $app->functions->intval($this->dataRecord['server_id']) : $app->functions->intval($client['default_webserver']))." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + // add limits to template to be able to hide settings + foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); + + + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.client_id, client.limit_web_domain, client.default_webserver, client.contact_name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname, sys_group.name, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + //* Get global web config + foreach ($client['web_servers_ids'] as $web_server_id) { + $web_config[$web_server_id] = $app->getconf->get_server_config($web_server_id, 'web'); + } + + $sql = "SELECT server_id, server_name FROM server WHERE server_id IN (" . $client['web_servers'] . ");"; + $web_servers = $app->db->queryAllRecords($sql); + + $options_web_servers = ""; + + foreach ($web_servers as $web_server) { + $options_web_servers .= "<option value='$web_server[server_id]'>$web_server[server_name]</option>"; + } + + $app->tpl->setVar("server_id", $options_web_servers); + unset($options_web_servers); + + // Fill the client select field + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY sys_group.name"; + $records = $app->db->queryAllRecords($sql); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($client['client_id'])); + $client_select = '<option value="'.$tmp['groupid'].'">'.$client['contactname'].'</option>'; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($records)) { + $selected_client_group_id = 0; // needed to get list of PHP versions + foreach( $records as $rec) { + if(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $rec["groupid"]; + $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + if($selected == 'SELECTED') $selected_client_group_id = $rec["groupid"]; + $client_select .= "<option value='$rec[groupid]' $selected>$rec[contactname]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id", $client_select); + + //* Fill the IPv4 select field with the IP addresses that are allowed for this client + $sql = "SELECT ip_address FROM server_ip WHERE server_id IN (" . $client['web_servers'] . ") AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $ips = $app->db->queryAllRecords($sql); + $ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ip_address", $ip_select); + unset($tmp); + unset($ips); + + //* Fill the IPv6 select field with the IP addresses that are allowed for this client + $sql = "SELECT ip_address FROM server_ip WHERE server_id IN (" . $client['web_servers'] . ") AND ip_type = 'IPv6' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $ips = $app->db->queryAllRecords($sql); + $ip_select = "<option value=''></option>"; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ipv6_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ipv6_address", $ip_select); + unset($tmp); + unset($ips); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ".$app->functions->intval($selected_client_group_id)); + //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")"; + $sql_where = " AND (client_id = 0 OR client_id = ".intval($selected_client['client_id']).")"; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".($this->id > 0 ? $app->functions->intval($this->dataRecord['server_id']) : $app->functions->intval($client['default_webserver'])).$sql_where); + } + if($this->dataRecord['php'] == 'fast-cgi') { + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".($this->id > 0 ? $app->functions->intval($this->dataRecord['server_id']) : $app->functions->intval($client['default_webserver'])).$sql_where); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + // add limits to template to be able to hide settings + foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); + + $sites_config = $app->getconf->get_global_config('sites'); + if($sites_config['reseller_can_use_options']) { + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($php_directive_snippet['snippet']).'</pre></a> '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt", $php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($apache_directive_snippet['snippet']).'</pre></a> '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt", $apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($nginx_directive_snippet['snippet']).'</pre></a> '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt", $nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($proxy_directive_snippet['snippet']).'</pre></a> '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt", $proxy_directive_snippets_txt); + } + + //* Admin: If the logged in user is admin + } else { + + // The user is admin, so we fill in all IP addresses of the server + if($this->id > 0) { + if(!isset($this->dataRecord["server_id"])){ + $tmp = $app->db->queryOneRecord("SELECT server_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $this->dataRecord["server_id"] = $tmp["server_id"]; + unset($tmp); + } + $server_id = intval(@$this->dataRecord["server_id"]); + } else { + // Get the first server ID + $tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1"); + $server_id = intval($tmp['server_id']); + } + + //* get global web config + $web_config = $app->getconf->get_server_config($server_id, 'web'); + + //* Fill the IPv4 select field + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv4' AND server_id = ".$app->functions->intval($server_id); + $ips = $app->db->queryAllRecords($sql); + $ip_select = ($web_config['enable_ip_wildcard'] == 'y')?"<option value='*'>*</option>":""; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ip_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ip_address", $ip_select); + unset($tmp); + unset($ips); + + //* Fill the IPv6 select field + $sql = "SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND server_id = ".$app->functions->intval($server_id); + $ips = $app->db->queryAllRecords($sql); + $ip_select = "<option value=''></option>"; + //$ip_select = ""; + if(is_array($ips)) { + foreach( $ips as $ip) { + $selected = ($ip["ip_address"] == $this->dataRecord["ipv6_address"])?'SELECTED':''; + $ip_select .= "<option value='$ip[ip_address]' $selected>$ip[ip_address]</option>\r\n"; + } + } + $app->tpl->setVar("ipv6_address", $ip_select); + unset($tmp); + unset($ips); + + // Fill the client select field + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND sys_group.client_id > 0 ORDER BY sys_group.name"; + $clients = $app->db->queryAllRecords($sql); + $client_select = "<option value='0'></option>"; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($clients)) { + $selected_client_group_id = 0; // needed to get list of PHP versions + foreach($clients as $client) { + if(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $client["groupid"]; + //$selected = @($client["groupid"] == $tmp_data_record["sys_groupid"])?'SELECTED':''; + $selected = @(is_array($this->dataRecord) && ($client["groupid"] == $this->dataRecord['client_group_id'] || $client["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + if($selected == 'SELECTED') $selected_client_group_id = $client["groupid"]; + $client_select .= "<option value='$client[groupid]' $selected>$client[contactname]</option>\r\n"; + } + } + $app->tpl->setVar("client_group_id", $client_select); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + $selected_client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE groupid = ".$app->functions->intval($selected_client_group_id)); + //$sql_where = " AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id']." OR client_id = ".intval($selected_client['client_id']).")"; + $sql_where = " AND (client_id = 0 OR client_id = ".$app->functions->intval($selected_client['client_id']).")"; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id".$sql_where); + } + if($this->dataRecord['php'] == 'fast-cgi') { + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$app->functions->intval($server_id).$sql_where); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y')); + + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($php_directive_snippet['snippet']).'</pre></a> '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt", $php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($apache_directive_snippet['snippet']).'</pre></a> '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt", $apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($nginx_directive_snippet['snippet']).'</pre></a> '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt", $nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($proxy_directive_snippet['snippet']).'</pre></a> '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt", $proxy_directive_snippets_txt); + } + + $ssl_domain_select = ''; + $tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".$this->id); + $ssl_domains = array($tmp["domain"], 'www.'.$tmp["domain"], '*.'.$tmp["domain"]); + if(is_array($ssl_domains)) { + foreach( $ssl_domains as $ssl_domain) { + $selected = ($ssl_domain == $this->dataRecord['ssl_domain'])?'SELECTED':''; + $ssl_domain_select .= "<option value='$ssl_domain' $selected>$ssl_domain</option>\r\n"; + } + } + $app->tpl->setVar("ssl_domain", $ssl_domain_select); + unset($ssl_domain_select); + unset($ssl_domains); + unset($ssl_domain); + + if($this->id > 0) { + //* we are editing a existing record + $app->tpl->setVar("edit_disabled", 1); + $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); + } else { + $app->tpl->setVar("edit_disabled", 0); + } + + $tmp_txt = ($this->dataRecord['traffic_quota_lock'] == 'y')?'<b>('.$app->tform->lng('traffic_quota_exceeded_txt').')</b>':''; + $app->tpl->setVar("traffic_quota_exceeded_txt", $tmp_txt); + + /* + * Now we have to check, if we should use the domain-module to select the domain + * or not + */ + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + /* + * The domain-module is in use. + */ + $domains = $app->tools_sites->getDomainModuleDomains(); + $domain_select = ''; + if(is_array($domains) && sizeof($domains) > 0) { + /* We have domains in the list, so create the drop-down-list */ + foreach( $domains as $domain) { + $domain_select .= "<option value=" . $domain['domain_id'] ; + if ($domain['domain'] == $this->dataRecord["domain"]) { + $domain_select .= " selected"; + } + $domain_select .= ">" . $app->functions->idn_decode($domain['domain']) . "</option>\r\n"; + } + } + else { + /* + * We have no domains in the domain-list. This means, we can not add ANY new domain. + * To avoid, that the variable "domain_option" is empty and so the user can + * free enter a domain, we have to create a empty option! + */ + $domain_select .= "<option value=''></option>\r\n"; + } + $app->tpl->setVar("domain_option", $domain_select); + } + + // check for configuration errors in sys_datalog + if($this->id > 0) { + $datalog = $app->db->queryOneRecord("SELECT sys_datalog.error, sys_log.tstamp FROM sys_datalog, sys_log WHERE sys_datalog.dbtable = 'web_domain' AND sys_datalog.dbidx = 'domain_id:".$app->functions->intval($this->id)."' AND sys_datalog.datalog_id = sys_log.datalog_id AND sys_log.message = CONCAT('Processed datalog_id ',sys_log.datalog_id) ORDER BY sys_datalog.tstamp DESC"); + if(is_array($datalog) && !empty($datalog)){ + if(trim($datalog['error']) != ''){ + $app->tpl->setVar("config_error_msg", nl2br(htmlentities($datalog['error']))); + $app->tpl->setVar("config_error_tstamp", date($app->lng('conf_format_datetime'), $datalog['tstamp'])); + } + } + } + + parent::onShowEnd(); + } + + function onShowEdit() { + global $app; + if($app->tform->checkPerm($this->id, 'riud')) $app->tform->formDef['tabs']['domain']['readonly'] = false; + parent::onShowEdit(); + } + + function onSubmit() { + global $app, $conf; + + /* check if the domain module is used - and check if the selected domain can be used! */ + if($app->tform->getCurrentTab() == 'domain') { + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']); + if(!$domain_check) { + // invalid domain selected + $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />"; + } else { + $this->dataRecord['domain'] = $domain_check; + } + } + } + + // nginx: if redirect type is proxy and redirect path is no URL, display error + //if($this->dataRecord["redirect_type"] == 'proxy' && substr($this->dataRecord['redirect_path'],0,1) == '/'){ + // $app->tform->errorMessage .= $app->tform->lng("error_proxy_requires_url")."<br />"; + //} + + // Set a few fixed values + $this->dataRecord["parent_domain_id"] = 0; + $this->dataRecord["type"] = 'vhost'; + $this->dataRecord["vhost_type"] = 'name'; + + $read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl'); + + + 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_traffic_quota, limit_web_domain, web_servers, parent_client_id, limit_web_quota, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + $client['web_servers_ids'] = explode(',', $client['web_servers']); + + if($client['limit_cgi'] != 'y') $this->dataRecord['cgi'] = '-'; + if($client['limit_ssi'] != 'y') $this->dataRecord['ssi'] = '-'; + if($client['limit_perl'] != 'y') $this->dataRecord['perl'] = '-'; + if($client['limit_ruby'] != 'y') $this->dataRecord['ruby'] = '-'; + if($client['limit_python'] != 'y') $this->dataRecord['python'] = '-'; + if($client['force_suexec'] == 'y') $this->dataRecord['suexec'] = 'y'; + if($client['limit_hterror'] != 'y') $this->dataRecord['errordocs'] = '-'; + if($client['limit_wildcard'] != 'y' && $this->dataRecord['subdomain'] == '*') $this->dataRecord['subdomain'] = '-'; + if($client['limit_ssl'] != 'y') $this->dataRecord['ssl'] = '-'; + + // only generate quota and traffic warnings if value has changed + if($this->id > 0) { + $old_web_values = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + } else { + $old_web_values = array(); + } + + //* Check the website quota of the client + if(isset($_POST["hd_quota"]) && $client["limit_web_quota"] >= 0 && $_POST["hd_quota"] != $old_web_values["hd_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(hd_quota) as webquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND type = 'vhost' AND ".$app->tform->getAuthSQL('u')); + $webquota = $tmp["webquota"]; + $new_web_quota = $app->functions->intval($this->dataRecord["hd_quota"]); + if(($webquota + $new_web_quota > $client["limit_web_quota"]) || ($new_web_quota < 0 && $client["limit_web_quota"] >= 0)) { + $max_free_quota = floor($client["limit_web_quota"] - $webquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_web_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["hd_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + + //* Check the traffic quota of the client + if(isset($_POST["traffic_quota"]) && $client["limit_traffic_quota"] > 0 && $_POST["traffic_quota"] != $old_web_values["traffic_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(traffic_quota) as trafficquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); + $trafficquota = $tmp["trafficquota"]; + $new_traffic_quota = $app->functions->intval($this->dataRecord["traffic_quota"]); + if(($trafficquota + $new_traffic_quota > $client["limit_traffic_quota"]) || ($new_traffic_quota < 0 && $client["limit_traffic_quota"] >= 0)) { + $max_free_quota = floor($client["limit_traffic_quota"] - $trafficquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_traffic_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["traffic_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + + if($client['parent_client_id'] > 0) { + // Get the limits of the reseller + $reseller = $app->db->queryOneRecord("SELECT limit_traffic_quota, limit_web_domain, web_servers, limit_web_quota FROM client WHERE client_id = ".$client['parent_client_id']); + + //* Check the website quota of the client + if(isset($_POST["hd_quota"]) && $reseller["limit_web_quota"] >= 0 && $_POST["hd_quota"] != $old_web_values["hd_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(hd_quota) as webquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND type = 'vhost' AND ".$app->tform->getAuthSQL('u')); + $webquota = $tmp["webquota"]; + $new_web_quota = $app->functions->intval($this->dataRecord["hd_quota"]); + if(($webquota + $new_web_quota > $reseller["limit_web_quota"]) || ($new_web_quota < 0 && $reseller["limit_web_quota"] >= 0)) { + $max_free_quota = floor($reseller["limit_web_quota"] - $webquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_web_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["hd_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + + //* Check the traffic quota of the client + if(isset($_POST["traffic_quota"]) && $reseller["limit_traffic_quota"] > 0 && $_POST["traffic_quota"] != $old_web_values["traffic_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(traffic_quota) as trafficquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); + $trafficquota = $tmp["trafficquota"]; + $new_traffic_quota = $app->functions->intval($this->dataRecord["traffic_quota"]); + if(($trafficquota + $new_traffic_quota > $reseller["limit_traffic_quota"]) || ($new_traffic_quota < 0 && $reseller["limit_traffic_quota"] >= 0)) { + $max_free_quota = floor($reseller["limit_traffic_quota"] - $trafficquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_traffic_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["traffic_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + } + + // 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, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $this->dataRecord["server_id"] = $tmp["server_id"]; + + // set the settings to current if not provided (or cleared due to limits) + if($this->dataRecord['cgi'] == '-') $this->dataRecord['cgi'] = $tmp['cgi']; + if($this->dataRecord['ssi'] == '-') $this->dataRecord['ssi'] = $tmp['ssi']; + if($this->dataRecord['perl'] == '-') $this->dataRecord['perl'] = $tmp['perl']; + if($this->dataRecord['ruby'] == '-') $this->dataRecord['ruby'] = $tmp['ruby']; + if($this->dataRecord['python'] == '-') $this->dataRecord['python'] = $tmp['python']; + if($this->dataRecord['suexec'] == '-') $this->dataRecord['suexec'] = $tmp['suexec']; + if($this->dataRecord['errordocs'] == '-') $this->dataRecord['errordocs'] = $tmp['errordocs']; + if($this->dataRecord['subdomain'] == '-') $this->dataRecord['subdomain'] = $tmp['subdomain']; + if($this->dataRecord['ssl'] == '-') $this->dataRecord['ssl'] = $tmp['ssl']; + + unset($tmp); + // When the record is inserted + } else { + //* display an error if chosen server is not allowed for this client + if (!is_array($client['web_servers_ids']) || !in_array($this->dataRecord['server_id'], $client['web_servers_ids'])) { + $app->error($app->tform->wordbook['server_chosen_not_ok']); + } + + // Check if the user may add another web_domain + if($client["limit_web_domain"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM web_domain WHERE sys_groupid = $client_group_id and type = 'vhost'"); + if($tmp["number"] >= $client["limit_web_domain"]) { + $app->error($app->tform->wordbook["limit_web_domain_txt"]); + } + } + + } + + // Clients may not set the client_group_id, so we unset them if user is not a admin and the client is not a reseller + if(!$app->auth->has_clients($_SESSION['s']['user']['userid'])) unset($this->dataRecord["client_group_id"]); + } + + //* make sure that the email domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + + //* get the server config for this server + $app->uses("getconf"); + if($this->id > 0){ + $web_rec = $app->tform->getDataRecord($this->id); + $server_id = $web_rec["server_id"]; + } else { + // Get the first server ID + $tmp = $app->db->queryOneRecord("SELECT server_id FROM server WHERE web_server = 1 ORDER BY server_name LIMIT 0,1"); + $server_id = intval($tmp['server_id']); + } + $web_config = $app->getconf->get_server_config($app->functions->intval(isset($this->dataRecord["server_id"]) ? $this->dataRecord["server_id"] : $server_id), 'web'); + //* Check for duplicate ssl certs per IP if SNI is disabled + if(isset($this->dataRecord['ssl']) && $this->dataRecord['ssl'] == 'y' && $web_config['enable_sni'] != 'y') { + $sql = "SELECT count(domain_id) as number FROM web_domain WHERE `ssl` = 'y' AND ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."' and domain_id != ".$this->id; + $tmp = $app->db->queryOneRecord($sql); + if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("error_no_sni_txt"); + } + + // Check if pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0 + if(isset($this->dataRecord['pm_max_children']) && $this->dataRecord['pm'] == 'dynamic') { + if($app->functions->intval($this->dataRecord['pm_max_children'], true) >= $app->functions->intval($this->dataRecord['pm_max_spare_servers'], true) && $app->functions->intval($this->dataRecord['pm_max_spare_servers'], true) >= $app->functions->intval($this->dataRecord['pm_start_servers'], true) && $app->functions->intval($this->dataRecord['pm_start_servers'], true) >= $app->functions->intval($this->dataRecord['pm_min_spare_servers'], true) && $app->functions->intval($this->dataRecord['pm_min_spare_servers'], true) > 0){ + + } else { + $app->tform->errorMessage .= $app->tform->lng("error_php_fpm_pm_settings_txt").'<br>'; + } + } + + // Check rewrite rules + $server_type = $web_config['server_type']; + + if($server_type == 'nginx' && isset($this->dataRecord['rewrite_rules']) && trim($this->dataRecord['rewrite_rules']) != '') { + $rewrite_rules = trim($this->dataRecord['rewrite_rules']); + $rewrites_are_valid = true; + // use this counter to make sure all curly brackets are properly closed + $if_level = 0; + // Make sure we only have Unix linebreaks + $rewrite_rules = str_replace("\r\n", "\n", $rewrite_rules); + $rewrite_rules = str_replace("\r", "\n", $rewrite_rules); + $rewrite_rule_lines = explode("\n", $rewrite_rules); + if(is_array($rewrite_rule_lines) && !empty($rewrite_rule_lines)){ + foreach($rewrite_rule_lines as $rewrite_rule_line){ + // ignore comments + if(substr(ltrim($rewrite_rule_line), 0, 1) == '#') continue; + // empty lines + if(trim($rewrite_rule_line) == '') continue; + // rewrite + if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue; + // if + if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $rewrite_rule_line)){ + $if_level += 1; + continue; + } + // if - check for files, directories, etc. + if(preg_match('@^\s*if\s+\(\s*\!?-(f|d|e|x)\s+\S+\s*\)\s*\{\s*$@', $rewrite_rule_line)){ + $if_level += 1; + continue; + } + // break + if(preg_match('@^\s*break\s*;\s*$@', $rewrite_rule_line)){ + continue; + } + // return code [ text ] + if(preg_match('@^\s*return\s+\d\d\d.*;\s*$@', $rewrite_rule_line)) continue; + // return code URL + // return URL + if(preg_match('@^\s*return(\s+\d\d\d)?\s+(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*\@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*\s*;\s*$@', $rewrite_rule_line)) continue; + // set + if(preg_match('@^\s*set\s+\$\S+\s+\S+\s*;\s*$@', $rewrite_rule_line)) continue; + // closing curly bracket + if(trim($rewrite_rule_line) == '}'){ + $if_level -= 1; + continue; + } + $rewrites_are_valid = false; + break; + } + } + + if(!$rewrites_are_valid || $if_level != 0){ + $app->tform->errorMessage .= $app->tform->lng("invalid_rewrite_rules_txt").'<br>'; + } + } + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + // make sure that the record belongs to the clinet group and not the admin group when admin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); + } + + // Get configuration for the web system + $app->uses("getconf"); + $web_rec = $app->tform->getDataRecord($this->id); + $web_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'web'); + $document_root = str_replace("[website_id]", $this->id, $web_config["website_path"]); + $document_root = str_replace("[website_idhash_1]", $this->id_hash($page_form->id, 1), $document_root); + $document_root = str_replace("[website_idhash_2]", $this->id_hash($page_form->id, 1), $document_root); + $document_root = str_replace("[website_idhash_3]", $this->id_hash($page_form->id, 1), $document_root); + $document_root = str_replace("[website_idhash_4]", $this->id_hash($page_form->id, 1), $document_root); + + // get the ID of the client + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = $client_group_id"); + $client_id = $app->functions->intval($client["client_id"]); + } else { + //$client_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".$app->functions->intval($this->dataRecord["client_group_id"])); + $client_id = $app->functions->intval($client["client_id"]); + } + + // Set the values for document_root, system_user and system_group + $system_user = $app->db->quote('web'.$this->id); + $system_group = $app->db->quote('client'.$client_id); + $document_root = str_replace("[client_id]", $client_id, $document_root); + $document_root = str_replace("[client_idhash_1]", $this->id_hash($client_id, 1), $document_root); + $document_root = str_replace("[client_idhash_2]", $this->id_hash($client_id, 2), $document_root); + $document_root = str_replace("[client_idhash_3]", $this->id_hash($client_id, 3), $document_root); + $document_root = str_replace("[client_idhash_4]", $this->id_hash($client_id, 4), $document_root); + $document_root = $app->db->quote($document_root); + $php_open_basedir = str_replace("[website_path]", $document_root, $web_config["php_open_basedir"]); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $web_rec['domain'], $php_open_basedir)); + $htaccess_allow_override = $app->db->quote($web_config["htaccess_allow_override"]); + $added_date = date($app->lng('conf_format_dateshort')); + $added_by = $app->db->quote($_SESSION['s']['user']['username']); + + $sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir', added_date = '$added_date', added_by = '$added_by' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + + function onBeforeUpdate () { + global $app, $conf; + + //* Check if the server has been changed + // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway + if($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + if (isset($this->dataRecord["server_id"])) { + $rec = $app->db->queryOneRecord("SELECT server_id from web_domain WHERE domain_id = ".$this->id); + if($rec['server_id'] != $this->dataRecord["server_id"]) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Server can not be changed.'); + $this->dataRecord["server_id"] = $rec['server_id']; + } + unset($rec); + } + //* If the user is neither admin nor reseller + } else { + //* We do not allow users to change a domain which has been created by the admin + $rec = $app->db->queryOneRecord("SELECT sys_perm_group, domain, ip_address, ipv6_address from web_domain WHERE domain_id = ".$this->id); + if(isset($this->dataRecord["domain"]) && $rec['domain'] != $this->dataRecord["domain"] && $app->tform->checkPerm($this->id, 'u')) { + //* Add a error message and switch back to old server + $app->tform->errorMessage .= $app->lng('The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'); + $this->dataRecord["domain"] = $rec['domain']; + } + if(isset($this->dataRecord["ip_address"]) && $rec['ip_address'] != $this->dataRecord["ip_address"] && $rec['sys_perm_group'] != 'riud') { + $this->dataRecord["ip_address"] = $rec['ip_address']; + } + if(isset($this->dataRecord["ipv6_address"]) && $rec['ipv6_address'] != $this->dataRecord["ipv6_address"] && $rec['sys_perm_group'] != 'riud') { + $this->dataRecord["ipv6_address"] = $rec['ipv6_address']; + } + unset($rec); + } + + //* Check that all fields for the SSL cert creation are filled + if(isset($this->dataRecord['ssl_action']) && $this->dataRecord['ssl_action'] == 'create') { + if($this->dataRecord['ssl_state'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_state_empty').'<br />'; + if($this->dataRecord['ssl_locality'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_locality_empty').'<br />'; + if($this->dataRecord['ssl_organisation'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_empty').'<br />'; + if($this->dataRecord['ssl_organisation_unit'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_unit_empty').'<br />'; + if($this->dataRecord['ssl_country'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_country_empty').'<br />'; + } + + if(isset($this->dataRecord['ssl_action']) && $this->dataRecord['ssl_action'] == 'save') { + if(trim($this->dataRecord['ssl_cert']) == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_cert_empty').'<br />'; + } + + } + + function onAfterUpdate() { + global $app, $conf; + + // make sure that the record belongs to the client group and not the admin group when a admin inserts it + // also make sure that the user can not delete domain created by a admin + if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { + $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE domain_id = ".$this->id); + } + if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { + $client_group_id = $app->functions->intval($this->dataRecord["client_group_id"]); + $app->db->query("UPDATE web_domain SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE domain_id = ".$this->id); + } + + // Get configuration for the web system + $app->uses("getconf"); + $web_rec = $app->tform->getDataRecord($this->id); + $web_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'web'); + $document_root = str_replace("[website_id]", $this->id, $web_config["website_path"]); + $page_formid = isset($page_form->id) ? $page_form->id : ''; + $document_root = str_replace("[website_idhash_1]", $this->id_hash($page_formid, 1), $document_root); + $document_root = str_replace("[website_idhash_2]", $this->id_hash($page_formid, 1), $document_root); + $document_root = str_replace("[website_idhash_3]", $this->id_hash($page_formid, 1), $document_root); + $document_root = str_replace("[website_idhash_4]", $this->id_hash($page_formid, 1), $document_root); + + // get the ID of the client + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = $client_group_id"); + $client_id = $app->functions->intval($client["client_id"]); + } elseif (isset($this->dataRecord["client_group_id"])) { + $client_group_id = $this->dataRecord["client_group_id"]; + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".$app->functions->intval(@$this->dataRecord["client_group_id"])); + $client_id = $app->functions->intval($client["client_id"]); + } else { + $client_group_id = $web_rec['sys_groupid']; + $client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".$app->functions->intval($client_group_id)); + $client_id = $app->functions->intval($client["client_id"]); + } + + if(($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) && isset($this->dataRecord["client_group_id"]) && $this->dataRecord["client_group_id"] != $this->oldDataRecord["sys_groupid"]) { + // Set the values for document_root, system_user and system_group + $system_user = $app->db->quote('web'.$this->id); + $system_group = $app->db->quote('client'.$client_id); + $document_root = str_replace("[client_id]", $client_id, $document_root); + $document_root = str_replace("[client_idhash_1]", $this->id_hash($client_id, 1), $document_root); + $document_root = str_replace("[client_idhash_2]", $this->id_hash($client_id, 2), $document_root); + $document_root = str_replace("[client_idhash_3]", $this->id_hash($client_id, 3), $document_root); + $document_root = str_replace("[client_idhash_4]", $this->id_hash($client_id, 4), $document_root); + $document_root = $app->db->quote($document_root); + + $sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root' WHERE domain_id = ".$this->id; + //$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group' WHERE domain_id = ".$this->id; + $app->db->query($sql); + + // Update the FTP user(s) too + $records = $app->db->queryAllRecords("SELECT ftp_user_id FROM ftp_user WHERE parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('ftp_user', "sys_userid = '".$app->functions->intval($web_rec['sys_userid'])."', sys_groupid = '".$app->functions->intval($web_rec['sys_groupid'])."', uid = '$system_user', gid = '$system_group', dir = '$document_root'", 'ftp_user_id', $app->functions->intval($rec['ftp_user_id'])); + } + unset($records); + unset($rec); + + // Update the Shell user(s) too + $records = $app->db->queryAllRecords("SELECT shell_user_id FROM shell_user WHERE parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('shell_user', "sys_userid = '".$web_rec['sys_userid']."', sys_groupid = '".$web_rec['sys_groupid']."', puser = '$system_user', pgroup = '$system_group', dir = '$document_root'", 'shell_user_id', $app->functions->intval($rec['shell_user_id'])); + } + unset($records); + unset($rec); + + //* Update all subdomains and alias domains + $records = $app->db->queryAllRecords("SELECT domain_id, `domain`, `type`, `web_folder` FROM web_domain WHERE parent_domain_id = ".$this->id); + foreach($records as $rec) { + $update_columns = "sys_userid = '".$web_rec['sys_userid']."', sys_groupid = '".$web_rec['sys_groupid']."'"; + if($rec['type'] == 'vhostsubdomain') { + $php_open_basedir = str_replace("[website_path]/web", $document_root.'/'.$rec['web_folder'], $web_config["php_open_basedir"]); + $php_open_basedir = str_replace("[website_domain]/web", $rec['domain'].'/'.$rec['web_folder'], $php_open_basedir); + $php_open_basedir = str_replace("[website_path]", $document_root, $php_open_basedir); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $rec['domain'], $php_open_basedir)); + + $update_columns .= ", document_root = '".$document_root."', `php_open_basedir` = '".$php_open_basedir."'"; + } + $app->db->datalogUpdate('web_domain', $update_columns, 'domain_id', $rec['domain_id']); + } + unset($records); + unset($rec); + + //* Update all databases + $records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('web_database', "sys_userid = '".$app->functions->intval($web_rec['sys_userid'])."', sys_groupid = '".$app->functions->intval($web_rec['sys_groupid'])."'", 'database_id', $app->functions->intval($rec['database_id'])); + } + unset($records); + unset($rec); + + } + + //* If the domain name has been changed, we will have to change all subdomains + APS instances + if(!empty($this->dataRecord["domain"]) && !empty($this->oldDataRecord["domain"]) && $this->dataRecord["domain"] != $this->oldDataRecord["domain"]) { + $records = $app->db->queryAllRecords("SELECT domain_id,domain FROM web_domain WHERE (type = 'subdomain' OR type = 'vhostsubdomain') AND domain LIKE '%.".$app->db->quote($this->oldDataRecord["domain"])."'"); + foreach($records as $rec) { + $subdomain = $app->db->quote(str_replace($this->oldDataRecord["domain"], $this->dataRecord["domain"], $rec['domain'])); + $app->db->datalogUpdate('web_domain', "domain = '".$subdomain."'", 'domain_id', $rec['domain_id']); + } + unset($records); + unset($rec); + unset($subdomain); + + // Update APS instances + $records = $app->db->queryAllRecords("SELECT id, instance_id FROM aps_instances_settings WHERE name = 'main_domain' AND value = '".$app->db->quote($this->oldDataRecord["domain"])."'"); + if(is_array($records) && !empty($records)){ + foreach($records as $rec){ + $app->db->datalogUpdate('aps_instances_settings', "value = '".$app->db->quote($this->dataRecord["domain"])."'", 'id', $rec['id']); + // Reinstall of package needed? + //$app->db->datalogUpdate('aps_instances', "instance_status = '1'", 'id', $rec['instance_id']); + } + } + unset($records); + unset($rec); + } + + //* Set allow_override if empty + if($web_rec['allow_override'] == '') { + $sql = "UPDATE web_domain SET allow_override = '".$app->db->quote($web_config["htaccess_allow_override"])."' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + + //* Set php_open_basedir if empty or domain or client has been changed + if(empty($web_rec['php_open_basedir']) || + (!empty($this->dataRecord["domain"]) && !empty($this->oldDataRecord["domain"]) && $this->dataRecord["domain"] != $this->oldDataRecord["domain"])) { + $php_open_basedir = $web_rec['php_open_basedir']; + $php_open_basedir = $app->db->quote(str_replace($this->oldDataRecord['domain'], $web_rec['domain'], $php_open_basedir)); + $sql = "UPDATE web_domain SET php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + if(empty($web_rec['php_open_basedir']) || + (isset($this->dataRecord["client_group_id"]) && $this->dataRecord["client_group_id"] != $this->oldDataRecord["sys_groupid"])) { + $document_root = $app->db->quote(str_replace("[client_id]", $client_id, $document_root)); + $php_open_basedir = str_replace("[website_path]", $document_root, $web_config["php_open_basedir"]); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $web_rec['domain'], $php_open_basedir)); + $sql = "UPDATE web_domain SET php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + + //* Change database backup options when web backup options have been changed + if(isset($this->dataRecord['backup_interval']) && ($this->dataRecord['backup_interval'] != $this->oldDataRecord['backup_interval'] || $this->dataRecord['backup_copies'] != $this->oldDataRecord['backup_copies'])) { + //* Update all databases + $backup_interval = $app->functions->intval($this->dataRecord['backup_interval']); + $backup_copies = $app->functions->intval($this->dataRecord['backup_copies']); + $records = $app->db->queryAllRecords("SELECT database_id FROM web_database WHERE parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('web_database', "backup_interval = '$backup_interval', backup_copies = '$backup_copies'", 'database_id', $rec['database_id']); + } + unset($records); + unset($rec); + unset($backup_copies); + unset($backup_interval); + } + + //* Change vhost subdomain ip/ipv6 if domain ip/ipv6 has changed + if(isset($this->dataRecord['ip_address']) && ($this->dataRecord['ip_address'] != $this->oldDataRecord['ip_address'] || $this->dataRecord['ipv6_address'] != $this->oldDataRecord['ipv6_address'])) { + $records = $app->db->queryAllRecords("SELECT domain_id FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".$this->id); + foreach($records as $rec) { + $app->db->datalogUpdate('web_domain', "ip_address = '".$app->db->quote($web_rec['ip_address'])."', ipv6_address = '".$app->db->quote($web_rec['ipv6_address'])."'", 'domain_id', $rec['domain_id']); + } + unset($records); + unset($rec); + } + } + + function onAfterDelete() { + global $app, $conf; + + // Delete the sub and alias domains + $child_domains = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$this->id); + foreach($child_domains as $d) { + // Saving record to datalog when db_history enabled + if($app->tform->formDef["db_history"] == 'yes') { + $app->tform->datalogSave('DELETE', $d["domain_id"], $d, array()); + } + + $app->db->query("DELETE FROM web_domain WHERE domain_id = ".$app->functions->intval($d["domain_id"])." LIMIT 0,1"); + } + unset($child_domains); + unset($d); + + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/sites/web_sites_stats.php b/interface/web/sites/web_sites_stats.php index 9bf96cb6a..b6e3a3da4 100644 --- a/interface/web/sites/web_sites_stats.php +++ b/interface/web/sites/web_sites_stats.php @@ -180,7 +180,7 @@ class list_action extends listform_actions { } $list = new list_action; -$list->SQLExtWhere = "(web_domain.type = 'vhost' or web_domain.type = 'vhostsubdomain')"; +$list->SQLExtWhere = "(web_domain.type = 'vhost' or web_domain.type = 'vhostsubdomain' or web_domain.type = 'vhostalias')"; $list->SQLOrderBy = 'ORDER BY web_domain.domain'; $list->onLoad(); diff --git a/interface/web/sites/web_sites_stats.php.bak b/interface/web/sites/web_sites_stats.php.bak new file mode 100644 index 000000000..9bf96cb6a --- /dev/null +++ b/interface/web/sites/web_sites_stats.php.bak @@ -0,0 +1,188 @@ +<?php +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/web_sites_stats.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('sites'); + +$app->uses('functions'); + +$app->load('listform_actions'); + +class list_action extends listform_actions { + + private $sum_this_month = 0; + private $sum_this_year = 0; + private $sum_last_month = 0; + private $sum_last_year = 0; + + function prepareDataRow($rec) + { + global $app; + + $rec = $app->listform->decode($rec); + + //* Alternating datarow colors + $this->DataRowColor = ($this->DataRowColor == '#FFFFFF') ? '#EEEEEE' : '#FFFFFF'; + $rec['bgcolor'] = $this->DataRowColor; + + //* Set the statistics colums + //** Traffic of the current month + $tmp_year = date('Y'); + $tmp_month = date('m'); + $tmp_rec = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year' AND MONTH(traffic_date) = '$tmp_month'"); +// $rec['this_month'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); +// $this->sum_this_month += ($tmp_rec['t']/1024/1024); + $rec['this_month'] = $app->functions->formatBytes($tmp_rec['t']); + $this->sum_this_month += $app->functions->formatBytes($tmp_rec['t']); + + + //** Traffic of the current year + $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year'"); +// $rec['this_year'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); +// $this->sum_this_year += ($tmp_rec['t']/1024/1024); + $rec['this_year'] = $app->functions->formatBytes($tmp_rec['t']); + $this->sum_this_year += $app->functions->formatBytes($tmp_rec['t']); + + //** Traffic of the last month + $tmp_year = date('Y', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); + $tmp_month = date('m', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); + $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year' AND MONTH(traffic_date) = '$tmp_month'"); +// $rec['last_month'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); +// $this->sum_last_month += ($tmp_rec['t']/1024/1024); + $rec['last_month'] = $app->functions->formatBytes($tmp_rec['t']); + $this->sum_last_month += $app->functions->formatBytes($tmp_rec['t']); + + //** Traffic of the last year + $tmp_year = date('Y', mktime(0, 0, 0, date("m"), date("d"), date("Y")-1)); + $tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year'"); +// $rec['last_year'] = number_format($tmp_rec['t']/1024/1024, 0, '.', ' '); +// $this->sum_last_year += ($tmp_rec['t']/1024/1024); + $rec['last_year'] = $app->functions->formatBytes($tmp_rec['t']); + $this->sum_last_year += $app->functions->formatBytes($tmp_rec['t']); + + //* The variable "id" contains always the index variable + $rec['id'] = $rec[$this->idx_key]; + + return $rec; + } + + function onShowEnd() + { + global $app; + + $app->tpl->setVar('sum_this_month', number_format($app->functions->intval($this->sum_this_month), 0, '.', ' ')); + $app->tpl->setVar('sum_this_year', number_format($app->functions->intval($this->sum_this_year), 0, '.', ' ')); + $app->tpl->setVar('sum_last_month', number_format($app->functions->intval($this->sum_last_month), 0, '.', ' ')); + $app->tpl->setVar('sum_last_year', number_format($app->functions->intval($this->sum_last_year), 0, '.', ' ')); + $app->tpl->setVar('sum_txt', $app->listform->lng('sum_txt')); + + $app->tpl_defaults(); + $app->tpl->pparse(); + } + + function getQueryString() { + global $app; + $sql_where = ''; + + //* Generate the search sql + if($app->listform->listDef['auth'] != 'no') { + if($_SESSION['s']['user']['typ'] == "admin") { + $sql_where = ''; + } else { + $sql_where = $app->tform->getAuthSQL('r', $app->listform->listDef['table']).' and'; + //$sql_where = $app->tform->getAuthSQL('r').' and'; + } + } + if($this->SQLExtWhere != '') { + $sql_where .= ' '.$this->SQLExtWhere.' and'; + } + + $sql_where = $app->listform->getSearchSQL($sql_where); + if($app->listform->listDef['join_sql']) $sql_where .= ' AND '.$app->listform->listDef['join_sql']; + $app->tpl->setVar($app->listform->searchValues); + + $order_by_sql = $this->SQLOrderBy; + + //* Generate SQL for paging + $limit_sql = $app->listform->getPagingSQL($sql_where); + $app->tpl->setVar('paging', $app->listform->pagingHTML); + + $extselect = ''; + $join = ''; + + if(!empty($_SESSION['search'][$_SESSION['s']['module']['name'].$app->listform->listDef["name"].$app->listform->listDef['table']]['order'])){ + $order = str_replace(' DESC', '', $_SESSION['search'][$_SESSION['s']['module']['name'].$app->listform->listDef["name"].$app->listform->listDef['table']]['order']); + list($tmp_table, $order) = explode('.', $order); + if($order == 'web_traffic_last_month'){ + $tmp_year = date('Y', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); + $tmp_month = date('m', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); + $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year' AND MONTH(wt.traffic_date) = '$tmp_month'"; + $order_by_sql = str_replace($app->listform->listDef['table'].'.web_traffic_last_month', 'calctraffic', $order_by_sql); + $order_by_sql = "GROUP BY domain ".$order_by_sql; + } elseif($order == 'web_traffic_this_month'){ + $tmp_year = date('Y'); + $tmp_month = date('m'); + $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year' AND MONTH(wt.traffic_date) = '$tmp_month'"; + $order_by_sql = str_replace($app->listform->listDef['table'].'.web_traffic_this_month', 'calctraffic', $order_by_sql); + $order_by_sql = "GROUP BY domain ".$order_by_sql; + } elseif($order == 'web_traffic_last_year'){ + $tmp_year = date('Y', mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); + $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year'"; + $order_by_sql = str_replace($app->listform->listDef['table'].'.web_traffic_last_year', 'calctraffic', $order_by_sql); + $order_by_sql = "GROUP BY domain ".$order_by_sql; + } elseif($order == 'web_traffic_this_year'){ + $tmp_year = date('Y'); + $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year'"; + $order_by_sql = str_replace($app->listform->listDef['table'].'.web_traffic_this_year', 'calctraffic', $order_by_sql); + $order_by_sql = "GROUP BY domain ".$order_by_sql; + } + } + + if($this->SQLExtSelect != '') { + if(substr($this->SQLExtSelect, 0, 1) != ',') $this->SQLExtSelect = ','.$this->SQLExtSelect; + $extselect .= $this->SQLExtSelect; + } + + $table_selects = array(); + $table_selects[] = trim($app->listform->listDef['table']).'.*'; + $app->listform->listDef['additional_tables'] = trim($app->listform->listDef['additional_tables']); + if($app->listform->listDef['additional_tables'] != ''){ + $additional_tables = explode(',', $app->listform->listDef['additional_tables']); + foreach($additional_tables as $additional_table){ + $table_selects[] = trim($additional_table).'.*'; + } + } + $select = implode(', ', $table_selects); + + $sql = 'SELECT '.$select.$extselect.' FROM '.$app->listform->listDef['table'].($app->listform->listDef['additional_tables'] != ''? ','.$app->listform->listDef['additional_tables'] : '')."$join WHERE $sql_where $order_by_sql $limit_sql"; + return $sql; + } + +} + +$list = new list_action; +$list->SQLExtWhere = "(web_domain.type = 'vhost' or web_domain.type = 'vhostsubdomain')"; +$list->SQLOrderBy = 'ORDER BY web_domain.domain'; +$list->onLoad(); + + +?> diff --git a/interface/web/sites/web_vhost_aliasdomain_del.php b/interface/web/sites/web_vhost_aliasdomain_del.php new file mode 100644 index 000000000..2d288dd83 --- /dev/null +++ b/interface/web/sites/web_vhost_aliasdomain_del.php @@ -0,0 +1,73 @@ +<?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 +******************************************/ + +$list_def_file = "list/web_vhost_aliasdomain.list.php"; +$tform_def_file = "form/web_vhost_aliasdomain.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('sites'); + +$app->uses('tpl,tform,tform_actions'); +$app->load("tform_actions"); +class page_action extends tform_actions { + + function onBeforeDelete() { + global $app; $conf; + + //* Delete all web folders + $records = $app->db->queryAllRecords("SELECT web_folder_id FROM web_folder WHERE parent_domain_id = '".$app->functions->intval($this->id)."'"); + foreach($records as $rec) { + //* Delete all web folder users + $records2 = $app->db->queryAllRecords("SELECT web_folder_user_id FROM web_folder_user WHERE web_folder_id = '".$app->functions->intval($rec['web_folder_id'])."'"); + foreach($records2 as $rec2) { + $app->db->datalogDelete('web_folder_user', 'web_folder_user_id', $rec2['web_folder_user_id']); + } + $app->db->datalogDelete('web_folder', 'web_folder_id', $rec['web_folder_id']); + } + + } + +} + +$page = new page_action; +$page->onDelete(); + +?> diff --git a/interface/web/sites/web_vhost_aliasdomain_edit.php b/interface/web/sites/web_vhost_aliasdomain_edit.php new file mode 100644 index 000000000..2c63881c4 --- /dev/null +++ b/interface/web/sites/web_vhost_aliasdomain_edit.php @@ -0,0 +1,666 @@ +<?php +/* +Copyright (c) 2007 - 2009, 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/web_vhost_aliasdomain.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('sites'); + +// Loading classes +$app->uses('tpl,tform,tform_actions,tools_sites'); +$app->load('tform_actions'); + +class page_action extends tform_actions { + + //* Returna a "3/2/1" path hash from a numeric id '123' + function id_hash($id, $levels) { + $hash = "" . $id % 10 ; + $id /= 10 ; + $levels -- ; + while ( $levels > 0 ) { + $hash .= "/" . $id % 10 ; + $id /= 10 ; + $levels-- ; + } + return $hash; + } + + function onShowNew() { + global $app, $conf; + + // we will check only users, not admins + if($_SESSION["s"]["user"]["typ"] == 'user') { + if(!$app->tform->checkClientLimit('limit_web_aliasdomain', "(type = 'alias' OR type = 'vhostalias')")) { + $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]); + } + if(!$app->tform->checkResellerLimit('limit_web_aliasdomain', "(type = 'alias' OR type = 'vhostalias')")) { + $app->error('Reseller: '.$app->tform->wordbook["limit_web_aliasdomain_txt"]); + } + } + parent::onShowNew(); + } + + function onShowEnd() { + global $app, $conf; + + $app->uses('ini_parser,getconf'); + + $read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl'); + + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"])); + + //* Client: If the logged in user is not admin and has no sub clients (no reseller) + if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.limit_web_aliasdomain, client.default_webserver, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + //* Get global web config + $web_config = $app->getconf->get_server_config($parent_domain['server_id'], 'web'); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".$app->functions->intval($parent_domain['server_id'])." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + if($this->dataRecord['php'] == 'fast-cgi'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$app->functions->intval($parent_domain['server_id'])." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + // add limits to template to be able to hide settings + foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); + + + //* Reseller: If the logged in user is not admin and has sub clients (is a reseller) + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.client_id, client.limit_web_aliasdomain, client.default_webserver, client.contact_name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname, sys_group.name, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + //* Get global web config + $web_config = $app->getconf->get_server_config($parent_domain['server_id'], 'web'); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".$app->functions->intval($parent_domain['server_id'])." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + if($this->dataRecord['php'] == 'fast-cgi') { + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$app->functions->intval($parent_domain['server_id'])." AND (client_id = 0 OR client_id=".$app->functions->intval($_SESSION['s']['user']['client_id']).")"); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + // add limits to template to be able to hide settings + foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); + + $sites_config = $app->getconf->get_global_config('sites'); + if($sites_config['reseller_can_use_options']) { + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$php_directive_snippet['snippet'].'</pre></a> '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt", $php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$apache_directive_snippet['snippet'].'</pre></a> '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt", $apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$nginx_directive_snippet['snippet'].'</pre></a> '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt", $nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$proxy_directive_snippet['snippet'].'</pre></a> '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt", $proxy_directive_snippets_txt); + } + + //* Admin: If the logged in user is admin + } else { + + //* get global web config + $web_config = $app->getconf->get_server_config($parent_domain['server_id'], 'web'); + + //PHP Version Selection (FastCGI) + $server_type = 'apache'; + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx' && $this->dataRecord['php'] == 'fast-cgi') $this->dataRecord['php'] = 'php-fpm'; + if($this->dataRecord['php'] == 'php-fpm'){ + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = " . $app->functions->intval($parent_domain['server_id'])); + } + if($this->dataRecord['php'] == 'fast-cgi') { + $php_records = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = " . $app->functions->intval($parent_domain['server_id'])); + } + $php_select = "<option value=''>Default</option>"; + if(is_array($php_records) && !empty($php_records)) { + foreach( $php_records as $php_record) { + if($this->dataRecord['php'] == 'php-fpm'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } + $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; + $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; + } + } + $app->tpl->setVar("fastcgi_php_version", $php_select); + unset($php_records); + + foreach($read_limits as $limit) $app->tpl->setVar($limit, ($limit == 'force_suexec' ? 'n' : 'y')); + + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$php_directive_snippet['snippet'].'</pre></a> '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt", $php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$apache_directive_snippet['snippet'].'</pre></a> '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt", $apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$nginx_directive_snippet['snippet'].'</pre></a> '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt", $nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$proxy_directive_snippet['snippet'].'</pre></a> '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt", $proxy_directive_snippets_txt); + } + + $ssl_domain_select = ''; + $tmp = $app->db->queryOneRecord("SELECT domain FROM web_domain WHERE domain_id = ".$this->id); + $ssl_domains = array($tmp["domain"], 'www.'.$tmp["domain"]); + if(is_array($ssl_domains)) { + foreach( $ssl_domains as $ssl_domain) { + $selected = ($ssl_domain == $this->dataRecord['ssl_domain'])?'SELECTED':''; + $ssl_domain_select .= "<option value='$ssl_domain' $selected>$ssl_domain</option>\r\n"; + } + } + + if($this->id > 0) { + $app->tpl->setVar('fixed_folder', 'y'); + $app->tpl->setVar('server_id_value', $parent_domain['server_id']); + } else { + $app->tpl->setVar('fixed_folder', 'n'); + $app->tpl->setVar('server_id_value', $parent_domain['server_id']); + } + + $app->tpl->setVar("ssl_domain", $ssl_domain_select); + unset($ssl_domain_select); + unset($ssl_domains); + unset($ssl_domain); + + $tmp_txt = ($this->dataRecord['traffic_quota_lock'] == 'y')?'<b>('.$app->tform->lng('traffic_quota_exceeded_txt').')</b>':''; + $app->tpl->setVar("traffic_quota_exceeded_txt", $tmp_txt); + + + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + /* + * The domain-module is in use. + */ + $domains = $app->tools_sites->getDomainModuleDomains(); + $domain_select = ''; + $selected_domain = ''; + if(is_array($domains) && sizeof($domains) > 0) { + /* We have domains in the list, so create the drop-down-list */ + foreach( $domains as $domain) { + $domain_select .= "<option value=" . $domain['domain_id'] ; + if ('.' . $domain['domain'] == substr($this->dataRecord["domain"], -strlen($domain['domain']) - 1)) { + $domain_select .= " selected"; + $selected_domain = $domain['domain']; + } + $domain_select .= ">" . $app->functions->idn_decode($domain['domain']) . "</option>\r\n"; + } + } + else { + /* + * We have no domains in the domain-list. This means, we can not add ANY new domain. + * To avoid, that the variable "domain_option" is empty and so the user can + * free enter a domain, we have to create a empty option! + */ + $domain_select .= "<option value=''></option>\r\n"; + } + $app->tpl->setVar("domain_option", $domain_select); + $this->dataRecord['domain'] = substr($this->dataRecord["domain"], 0, strlen($this->dataRecord['domain']) - strlen($selected_domain) - 1); + } else { + + // remove the parent domain part of the domain name before we show it in the text field. + $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"], '', $this->dataRecord["domain"]); + } + $app->tpl->setVar("domain", $this->dataRecord["domain"]); + + parent::onShowEnd(); + } + + function onSubmit() { + global $app, $conf; + + // Get the record of the parent domain + if(!@$this->dataRecord["parent_domain_id"] && $this->id) { + $tmp = $app->db->queryOneRecord("SELECT parent_domain_id FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + if($tmp) $this->dataRecord["parent_domain_id"] = $tmp['parent_domain_id']; + unset($tmp); + } + + $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]) . " AND ".$app->tform->getAuthSQL('r')); + if(!$parent_domain || $parent_domain['domain_id'] != @$this->dataRecord['parent_domain_id']) $app->tform->errorMessage .= $app->tform->lng("no_domain_perm"); + + // Set a few fixed values + $this->dataRecord["type"] = 'vhostalias'; + $this->dataRecord["server_id"] = $parent_domain["server_id"]; + $this->dataRecord["ip_address"] = $parent_domain["ip_address"]; + $this->dataRecord["ipv6_address"] = $parent_domain["ipv6_address"]; + $this->dataRecord["client_group_id"] = $parent_domain["client_group_id"]; + $this->dataRecord["vhost_type"] = 'name'; + + $this->parent_domain_record = $parent_domain; + + $read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl'); + + if($app->tform->getCurrentTab() == 'domain') { + + /* check if the domain module is used - and check if the selected domain can be used! */ + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['sel_domain']); + if(!$domain_check) { + // invalid domain selected + $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />"; + } else { + $this->dataRecord['domain'] = $this->dataRecord['domain'] . '.' . $domain_check; + } + } else { + $this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"]; + } + + + $this->dataRecord['web_folder'] = strtolower($this->dataRecord['web_folder']); + if(substr($this->dataRecord['web_folder'], 0, 1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 1); + if(substr($this->dataRecord['web_folder'], -1) === '/') $this->dataRecord['web_folder'] = substr($this->dataRecord['web_folder'], 0, -1); + $forbidden_folders = array('', 'cgi-bin', 'log', 'private', 'ssl', 'tmp', 'webdav'); + $check_folder = strtolower($this->dataRecord['web_folder']); + if(substr($check_folder, 0, 1) === '/') $check_folder = substr($check_folder, 1); // strip / at beginning to check against forbidden entries + if(strpos($check_folder, '/') !== false) $check_folder = substr($check_folder, 0, strpos($check_folder, '/')); // get the first part of the path to check it + if(in_array($check_folder, $forbidden_folders)) { + $app->tform->errorMessage .= $app->tform->lng("web_folder_invalid_txt")."<br>"; + } + + // vhostaliasdomains do not have a quota of their own + $this->dataRecord["hd_quota"] = 0; + + // check for duplicate folder usage + /* + $check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostalias' AND `parent_domain_id` = '" . $app->functions->intval($this->dataRecord['parent_domain_id']) . "' AND `web_folder` = '" . $app->db->quote($this->dataRecord['web_folder']) . "' AND `domain_id` != '" . $app->functions->intval($this->id) . "'"); + if($check && $check['cnt'] > 0) { + $app->tform->errorMessage .= $app->tform->lng("web_folder_unique_txt")."<br>"; + } + */ + } else { + $this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"]; + } + + if($_SESSION["s"]["user"]["typ"] != 'admin') { + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT limit_traffic_quota, limit_web_aliasdomain, default_webserver, parent_client_id, limit_web_quota, client." . implode(", client.", $read_limits) . " FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + if($client['limit_cgi'] != 'y') $this->dataRecord['cgi'] = '-'; + if($client['limit_ssi'] != 'y') $this->dataRecord['ssi'] = '-'; + if($client['limit_perl'] != 'y') $this->dataRecord['perl'] = '-'; + if($client['limit_ruby'] != 'y') $this->dataRecord['ruby'] = '-'; + if($client['limit_python'] != 'y') $this->dataRecord['python'] = '-'; + if($client['force_suexec'] != 'n') $this->dataRecord['suexec'] = 'y'; + if($client['limit_hterror'] != 'y') $this->dataRecord['errordocs'] = '-'; + if($client['limit_wildcard'] != 'y' && $this->dataRecord['subdomain'] == '*') $this->dataRecord['subdomain'] = '-'; + if($client['limit_ssl'] != 'y') $this->dataRecord['ssl'] = '-'; + + // only generate quota and traffic warnings if value has changed + if($this->id > 0) { + $old_web_values = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + } else { + $old_web_values = $_POST; + } + + //* Check the traffic quota of the client + if(isset($_POST["traffic_quota"]) && $client["limit_traffic_quota"] > 0 && $_POST["traffic_quota"] != $old_web_values["traffic_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(traffic_quota) as trafficquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); + $trafficquota = $tmp["trafficquota"]; + $new_traffic_quota = $app->functions->intval($this->dataRecord["traffic_quota"]); + if(($trafficquota + $new_traffic_quota > $client["limit_traffic_quota"]) || ($new_traffic_quota < 0 && $client["limit_traffic_quota"] >= 0)) { + $max_free_quota = floor($client["limit_traffic_quota"] - $trafficquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_traffic_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["traffic_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + + if($client['parent_client_id'] > 0) { + // Get the limits of the reseller + $reseller = $app->db->queryOneRecord("SELECT limit_traffic_quota, limit_web_aliasdomain, default_webserver, limit_web_quota FROM client WHERE client_id = ".$app->functions->intval($client['parent_client_id'])); + + //* Check the traffic quota of the client + if(isset($_POST["traffic_quota"]) && $reseller["limit_traffic_quota"] > 0 && $_POST["traffic_quota"] != $old_web_values["traffic_quota"]) { + $tmp = $app->db->queryOneRecord("SELECT sum(traffic_quota) as trafficquota FROM web_domain WHERE domain_id != ".$app->functions->intval($this->id)." AND ".$app->tform->getAuthSQL('u')); + $trafficquota = $tmp["trafficquota"]; + $new_traffic_quota = $app->functions->intval($this->dataRecord["traffic_quota"]); + if(($trafficquota + $new_traffic_quota > $reseller["limit_traffic_quota"]) || ($new_traffic_quota < 0 && $reseller["limit_traffic_quota"] >= 0)) { + $max_free_quota = floor($reseller["limit_traffic_quota"] - $trafficquota); + if($max_free_quota < 0) $max_free_quota = 0; + $app->tform->errorMessage .= $app->tform->lng("limit_traffic_quota_free_txt").": ".$max_free_quota." MB<br>"; + // Set the quota field to the max free space + $this->dataRecord["traffic_quota"] = $max_free_quota; + } + unset($tmp); + unset($tmp_quota); + } + } + + // 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, `web_folder`, `cgi`, `ssi`, `perl`, `ruby`, `python`, `suexec`, `errordocs`, `subdomain`, `ssl` FROM web_domain WHERE domain_id = ".$app->functions->intval($this->id)); + $this->dataRecord['web_folder'] = $tmp['web_folder']; // cannot be changed! + + // set the settings to current if not provided (or cleared due to limits) + if($this->dataRecord['cgi'] == '-') $this->dataRecord['cgi'] = $tmp['cgi']; + if($this->dataRecord['ssi'] == '-') $this->dataRecord['ssi'] = $tmp['ssi']; + if($this->dataRecord['perl'] == '-') $this->dataRecord['perl'] = $tmp['perl']; + if($this->dataRecord['ruby'] == '-') $this->dataRecord['ruby'] = $tmp['ruby']; + if($this->dataRecord['python'] == '-') $this->dataRecord['python'] = $tmp['python']; + if($this->dataRecord['suexec'] == '-') $this->dataRecord['suexec'] = $tmp['suexec']; + if($this->dataRecord['errordocs'] == '-') $this->dataRecord['errordocs'] = $tmp['errordocs']; + if($this->dataRecord['subdomain'] == '-') $this->dataRecord['subdomain'] = $tmp['subdomain']; + if($this->dataRecord['ssl'] == '-') $this->dataRecord['ssl'] = $tmp['ssl']; + + unset($tmp); + // When the record is inserted + } else { + // Check if the user may add another web_domain + if($client["limit_web_aliasdomain"] >= 0) { + $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM web_domain WHERE sys_groupid = $client_group_id and (type = 'alias' OR type = 'vhostalias')"); + if($tmp["number"] >= $client["limit_web_aliasdomain"]) { + $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]); + } + } + } + } + + //* make sure that the domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + + //* get the server config for this server + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($app->functions->intval(isset($this->dataRecord["server_id"]) ? $this->dataRecord["server_id"] : 0), 'web'); + //* Check for duplicate ssl certs per IP if SNI is disabled + if(isset($this->dataRecord['ssl']) && $this->dataRecord['ssl'] == 'y' && $web_config['enable_sni'] != 'y') { + $sql = "SELECT count(domain_id) as number FROM web_domain WHERE `ssl` = 'y' AND ip_address = '".$app->db->quote($this->dataRecord['ip_address'])."' and domain_id != ".$this->id; + $tmp = $app->db->queryOneRecord($sql); + if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("error_no_sni_txt"); + } + + // Check if pm.max_children >= pm.max_spare_servers >= pm.start_servers >= pm.min_spare_servers > 0 + if(isset($this->dataRecord['pm_max_children']) && $this->dataRecord['pm'] == 'dynamic') { + if($app->functions->intval($this->dataRecord['pm_max_children'], true) >= $app->functions->intval($this->dataRecord['pm_max_spare_servers'], true) && $app->functions->intval($this->dataRecord['pm_max_spare_servers'], true) >= $app->functions->intval($this->dataRecord['pm_start_servers'], true) && $app->functions->intval($this->dataRecord['pm_start_servers'], true) >= $app->functions->intval($this->dataRecord['pm_min_spare_servers'], true) && $app->functions->intval($this->dataRecord['pm_min_spare_servers'], true) > 0){ + + } else { + $app->tform->errorMessage .= $app->tform->lng("error_php_fpm_pm_settings_txt").'<br>'; + } + } + + // Check rewrite rules + $server_type = $web_config['server_type']; + + if($server_type == 'nginx' && isset($this->dataRecord['rewrite_rules']) && trim($this->dataRecord['rewrite_rules']) != '') { + $rewrite_rules = trim($this->dataRecord['rewrite_rules']); + $rewrites_are_valid = true; + // use this counter to make sure all curly brackets are properly closed + $if_level = 0; + // Make sure we only have Unix linebreaks + $rewrite_rules = str_replace("\r\n", "\n", $rewrite_rules); + $rewrite_rules = str_replace("\r", "\n", $rewrite_rules); + $rewrite_rule_lines = explode("\n", $rewrite_rules); + if(is_array($rewrite_rule_lines) && !empty($rewrite_rule_lines)){ + foreach($rewrite_rule_lines as $rewrite_rule_line){ + // ignore comments + if(substr(ltrim($rewrite_rule_line), 0, 1) == '#') continue; + // empty lines + if(trim($rewrite_rule_line) == '') continue; + // rewrite + if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue; + // if + if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $rewrite_rule_line)){ + $if_level += 1; + continue; + } + // if - check for files, directories, etc. + if(preg_match('@^\s*if\s+\(\s*\!?-(f|d|e|x)\s+\S+\s*\)\s*\{\s*$@', $rewrite_rule_line)){ + $if_level += 1; + continue; + } + // break + if(preg_match('@^\s*break\s*;\s*$@', $rewrite_rule_line)){ + continue; + } + // return code [ text ] + if(preg_match('@^\s*return\s+\d\d\d.*;\s*$@', $rewrite_rule_line)) continue; + // return code URL + // return URL + if(preg_match('@^\s*return(\s+\d\d\d)?\s+(http|https|ftp)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*\@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*\s*;\s*$@', $rewrite_rule_line)) continue; + // set + if(preg_match('@^\s*set\s+\$\S+\s+\S+\s*;\s*$@', $rewrite_rule_line)) continue; + // closing curly bracket + if(trim($rewrite_rule_line) == '}'){ + $if_level -= 1; + continue; + } + $rewrites_are_valid = false; + break; + } + } + + if(!$rewrites_are_valid || $if_level != 0){ + $app->tform->errorMessage .= $app->tform->lng("invalid_rewrite_rules_txt").'<br>'; + } + } + + parent::onSubmit(); + } + + function onAfterInsert() { + global $app, $conf; + + // Get configuration for the web system + $app->uses("getconf"); + $web_rec = $app->tform->getDataRecord($this->id); + $web_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'web'); + //var_dump($this->parent_domain_record, $web_rec); + // Set the values for document_root, system_user and system_group + $system_user = $app->db->quote($this->parent_domain_record['system_user']); + $system_group = $app->db->quote($this->parent_domain_record['system_group']); + $document_root = $app->db->quote($this->parent_domain_record['document_root']); + $php_open_basedir = str_replace("[website_path]/web", $document_root.'/'.$web_rec['web_folder'], $web_config["php_open_basedir"]); + $php_open_basedir = str_replace("[website_domain]/web", $web_rec['domain'].'/'.$web_rec['web_folder'], $php_open_basedir); + $php_open_basedir = str_replace("[website_path]", $document_root, $php_open_basedir); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $web_rec['domain'], $php_open_basedir)); + $htaccess_allow_override = $app->db->quote($this->parent_domain_record['allow_override']); + + $sql = "UPDATE web_domain SET sys_groupid = ".$app->functions->intval($this->parent_domain_record['sys_groupid']).",system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + + function onBeforeUpdate () { + global $app, $conf; + + //* Check that all fields for the SSL cert creation are filled + if(isset($this->dataRecord['ssl_action']) && $this->dataRecord['ssl_action'] == 'create') { + if($this->dataRecord['ssl_state'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_state_empty').'<br />'; + if($this->dataRecord['ssl_locality'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_locality_empty').'<br />'; + if($this->dataRecord['ssl_organisation'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_empty').'<br />'; + if($this->dataRecord['ssl_organisation_unit'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_organisation_unit_empty').'<br />'; + if($this->dataRecord['ssl_country'] == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_country_empty').'<br />'; + } + + if(isset($this->dataRecord['ssl_action']) && $this->dataRecord['ssl_action'] == 'save') { + if(trim($this->dataRecord['ssl_cert']) == '') $app->tform->errorMessage .= $app->tform->lng('error_ssl_cert_empty').'<br />'; + } + + } + + function onAfterUpdate() { + global $app, $conf; + + // Get configuration for the web system + $app->uses("getconf"); + $web_rec = $app->tform->getDataRecord($this->id); + $web_config = $app->getconf->get_server_config($app->functions->intval($web_rec["server_id"]), 'web'); + + // Set the values for document_root, system_user and system_group + $system_user = $app->db->quote($this->parent_domain_record['system_user']); + $system_group = $app->db->quote($this->parent_domain_record['system_group']); + $document_root = $app->db->quote($this->parent_domain_record['document_root']); + $php_open_basedir = str_replace("[website_path]/web", $document_root.'/'.$web_rec['web_folder'], $web_config["php_open_basedir"]); + $php_open_basedir = str_replace("[website_domain]/web", $web_rec['domain'].'/'.$web_rec['web_folder'], $php_open_basedir); + $php_open_basedir = str_replace("[website_path]", $document_root, $php_open_basedir); + $php_open_basedir = $app->db->quote(str_replace("[website_domain]", $web_rec['domain'], $php_open_basedir)); + $htaccess_allow_override = $app->db->quote($this->parent_domain_record['allow_override']); + + $sql = "UPDATE web_domain SET sys_groupid = ".$app->functions->intval($this->parent_domain_record['sys_groupid']).",system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id; + $app->db->query($sql); + } + +} + +$page = new page_action; +$page->onLoad(); + +?> diff --git a/interface/web/sites/web_vhost_aliasdomain_list.php b/interface/web/sites/web_vhost_aliasdomain_list.php new file mode 100644 index 000000000..52033a15b --- /dev/null +++ b/interface/web/sites/web_vhost_aliasdomain_list.php @@ -0,0 +1,55 @@ +<?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. +*/ + +require_once '../../lib/config.inc.php'; +require_once '../../lib/app.inc.php'; + +/****************************************** +* Begin Form configuration +******************************************/ + +$list_def_file = "list/web_vhost_aliasdomain.list.php"; + +/****************************************** +* End Form configuration +******************************************/ + +//* Check permissions for module +$app->auth->check_module_permissions('sites'); + +$app->uses('listform_actions'); + +// Limit the results to alias domains +$app->listform_actions->SQLExtWhere = "web_domain.type = 'vhostalias'"; +$app->listform_actions->SQLOrderBy = 'ORDER BY web_domain.domain'; +$app->listform_actions->onLoad(); + + +?> diff --git a/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm b/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm index 121d607a3..c3fc9bfdd 100644 --- a/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm +++ b/interface/web/themes/default-304/templates/admin/system_config_sites_edit.htm @@ -45,6 +45,12 @@ {tmpl_var name='vhost_subdomains'} {tmpl_var name='vhost_subdomains_note_txt'} </div> </div> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='vhost_aliasdomains_txt'}</p> + <div class="multiField"> + {tmpl_var name='vhost_aliasdomains'} {tmpl_var name='vhost_aliasdomains_note_txt'} + </div> + </div> </fieldset> <input type="hidden" name="id" value="{tmpl_var name='id'}"> diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_advanced.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_advanced.htm new file mode 100644 index 000000000..3067cd02d --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_advanced.htm @@ -0,0 +1,146 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" /> + <div class="ctrlHolder"> + <label for="system_user">{tmpl_var name='system_user_txt'}</label> + <label for="system_user">{tmpl_var name='system_user'}</label> + <input name="system_user" id="system_user" value="{tmpl_var name='system_user'}" type="hidden" /> + </div> + <div class="ctrlHolder"> + <label for="system_group">{tmpl_var name='system_group_txt'}</label> + <label for="system_group">{tmpl_var name='system_group'}</label> + <input name="system_group" id="system_group" value="{tmpl_var name='system_group'}" type="hidden" /> + </div> + <div class="ctrlHolder apache"> + <label for="allow_override">{tmpl_var name='allow_override_txt'}</label> + <input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="phpfpm"> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p> + <div class="multiField"> + {tmpl_var name='php_fpm_use_socket'} + </div> + </div> + <div class="ctrlHolder"> + <label for="pm">{tmpl_var name='pm_txt'}</label> + <select name="pm" id="pm" class="selectInput"> + {tmpl_var name='pm'} + </select> + </div> + <div class="ctrlHolder pm_ondemand" style="background: #ffdfdf; border: 1px solid #df7d7d; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px;"> + {tmpl_var name='pm_ondemand_hint_txt'} + </div> + <div class="ctrlHolder"> + <label for="pm_max_children">{tmpl_var name='pm_max_children_txt'}</label> + <input name="pm_max_children" id="pm_max_children" value="{tmpl_var name='pm_max_children'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_start_servers">{tmpl_var name='pm_start_servers_txt'}</label> + <input name="pm_start_servers" id="pm_start_servers" value="{tmpl_var name='pm_start_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_min_spare_servers">{tmpl_var name='pm_min_spare_servers_txt'}</label> + <input name="pm_min_spare_servers" id="pm_min_spare_servers" value="{tmpl_var name='pm_min_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_dynamic"> + <label for="pm_max_spare_servers">{tmpl_var name='pm_max_spare_servers_txt'}</label> + <input name="pm_max_spare_servers" id="pm_max_spare_servers" value="{tmpl_var name='pm_max_spare_servers'}" size="3" maxlength="3" type="text" class="textInput formLengthLimit" /> + </div> + <div class="ctrlHolder pm_ondemand"> + <label for="pm_process_idle_timeout">{tmpl_var name='pm_process_idle_timeout_txt'}</label> + <input name="pm_process_idle_timeout" id="pm_process_idle_timeout" value="{tmpl_var name='pm_process_idle_timeout'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> s + </div> + <div class="ctrlHolder"> + <label for="pm_max_requests">{tmpl_var name='pm_max_requests_txt'}</label> + <input name="pm_max_requests" id="pm_max_requests" value="{tmpl_var name='pm_max_requests'}" size="3" maxlength="6" type="text" class="textInput formLengthLimit" /> + </div> + </div> + <div class="ctrlHolder"> + <label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label> + <input name="php_open_basedir" id="php_open_basedir" value="{tmpl_var name='php_open_basedir'}" size="30" type="text" class="textInput" style="width:400px;" /> + </div> + <div class="ctrlHolder"> + <label for="custom_php_ini">{tmpl_var name='custom_php_ini_txt'}</label> + <textarea name="custom_php_ini" id="custom_php_ini" rows='10' cols='50' style="width:400px;">{tmpl_var name='custom_php_ini'}</textarea> + </div> + <div class="ctrlHolder apache"> + <label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label> + <textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea> + </div> + <div class="ctrlHolder nginx"> + <label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label> + <textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var webId = jQuery('input[name="id"]').val(); + var serverId; + getServerId(); + adjustForm(); + + var pm = jQuery('#pm').val(); + pmMode(pm); + jQuery('#pm').change(function(){ + pm = jQuery(this).val(); + pmMode(pm); + }); + + function pmMode(pm){ + switch(pm){ + case "static": + jQuery('.pm_dynamic').add('.pm_ondemand').hide(); + jQuery('.pm_static').show(); + break; + case "dynamic": + jQuery('.pm_static').add('.pm_ondemand').hide(); + jQuery('.pm_dynamic').show(); + break; + case "ondemand": + jQuery('.pm_static').add('.pm_dynamic').hide(); + jQuery('.pm_ondemand').show(); + break; + } + } + + function getServerId(){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { + serverId = data.serverid; + }); + } + + function adjustForm(){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + if(data.servertype == "nginx"){ + jQuery('.nginx').show(); + jQuery('.apache').hide(); + } else { + jQuery('.nginx').hide(); + jQuery('.apache').show(); + } + }); + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getphptype"}, function(data) { + if(data.phptype == "php-fpm"){ + jQuery('.phpfpm').show(); + } else { + jQuery('.phpfpm').hide(); + } + }); + } + +</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_backup.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_backup.htm new file mode 100644 index 000000000..b93b2020f --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_backup.htm @@ -0,0 +1,32 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"><legend>Backup</legend> + <div class="ctrlHolder"> + <label for="backup_interval">{tmpl_var name='backup_interval_txt'}</label> + <select name="backup_interval" id="backup_interval" class="selectInput"> + {tmpl_var name='backup_interval'} + </select> + </div> + <div class="ctrlHolder"> + <label for="backup_copies">{tmpl_var name='backup_copies_txt'}</label> + <select name="backup_copies" id="backup_copies" class="selectInput"> + {tmpl_var name='backup_copies'} + </select> + </div> + </fieldset> + + {tmpl_var name='backup_records'} + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_edit.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_edit.htm new file mode 100644 index 000000000..9c047697a --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_edit.htm @@ -0,0 +1,208 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <input type="hidden" name="server_id" id="server_id" value="{tmpl_var name='server_id_value'}" /> + <div class="ctrlHolder"> + <label for="domain">{tmpl_var name='host_txt'}</label> + <input name="domain" id="domain" value="{tmpl_var name='domain'}" size="30" maxlength="255" type="text" class="textInput formLengthHalf" /> + </div> + <div class="ctrlHolder"> + <label for="parent_domain_id">{tmpl_var name='domain_txt'}</label> + <select id="parent_domain_id" name="parent_domain_id" class="selectInput formLengthHalf">{tmpl_var name='parent_domain_id'}</select> + </div> + <div class="ctrlHolder"> + <label for="web_folder">{tmpl_var name='web_folder_txt'}</label> + <input name="web_folder" id="web_folder" value="{tmpl_var name='web_folder'}" size="30" maxlength="100" type="text" class="textInput formLengthHalf"<tmpl_if name='fixed_folder' op='==' value='y'> readonly="readonly"</tmpl_if> /> + </div> + <div class="ctrlHolder"> + <label for="hd_quota">{tmpl_var name='hd_quota_txt'}</label> + <input name="hd_quota" id="hd_quota" value="{tmpl_var name='hd_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB + </div> + <div class="ctrlHolder"> + <label for="traffic_quota">{tmpl_var name='traffic_quota_txt'}</label> + <input name="traffic_quota" id="traffic_quota" value="{tmpl_var name='traffic_quota'}" size="7" maxlength="7" type="text" class="textInput formLengthLimit" /> MB <tmpl_var name='traffic_quota_exceeded_txt'> + </div> + <tmpl_if name="limit_cgi" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='cgi_txt'}</p> + <div class="multiField"> + {tmpl_var name='cgi'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_ssi" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssi_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssi'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_perl" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='perl_txt'}</p> + <div class="multiField"> + {tmpl_var name='perl'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_ruby" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='ruby_txt'}</p> + <div class="multiField"> + {tmpl_var name='ruby'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_python" op="==" value="y"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='python_txt'}</p> + <div class="multiField"> + {tmpl_var name='python'} + </div> + </div></tmpl_if> + <tmpl_if name="force_suexec" op="==" value="n"><div class="ctrlHolder apache"> + <p class="label">{tmpl_var name='suexec_txt'}</p> + <div class="multiField"> + {tmpl_var name='suexec'} + </div> + </div></tmpl_if> + <tmpl_if name="limit_hterror" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='errordocs_txt'}</p> + <div class="multiField"> + {tmpl_var name='errordocs'} + </div> + </div></tmpl_if> + + <div class="ctrlHolder"> + <label for="subdomain">{tmpl_var name='subdomain_txt'}</label> + <select name="subdomain" id="subdomain" class="selectInput formLengthHalf"> + {tmpl_var name='subdomain'} + </select> + </div> + <tmpl_if name="limit_ssl" op="==" value="y"><div class="ctrlHolder"> + <p class="label">{tmpl_var name='ssl_txt'}</p> + <div class="multiField"> + {tmpl_var name='ssl'} + </div> + </div></tmpl_if> + <div class="ctrlHolder"> + <label for="php">{tmpl_var name='php_txt'}</label> + <select name="php" id="php" class="selectInput formLengthHalf"> + {tmpl_var name='php'} + </select> + </div> + <div class="ctrlHolder fastcgi_php_version"> + <label for="fastcgi_php_version">{tmpl_var name='fastcgi_php_version_txt'}</label> + <select name="fastcgi_php_version" id="fastcgi_php_version" class="selectInput formLengthHalf"> + {tmpl_var name='fastcgi_php_version'} + </select> + </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'}"> + + <div class="buttonHolder buttons"> + <button id="dom-edit-submit" class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}"><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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var serverId; + var clientGroupId = jQuery('#client_group_id').val(); + var serverIdDisabled = jQuery('#server_id_disabled').val(); + if(serverIdDisabled > 0){ + serverId = serverIdDisabled; + } else { + serverId = jQuery('#server_id').val(); + jQuery('#server_id').change(function(){ + serverId = $(this).val(); + adjustForm(); + reloadWebIP(); + reloadFastcgiPHPVersions(); + }); + } + adjustForm(); + reloadFastcgiPHPVersions(); + + jQuery('#client_group_id').change(function(){ + clientGroupId = $(this).val(); + reloadWebIP(); + }); + + if(jQuery('#php').val() == 'fast-cgi' || jQuery('#php').val() == 'php-fpm'){ + jQuery('.fastcgi_php_version:hidden').show(); + } else { + jQuery('.fastcgi_php_version:visible').hide(); + } + jQuery('#php').change(function(){ + reloadFastcgiPHPVersions(); + if(jQuery(this).val() == 'fast-cgi' || jQuery(this).val() == 'php-fpm'){ + jQuery('.fastcgi_php_version:hidden').show(); + } else { + jQuery('.fastcgi_php_version:visible').hide(); + } + }); + + function adjustForm(){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + if(data.servertype == "nginx"){ + var selected = jQuery('#php').val(); + jQuery('.apache').hide(); + jQuery('.apache').hide(); + jQuery('#php option[value="fast-cgi"]').hide(); + jQuery('#php option[value="cgi"]').hide(); + jQuery('#php option[value="mod"]').hide(); + jQuery('#php option[value="suphp"]').hide(); + if(selected != "no" && selected != "php-fpm") jQuery('#php option[value="php-fpm"]').attr('selected', 'selected'); + } else { + jQuery('.apache').show(); + jQuery('.apache').show(); + jQuery('#php option[value="fast-cgi"]').show(); + jQuery('#php option[value="cgi"]').show(); + jQuery('#php option[value="mod"]').show(); + jQuery('#php option[value="suphp"]').show(); + } + }); + } + + function reloadWebIP() { + loadOptionInto('ip_address','sites/ajax_get_ip.php?ip_type=IPv4&server_id='+serverId+'&client_group_id='+clientGroupId); + loadOptionInto('ipv6_address','sites/ajax_get_ip.php?ip_type=IPv6&server_id='+serverId+'&client_group_id='+clientGroupId); + } + + function reloadFastcgiPHPVersions() { + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, php_type : jQuery('#php').val(), type : "getphpfastcgi"}, function(data) { + var options = '<option value="">Default</option>'; + var phpfastcgiselected = ''; + $.each(data, function(key, val) { + if($('#fastcgi_php_version').val() == key){ + phpfastcgiselected = ' selected="selected"'; + } else { + phpfastcgiselected = ''; + } + options += '<option value="'+key+'"'+phpfastcgiselected+'>'+val+'</option>'; + }); + $('#fastcgi_php_version').html(options); + }); + } + + <tmpl_if name="readonly_tab"> + jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').attr('disabled', 'disabled'); + jQuery('div.tabbox_tabs').find('a').click(function() { + jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); + }); + jQuery('#dom-edit-submit').click(function() { + jQuery('div.panel_web_domain').find('fieldset').find('input,select,button').removeAttr('disabled'); + submitForm('pageForm','sites/web_vhost_aliasdomain_edit.php'); + }); + <tmpl_else> + jQuery('#dom-edit-submit').click(function() { + submitForm('pageForm','sites/web_vhost_aliasdomain_edit.php'); + }); + </tmpl_if> + +</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_list.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_list.htm new file mode 100644 index 000000000..8bd542706 --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_list.htm @@ -0,0 +1,60 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_list_web_subdomain"> + + <div class="pnl_toolsarea"> + <fieldset><legend>{tmpl_var name="toolsarea_head_txt"}</legend> + <div class="buttons"> + <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_vhost_aliasdomain_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_parent_domain_id" scope="col"><tmpl_var name="parent_domain_id_txt"></th> + <th class="tbl_col_domain" scope="col"><tmpl_var name="domain_txt"></th> + <th class="tbl_col_limit" scope="col">{tmpl_var name='search_limit'}</th> + </tr> + <tr> + <td class="tbl_col_active"><select name="search_active">{tmpl_var name='search_active'}</select></td> + <td class="tbl_col_server_id"><select name="search_server_id">{tmpl_var name='search_server_id'}</select></td> + <td class="tbl_col_parent_domain_id"><select name="search_parent_domain_id">{tmpl_var name='search_parent_domain_id'}</select></td> + <td class="tbl_col_domain"><input type="text" name="search_domain" value="{tmpl_var name='search_domain'}" /></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','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="active"}</a></td> + <td class="tbl_col_server_id"><a href="#" onClick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="server_id"}</a></td> + <td class="tbl_col_parent_domain_id"><a href="#" onClick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="parent_domain_id"}</a></td> + <td class="tbl_col_domain"><a href="#" onClick="loadContent('sites/web_vhost_aliasdomain_edit.php?id={tmpl_var name='id'}');">{tmpl_var name="domain"}</a></td> + <td class="tbl_col_buttons"> + <div class="buttons icons16"> + <a class="icons16 icoDelete" href="javascript: del_record('sites/web_vhost_aliasdomain_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="5"><tmpl_var name="paging"></td> + </tr> + </tfoot> + </table> + </fieldset> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_redirect.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_redirect.htm new file mode 100644 index 000000000..f0781acaa --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_redirect.htm @@ -0,0 +1,76 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label> + <select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf"> + {tmpl_var name='redirect_type'} + </select> + </div> + <div class="ctrlHolder"> + <label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label> + <input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label> + <select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf"> + {tmpl_var name='seo_redirect'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> +<script language="JavaScript" type="text/javascript"> + var webId = jQuery('input[name="id"]').val(); + var serverId; + getServerId(webId); + + function getServerId(webId){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) { + serverId = data.serverid; + adjustForm(serverId); + }); + } + + function adjustForm(serverId){ + jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) { + var selected = jQuery('#redirect_type').val(); + if(data.servertype == "nginx"){ + jQuery("#redirect_type option[value='R']").attr('disabled','disabled'); + jQuery('#redirect_type option[value="L"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled'); + + jQuery('#redirect_type option[value="R"]').hide(); + jQuery('#redirect_type option[value="L"]').hide(); + jQuery('#redirect_type option[value="R,L"]').hide(); + jQuery('#redirect_type option[value="R=301,L"]').hide(); + if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); + } else { + jQuery('#redirect_type option[value="last"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="break"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled'); + jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled'); + + jQuery('#redirect_type option[value="last"]').hide(); + jQuery('#redirect_type option[value="break"]').hide(); + jQuery('#redirect_type option[value="redirect"]').hide(); + jQuery('#redirect_type option[value="permanent"]').hide(); + if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); + } + }); + } + +</script> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_ssl.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_ssl.htm new file mode 100644 index 000000000..35bd37113 --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_ssl.htm @@ -0,0 +1,68 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <label for="ssl_state">{tmpl_var name='ssl_state_txt'}</label> + <input name="ssl_state" id="ssl_state" value="{tmpl_var name='ssl_state'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_locality">{tmpl_var name='ssl_locality_txt'}</label> + <input name="ssl_locality" id="ssl_locality" value="{tmpl_var name='ssl_locality'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_organisation">{tmpl_var name='ssl_organisation_txt'}</label> + <input name="ssl_organisation" id="ssl_organisation" value="{tmpl_var name='ssl_organisation'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_organisation_unit">{tmpl_var name='ssl_organisation_unit_txt'}</label> + <input name="ssl_organisation_unit" id="ssl_organisation_unit" value="{tmpl_var name='ssl_organisation_unit'}" size="30" maxlength="255" type="text" class="textInput" /> + </div> + <div class="ctrlHolder"> + <label for="ssl_country">{tmpl_var name='ssl_country_txt'}</label> + <select name="ssl_country" id="ssl_country" class="selectInput flags"> + {tmpl_var name='ssl_country'} + </select> + </div> + <div class="ctrlHolder"> + <label for="client_group_id">{tmpl_var name='ssl_domain_txt'}</label> + <select name="ssl_domain" id="ssl_domain" class="selectInput"> + {tmpl_var name='ssl_domain'} + </select> + </div> + <div class="ctrlHolder"> + <label for="ssl_request">{tmpl_var name='ssl_key_txt'}</label> + <textarea name="ssl_key" id="ssl_key" rows='10' cols='30'>{tmpl_var name='ssl_key'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_request">{tmpl_var name='ssl_request_txt'}</label> + <textarea name="ssl_request" id="ssl_request" rows='10' cols='30'>{tmpl_var name='ssl_request'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_cert">{tmpl_var name='ssl_cert_txt'}</label> + <textarea name="ssl_cert" id="ssl_cert" rows='10' cols='30'>{tmpl_var name='ssl_cert'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_bundle">{tmpl_var name='ssl_bundle_txt'}</label> + <textarea name="ssl_bundle" id="ssl_bundle" rows='10' cols='30'>{tmpl_var name='ssl_bundle'}</textarea> + </div> + <div class="ctrlHolder"> + <label for="ssl_action">{tmpl_var name='ssl_action_txt'}</label> + <select name="ssl_action" id="ssl_action" class="selectInput formLengthHalf"> + {tmpl_var name='ssl_action'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> \ No newline at end of file diff --git a/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_stats.htm b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_stats.htm new file mode 100644 index 000000000..2f50a62a6 --- /dev/null +++ b/interface/web/themes/default-304/templates/sites/web_vhost_aliasdomain_stats.htm @@ -0,0 +1,37 @@ +<h2><tmpl_var name="list_head_txt"></h2> +<p><tmpl_var name="list_desc_txt"></p> + +<div class="panel panel_web_domain"> + + <div class="pnl_formsarea"> + <fieldset class="inlineLabels"> + <div class="ctrlHolder"> + <p class="label">{tmpl_var name='stats_user_txt'}</p><p class="value">admin</p> + </div> + <div class="ctrlHolder"> + <label for="stats_password">{tmpl_var name='stats_password_txt'}</label> + <input name="stats_password" id="stats_password" value="{tmpl_var name='stats_password'}" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> <a href="javascript:void(0);" onClick="generatePassword('stats_password','repeat_password');">{tmpl_var name='generate_password_txt'}</a> + </div> + <div class="ctrlHolder"> + <label for="repeat_password">{tmpl_var name='repeat_password_txt'}</label> + <input name="repeat_password" id="repeat_password" value="" size="15" maxlength="100" type="password" class="textInput" style="width:100px;" onkeyup="checkPassMatch('stats_password','repeat_password');" /> + </div> + <div id="confirmpasswordError" style="display:none;" class="confirmpassworderror">{tmpl_var name='password_mismatch_txt'}</div> + <div id="confirmpasswordOK" style="display:none;" class="confirmpasswordok">{tmpl_var name='password_match_txt'}</div> + <div class="ctrlHolder"> + <label for="stats_type">{tmpl_var name='stats_type_txt'}</label> + <select name="stats_type" id="stats_type" class="selectInput" > + {tmpl_var name='stats_type'} + </select> + </div> + </fieldset> + + <input type="hidden" name="id" value="{tmpl_var name='id'}"> + + <div class="buttonHolder buttons"> + <button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_vhost_aliasdomain_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('sites/web_vhost_aliasdomain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button> + </div> + </div> + +</div> diff --git a/server/lib/classes/aps_installer.inc.php b/server/lib/classes/aps_installer.inc.php index 2925c7a54..5fac926c9 100644 --- a/server/lib/classes/aps_installer.inc.php +++ b/server/lib/classes/aps_installer.inc.php @@ -277,7 +277,8 @@ class ApsInstaller extends ApsBase if(substr($this->document_root, -1) != '/') $this->document_root .= '/'; // Attention: ISPConfig Special: web files are in subfolder 'web' -> append it: - if($domain_res['type'] == 'vhostsubdomain') $this->document_root .= $domain_res['web_folder'] . '/'; + if(($domain_res['type'] == 'vhostsubdomain') || ($domain_res['type'] == 'vhostalias')) + $this->document_root .= $domain_res['web_folder'] . '/'; else $this->document_root .= 'web/'; // If a subfolder is given, make sure it's path doesn't begin with / i.e. /phpbb diff --git a/server/lib/classes/aps_installer.inc.php.bak b/server/lib/classes/aps_installer.inc.php.bak new file mode 100644 index 000000000..2925c7a54 --- /dev/null +++ b/server/lib/classes/aps_installer.inc.php.bak @@ -0,0 +1,749 @@ +<?php +/* +Copyright (c) 2012, ISPConfig UG +Contributors: web wack creations, http://www.web-wack.at +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +require_once 'aps_base.inc.php'; + +@set_time_limit(0); +@ignore_user_abort(1); + +class ApsInstaller extends ApsBase +{ + private $handle_type = ''; + private $domain = ''; + private $document_root = ''; + private $sublocation = ''; + private $local_installpath = ''; + private $dbhost = ''; + private $newdb_name = ''; + private $newdb_user = ''; + private $file_owner_user = ''; + private $file_owner_group = ''; + private $putenv = array(); + + /** + * Constructor + * + * @param $app the application instance (db handle + log method) + * @param $interface_mode act in interface (true) or server mode (false) + */ + + + public function __construct($app, $interface_mode = false) + { + parent::__construct($app, 'APS installer: ', $interface_mode); + } + + + + /** + * Before the cron is executed, make sure all necessary options are set + * and all functions are available + */ + private function checkRequirements() + { + global $app; + try + { + // Check if exec() is not disabled + $disabled_func = explode(',', @ini_get('disable_functions')); + if(in_array('exec', $disabled_func)) throw new Exception('the call of exec() is disabled'); + + // Check if safe_mode is disabled (needed for correct putenv, chmod, chown handling) + if(@ini_get('safe_mode')) throw new Exception('the safe_mode restriction is on'); + + return true; + } + + catch(Exception $e) + { + $app->log('Aborting execution because '.$e->getMessage(), 1); + return false; + } + } + + + + /** + * Get a file from a ZIP archive and either return it's content or + * extract it to a given destination + * + * @param $zipfile the ZIP file to work with + * @param $subfile the file from which to get the content + * @param $destfolder the optional extraction destination + * @param $destname the optional target file name when extracting + * @return string or boolean + */ + private function getContentFromZIP($zipfile, $subfile, $destfolder = '', $destname = '') + { + try + { + $zip = new ZipArchive; + $res = $zip->open(realpath($zipfile)); + if(!$res) throw new Exception('Cannot open ZIP file '.$zipfile); + + // If no destination is given, the content is returned, otherwise + // the $subfile is extracted to $destination + if($destfolder == '') + { + $fh = $zip->getStream($subfile); + if(!$fh) throw new Exception('Cannot read '.$subfile.' from '.$zipfile); + + $subfile_content = ''; + while(!feof($fh)) $subfile_content .= fread($fh, 8192); + + fclose($fh); + + return $subfile_content; + } + else + { + // extractTo would be suitable but has no target name parameter + //$ind = $zip->locateName($subfile); + //$ex = $zip->extractTo($destination, array($zip->getNameIndex($ind))); + if($destname == '') $destname = basename($subfile); + $ex = @copy('zip://'.$zipfile.'#'.$subfile, $destfolder.$destname); + if(!$ex) throw new Exception('Cannot extract '.$subfile.' to '.$destfolder); + } + + $zip->close(); + + } + + catch(Exception $e) + { + // The exception message is only interesting for debugging reasons + // echo $e->getMessage(); + return false; + } + } + + + + /** + * Extract the complete directory of a ZIP file + * + * @param $filename the file to unzip + * @param $directory the ZIP inside directory to unzip + * @param $destination the place where to extract the data + * @return boolean + */ + private function extractZip($filename, $directory, $destination) + { + if(!file_exists($filename)) return false; + + // Fix the paths + if(substr($directory, -1) == '/') $directory = substr($directory, 0, strlen($directory) - 1); + if(substr($destination, -1) != '/') $destination .= '/'; + + // Read and extract the ZIP file + $ziphandle = zip_open(realpath($filename)); + if(is_resource($ziphandle)) + { + while($entry = zip_read($ziphandle)) + { + if(substr(zip_entry_name($entry), 0, strlen($directory)) == $directory) + { + // Modify the relative ZIP file path + $new_path = substr(zip_entry_name($entry), strlen($directory)); + + if(substr($new_path, -1) == '/') // Identifier for directories + { + if(!file_exists($destination.$new_path)) mkdir($destination.$new_path, 0777, true); + } + else // Handle files + { + if(zip_entry_open($ziphandle, $entry)) + { + $new_dir = dirname($destination.$new_path); + if(!file_exists($new_dir)) mkdir($new_dir, 0777, true); + + $file = fopen($destination.$new_path, 'wb'); + if($file) + { + while($line = zip_entry_read($entry)) fwrite($file, $line); + fclose($file); + } + else return false; + } + } + } + } + + zip_close($ziphandle); + return true; + } + + return false; + } + + /** + * Setup the path environment variables for the install script + * + * @param $parent_mapping the SimpleXML instance with the current mapping position + * @param $url the relative path within the mapping tree + * @param $path the absolute path within the mapping tree + */ + private function processMappings($parent_mapping, $url, $path) + { + if($parent_mapping && $parent_mapping != null) + { + $writable = parent::getXPathValue($parent_mapping, 'php:permissions/@writable'); + $readable = parent::getXPathValue($parent_mapping, 'php:permissions/@readable'); + + // set the write permission + if($writable == 'true') + { + if(is_dir($path)) chmod($path, 0775); + else chmod($path, 0664); + } + + // set non-readable permission + if($readable == 'false') + { + if(is_dir($path)) chmod($path, 0333); + else chmod($path, 0222); + } + } + + // Set the environment variables + $env = str_replace('/', '_', $url); + $this->putenv[] = 'WEB_'.$env.'_DIR='.$path; + + // Step recursively into further mappings + if($parent_mapping && $parent_mapping != null) + { + foreach($parent_mapping->mapping as $mapping) + { + if($url == '/') $this->processMappings($mapping, $url.$mapping['url'], $path.$mapping['url']); + else $this->processMappings($mapping, $url.'/'.$mapping['url'], $path.'/'.$mapping['url']); + } + } + } + + + + /** + * Setup the environment with data for the install location + * + * @param $task an array containing all install related data + */ + private function prepareLocation($task) + { + global $app; + + // Get the domain name to use for the installation + // Would be possible in one query too, but we use 2 for easier debugging + $main_domain = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings + WHERE name = 'main_domain' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $this->domain = $main_domain['value']; + + // Get the document root + $domain_res = $app->db->queryOneRecord("SELECT document_root, web_folder, type FROM web_domain + WHERE domain = '".$app->db->quote($this->domain)."';"); + $this->document_root = $domain_res['document_root']; + + // Get the sub location + $location_res = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings + WHERE name = 'main_location' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $this->sublocation = $location_res['value']; + + // Make sure the document_root ends with / + if(substr($this->document_root, -1) != '/') $this->document_root .= '/'; + + // Attention: ISPConfig Special: web files are in subfolder 'web' -> append it: + if($domain_res['type'] == 'vhostsubdomain') $this->document_root .= $domain_res['web_folder'] . '/'; + else $this->document_root .= 'web/'; + + // If a subfolder is given, make sure it's path doesn't begin with / i.e. /phpbb + if(substr($this->sublocation, 0, 1) == '/') $this->sublocation = substr($this->sublocation, 1); + + // If the package isn't installed to a subfolder, remove the / at the end of the document root + if(empty($this->sublocation)) $this->document_root = substr($this->document_root, 0, strlen($this->document_root) - 1); + + // Set environment variables, later processed by the package install script + $this->putenv[] = 'BASE_URL_SCHEME=http'; + // putenv('BASE_URL_PORT') -> omitted as it's 80 by default + $this->putenv[] = 'BASE_URL_HOST='.$this->domain; + $this->putenv[] = 'BASE_URL_PATH='.$this->sublocation.'/'; + } + + + + /** + * Setup a database (if needed) and the appropriate environment variables + * + * @param $task an array containing all install related data + * @param $sxe a SimpleXMLElement handle, holding APP-META.xml + */ + private function prepareDatabase($task, $sxe) + { + global $app; + + $db_id = parent::getXPathValue($sxe, '//db:id'); + if(empty($db_id)) return; // No database needed + + /* WARNING: if this will ever be uncommented please check the updated prefix handling for user and db names!!! + * + // Set the database owner to the domain owner + // ISPConfig identifies the owner by the sys_groupid (not sys_userid!) + // so sys_userid can be set to any value + $perm = $app->db->queryOneRecord("SELECT sys_groupid, server_id FROM web_domain + WHERE domain = '".$this->domain."';"); + $task['sys_groupid'] = $perm['sys_groupid']; + $serverid = $perm['server_id']; + + // Get the database prefix and db user prefix + $app->uses('getconf'); + $global_config = $app->getconf->get_global_config('sites'); + $dbname_prefix = str_replace('[CLIENTID]', '', $global_config['dbname_prefix']); + $dbuser_prefix = str_replace('[CLIENTID]', '', $global_config['dbuser_prefix']); + $this->dbhost = DB_HOST; // Taken from config.inc.php + if(empty($this->dbhost)) $this->dbhost = 'localhost'; // Just to ensure any hostname... ;) + + $this->newdb_name = $dbname_prefix.$task['CustomerID'].'aps'.$task['InstanceID']; + $this->newdb_user = $dbuser_prefix.$task['CustomerID'].'aps'.$task['InstanceID']; + $dbpw_res = $app->db->queryOneRecord("SELECT Value FROM aps_instances_settings + WHERE Name = 'main_database_password' AND InstanceID = '".$app->db->quote($task['InstanceID'])."';"); + $newdb_pw = $dbpw_res['Value']; + + // In any case delete an existing database (install and removal procedure) + $app->db->query('DROP DATABASE IF EXISTS `'.$app->db->quote($this->newdb_name).'`;'); + // Delete an already existing database with this name + $app->db->query("DELETE FROM web_database WHERE database_name = '".$app->db->quote($this->newdb_name)."';"); + + + // Create the new database and assign it to a user + if($this->handle_type == 'install') + { + $app->db->query('CREATE DATABASE IF NOT EXISTS `'.$app->db->quote($this->newdb_name).'`;'); + $app->db->query('GRANT ALL PRIVILEGES ON '.$app->db->quote($this->newdb_name).'.* TO '.$app->db->quote($this->newdb_user).'@'.$app->db->quote($this->dbhost).' IDENTIFIED BY \'password\';'); + $app->db->query('SET PASSWORD FOR '.$app->db->quote($this->newdb_user).'@'.$app->db->quote($this->dbhost).' = PASSWORD(\''.$newdb_pw.'\');'); + $app->db->query('FLUSH PRIVILEGES;'); + + // Add the new database to the customer databases + // Assumes: charset = utf8 + $app->db->query('INSERT INTO web_database (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, + type, database_name, database_user, database_password, database_charset, remote_access, remote_ips, active) + VALUES ('.$task['sys_userid'].', '.$task['sys_groupid'].', "'.$task['sys_perm_user'].'", "'.$task['sys_perm_group'].'", + "'.$task['sys_perm_other'].'", '.$app->db->quote($serverid).', "mysql", "'.$app->db->quote($this->newdb_name).'", + "'.$app->db->quote($this->newdb_user).'", "'.$app->db->quote($newdb_pw).'", "utf8", "n", "", "y");'); + } + */ + + $mysqlver_res = $app->db->queryOneRecord('SELECT VERSION() as ver;'); + $mysqlver = $mysqlver_res['ver']; + + $tmp = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_password' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $newdb_pw = $tmp['value']; + + $tmp = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_host' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $newdb_host = $tmp['value']; + + $tmp = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_name' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $newdb_name = $tmp['value']; + + $tmp = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings WHERE name = 'main_database_login' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $newdb_login = $tmp['value']; + + $this->putenv[] = 'DB_'.$db_id.'_TYPE=mysql'; + $this->putenv[] = 'DB_'.$db_id.'_NAME='.$newdb_name; + $this->putenv[] = 'DB_'.$db_id.'_LOGIN='.$newdb_login; + $this->putenv[] = 'DB_'.$db_id.'_PASSWORD='.$newdb_pw; + $this->putenv[] = 'DB_'.$db_id.'_HOST='.$newdb_host; + $this->putenv[] = 'DB_'.$db_id.'_PORT=3306'; + $this->putenv[] = 'DB_'.$db_id.'_VERSION='.$mysqlver; + } + + + + /** + * Extract all needed files from the package + * + * @param $task an array containing all install related data + * @param $sxe a SimpleXMLElement handle, holding APP-META.xml + * @return boolean + */ + private function prepareFiles($task, $sxe) + { + global $app; + + // Basically set the mapping for APS version 1.0, if not available -> newer way + $mapping = $sxe->mapping; + $mapping_path = $sxe->mapping['path']; + $mapping_url = $sxe->mapping['url']; + if(empty($mapping)) + { + $mapping = $sxe->service->provision->{'url-mapping'}->mapping; + $mapping_path = $sxe->service->provision->{'url-mapping'}->mapping['path']; + $mapping_url = $sxe->service->provision->{'url-mapping'}->mapping['url']; + } + + try + { + // Make sure we have a valid mapping path (at least /) + if(empty($mapping_path)) throw new Exception('Unable to determine a mapping path'); + + $this->local_installpath = $this->document_root.$this->sublocation.'/'; + + // Now delete an existing folder (affects install and removal in the same way) + @chdir($this->local_installpath); + if(file_exists($this->local_installpath)){ + // make sure we don't delete error and stats folders + if($this->local_installpath == $this->document_root.'/'){ + if(is_dir($this->document_root)){ + $files = array_diff(scandir($this->document_root), array('.', '..', 'error', 'stats')); + foreach($files as $file){ + if(is_dir($this->document_root.'/'.$file)){ + $app->file->removeDirectory($this->document_root.'/'.$file); + } else { + @unlink($this->document_root.'/'.$file); + } + } + } else { + @unlink($this->document_root); + mkdir($this->document_root, 0777, true); + } + } else { + exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + } + } else { + mkdir($this->local_installpath, 0777, true); + } + + if($this->handle_type == 'install') + { + // Now check if the needed folder is there + if(!file_exists($this->local_installpath)) + throw new Exception('Unable to create a new folder for the package '.$task['path']); + + // Extract all files and assign them a new owner + if( ($this->extractZip($this->packages_dir.'/'.$task['path'], $mapping_path, $this->local_installpath) === false) + || ($this->extractZip($this->packages_dir.'/'.$task['path'], 'scripts', $this->local_installpath.'install_scripts/') === false) ) + { + // Clean already extracted data + exec("rm -Rf ".escapeshellarg($this->local_installpath).'*'); + throw new Exception('Unable to extract the package '.$task['path']); + } + + $this->processMappings($mapping, $mapping_url, $this->local_installpath); + + // Set the appropriate file owner + $main_domain = $app->db->queryOneRecord("SELECT value FROM aps_instances_settings + WHERE name = 'main_domain' AND instance_id = '".$app->db->quote($task['instance_id'])."';"); + $owner_res = $app->db->queryOneRecord("SELECT system_user, system_group FROM web_domain + WHERE domain = '".$app->db->quote($main_domain['value'])."';"); + $this->file_owner_user = $owner_res['system_user']; + $this->file_owner_group = $owner_res['system_group']; + exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + + //* Chown stats directory back + if(is_dir($this->local_installpath.'stats')) { + exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + } + } + } + catch(Exception $e) + { + $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" + WHERE id = "'.$app->db->quote($task['instance_id']).'";'); + $app->log($e->getMessage(), 1); + return false; + } + + return true; + } + + + + /** + * Get all user config variables and set them to environment variables + * + * @param $task an array containing all install related data + */ + private function prepareUserInputData($task) + { + global $app; + + $userdata = $app->db->queryAllRecords("SELECT name, value FROM aps_instances_settings + WHERE instance_id = '".$app->db->quote($task['instance_id'])."';"); + if(empty($userdata)) return false; + + foreach($userdata as $data) + { + // Skip unnecessary data + if($data['name'] == 'main_location' + || $data['name'] == 'main_domain' + || $data['name'] == 'main_database_password' + || $data['name'] == 'main_database_name' + || $data['name'] == 'main_database_host' + || $data['name'] == 'main_database_login' + || $data['name'] == 'license') continue; + + $this->putenv[] = 'SETTINGS_'.$data['name'].'='.$data['value']; + } + } + + + + /** + * Fetch binary data from a given array + * The data is retrieved in binary mode and + * then directly written to an output file + * + * @param $input a specially structed array + * @see $this->startUpdate() + */ + private function fetchFiles($input) + { + $fh = array(); + $url = array(); + $conn = array(); + + // Build the single cURL handles and add them to a multi handle + $mh = curl_multi_init(); + + // Process each app + for($i = 0; $i < count($input); $i++) + { + $conn[$i] = curl_init($input[$i]['url']); + $fh[$i] = fopen($input[$i]['localtarget'], 'wb'); + + curl_setopt($conn[$i], CURLOPT_BINARYTRANSFER, true); + curl_setopt($conn[$i], CURLOPT_FILE, $fh[$i]); + curl_setopt($conn[$i], CURLOPT_TIMEOUT, 0); + curl_setopt($conn[$i], CURLOPT_FAILONERROR, 1); + curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1); + + curl_multi_add_handle($mh, $conn[$i]); + } + + $active = 0; + do curl_multi_exec($mh, $active); + while($active > 0); + + // Close the handles + for($i = 0; $i < count($input); $i++) + { + fclose($fh[$i]); + curl_multi_remove_handle($mh, $conn[$i]); + curl_close($conn[$i]); + } + curl_multi_close($mh); + } + + + + /** + * The installation script should be executed + * + * @param $task an array containing all install related data + * @param $sxe a SimpleXMLElement handle, holding APP-META.xml + * @return boolean + */ + private function doInstallation($task, $sxe) + { + global $app; + + try + { + // Check if the install directory exists + if(!is_dir($this->local_installpath.'install_scripts/')) + throw new Exception('The install directory '.$this->local_installpath.' is not existing'); + + // Set the executable bit to the configure script + $cfgscript = @(string)$sxe->service->provision->{'configuration-script'}['name']; + if(!$cfgscript) $cfgscript = 'configure'; + chmod($this->local_installpath.'install_scripts/'.$cfgscript, 0755); + + // Change to the install folder (import for the exec() below!) + //exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + chdir($this->local_installpath.'install_scripts/'); + + // Set the enviroment variables + foreach($this->putenv as $var) { + putenv($var); + } + + $shell_retcode = true; + $shell_ret = array(); + exec('php '.escapeshellarg($this->local_installpath.'install_scripts/'.$cfgscript).' install 2>&1', $shell_ret, $shell_retcode); + $shell_ret = array_filter($shell_ret); + $shell_ret_str = implode("\n", $shell_ret); + + // Although $shell_retcode might be 0, there can be PHP errors. Filter them: + if(substr_count($shell_ret_str, 'Warning: ') > 0) $shell_retcode = 1; + + // If an error has occurred, the return code is != 0 + if($shell_retcode != 0) throw new Exception($shell_ret_str); + else + { + // The install succeeded, chown newly created files too + exec('chown -R '.$this->file_owner_user.':'.$this->file_owner_group.' '.escapeshellarg($this->local_installpath)); + + //* Chown stats directory back + if(is_dir($this->local_installpath.'stats')) { + exec('chown -R root:root '.escapeshellarg($this->local_installpath.'stats')); + } + + $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_SUCCESS.'" + WHERE id = "'.$app->db->quote($task['instance_id']).'";'); + } + } + + catch(Exception $e) + { + $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" + WHERE id = "'.$app->db->quote($task['instance_id']).'";'); + $app->log($e->getMessage(), 1); + return false; + } + + return true; + } + + + + /** + * Cleanup: Remove install scripts, remove tasks and update the database + * + * @param $task an array containing all install related data + * @param $sxe a SimpleXMLElement handle, holding APP-META.xml + */ + private function cleanup($task, $sxe) + { + chdir($this->local_installpath); + exec("rm -Rf ".escapeshellarg($this->local_installpath).'install_scripts'); + } + + + + /** + * The main method which performs the actual package installation + * + * @param $instanceid the instanceID to install + * @param $type the type of task to perform (installation, removal) + */ + public function installHandler($instanceid, $type) + { + global $app; + + // Set the given handle type, currently supported: install, delete + if($type == 'install' || $type == 'delete') $this->handle_type = $type; + else return false; + + // Get all instance metadata + /* + $task = $app->db->queryOneRecord("SELECT * FROM aps_instances AS i + INNER JOIN aps_packages AS p ON i.package_id = p.id + INNER JOIN client AS c ON i.customer_id = c.client_id + WHERE i.id = ".$instanceid.";"); + */ + $task = $app->db->queryOneRecord("SELECT * FROM aps_instances AS i + INNER JOIN aps_packages AS p ON i.package_id = p.id + WHERE i.id = ".$instanceid.";"); + if(!$task) return false; // formerly: throw new Exception('The InstanceID doesn\'t exist.'); + if(!isset($task['instance_id'])) $task['instance_id'] = $instanceid; + + // Download aps package + if(!file_exists($this->packages_dir.'/'.$task['path']) || filesize($this->packages_dir.'/'.$task['path']) == 0) { + $ch = curl_init(); + $fh = fopen($this->packages_dir.'/'.$task['path'], 'wb'); + curl_setopt($ch, CURLOPT_FILE, $fh); + //curl_setopt($ch, CURLOPT_HEADER, 0); + curl_setopt($ch, CURLOPT_URL, $task['package_url']); + curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 0); + curl_setopt($ch, CURLOPT_FAILONERROR, 1); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); + if(curl_exec($ch) === false) $app->log(curl_error($ch), 1); + fclose($fh); + curl_close($ch); + } + + /* + $app_to_dl[] = array('name' => $task['path'], + 'url' => $task['package_url'], + 'filesize' => 0, + 'localtarget' => $this->packages_dir.'/'.$task['path']); + + $this->fetchFiles($app_to_dl); + */ + + // Make sure the requirements are given so that this script can execute + $req_ret = $this->checkRequirements(); + if(!$req_ret) return false; + + $metafile = $this->getContentFromZIP($this->packages_dir.'/'.$task['path'], 'APP-META.xml'); + // Check if the meta file is existing + if(!$metafile) + { + $app->dbmaster->query('UPDATE aps_instances SET instance_status = "'.INSTANCE_ERROR.'" + WHERE id = "'.$app->db->quote($task['instance_id']).'";'); + $app->log('Unable to find the meta data file of package '.$task['path'], 1); + return false; + } + + // Rename namespaces and register them + $metadata = str_replace("xmlns=", "ns=", $metafile); + $sxe = new SimpleXMLElement($metadata); + $namespaces = $sxe->getDocNamespaces(true); + foreach($namespaces as $ns => $url) $sxe->registerXPathNamespace($ns, $url); + + // Setup the environment with data for the install location + $this->prepareLocation($task); + + // Create the database if necessary + $this->prepareDatabase($task, $sxe); + + // Unpack the install scripts from the packages + if($this->prepareFiles($task, $sxe) && $this->handle_type == 'install') + { + // Setup the variables from the install script + $this->prepareUserInputData($task); + + // Do the actual installation + $this->doInstallation($task, $sxe); + + // Remove temporary files + $this->cleanup($task, $sxe); + } + + // Finally delete the instance entry + settings + if($this->handle_type == 'delete') + { + $app->db->query('DELETE FROM aps_instances WHERE id = "'.$app->db->quote($task['instance_id']).'";'); + $app->db->query('DELETE FROM aps_instances_settings WHERE instance_id = "'.$app->db->quote($task['instance_id']).'";'); + } + + unset($sxe); + } + +} + +?> diff --git a/server/lib/classes/cron.d/150-awstats.inc.php b/server/lib/classes/cron.d/150-awstats.inc.php index 5b54a181c..9803a89f1 100644 --- a/server/lib/classes/cron.d/150-awstats.inc.php +++ b/server/lib/classes/cron.d/150-awstats.inc.php @@ -54,7 +54,7 @@ class cronjob_awstats extends cronjob { // Create awstats statistics //###################################################################################################### - $sql = "SELECT domain_id, domain, document_root, web_folder, type, system_user, system_group, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain') and stats_type = 'awstats' AND server_id = ".$conf['server_id']; + $sql = "SELECT domain_id, domain, document_root, web_folder, type, system_user, system_group, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain' or type = 'vhostalias') and stats_type = 'awstats' AND server_id = ".$conf['server_id']; $records = $app->db->queryAllRecords($sql); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); @@ -64,7 +64,7 @@ class cronjob_awstats extends cronjob { $yesterday = date('Ymd', strtotime("-1 day", time())); $log_folder = 'log'; - if($rec['type'] == 'vhostsubdomain') { + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($rec['parent_domain_id'])); $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $rec['domain']); if($subdomain_host == '') $subdomain_host = 'web'.$rec['domain_id']; @@ -78,7 +78,7 @@ class cronjob_awstats extends cronjob { continue; } } - $web_folder = ($rec['type'] == 'vhostsubdomain' ? $rec['web_folder'] : 'web'); + $web_folder = (($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web'); $domain = escapeshellcmd($rec['domain']); $statsdir = escapeshellcmd($rec['document_root'].'/'.$web_folder.'/stats'); $awstats_pl = $web_config['awstats_pl']; diff --git a/server/lib/classes/cron.d/150-webalizer.inc.php b/server/lib/classes/cron.d/150-webalizer.inc.php index fb1d76d42..1f9a921f0 100644 --- a/server/lib/classes/cron.d/150-webalizer.inc.php +++ b/server/lib/classes/cron.d/150-webalizer.inc.php @@ -79,7 +79,7 @@ class cronjob_webalizer extends cronjob { } - $sql = "SELECT domain_id, domain, document_root, web_folder, type, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain') and stats_type = 'webalizer' AND server_id = ".$conf['server_id']; + $sql = "SELECT domain_id, domain, document_root, web_folder, type, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain' or type = 'vhostalias') and stats_type = 'webalizer' AND server_id = ".$conf['server_id']; $records = $app->db->queryAllRecords($sql); foreach($records as $rec) { @@ -87,7 +87,7 @@ class cronjob_webalizer extends cronjob { $yesterday = date('Ymd', strtotime("-1 day", time())); $log_folder = 'log'; - if($rec['type'] == 'vhostsubdomain') { + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($rec['parent_domain_id'])); $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $rec['domain']); if($subdomain_host == '') $subdomain_host = 'web'.$rec['domain_id']; @@ -103,7 +103,7 @@ class cronjob_webalizer extends cronjob { } $domain = escapeshellcmd($rec['domain']); - $statsdir = escapeshellcmd($rec['document_root'].'/'.($rec['type'] == 'vhostsubdomain' ? $rec['web_folder'] : 'web').'/stats'); + $statsdir = escapeshellcmd($rec['document_root'].'/'.(($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') ? $rec['web_folder'] : 'web').'/stats'); $webalizer = '/usr/bin/webalizer'; $webalizer_conf_main = '/etc/webalizer/webalizer.conf'; $webalizer_conf = escapeshellcmd($rec['document_root'].'/log/webalizer.conf'); diff --git a/server/lib/classes/cron.d/200-logfiles.inc.php b/server/lib/classes/cron.d/200-logfiles.inc.php index addbf2163..ebf159c87 100644 --- a/server/lib/classes/cron.d/200-logfiles.inc.php +++ b/server/lib/classes/cron.d/200-logfiles.inc.php @@ -60,7 +60,7 @@ class cronjob_logfiles extends cronjob { // Manage and compress web logfiles and create traffic statistics //###################################################################################################### - $sql = "SELECT domain_id, domain, type, document_root, web_folder, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain') AND server_id = ".$conf['server_id']; + $sql = "SELECT domain_id, domain, type, document_root, web_folder, parent_domain_id FROM web_domain WHERE (type = 'vhost' or type = 'vhostsubdomain' or type = 'vhostalias') AND server_id = ".$conf['server_id']; $records = $app->db->queryAllRecords($sql); foreach($records as $rec) { @@ -68,7 +68,7 @@ class cronjob_logfiles extends cronjob { $yesterday = date('Ymd', time() - 86400); $log_folder = 'log'; - if($rec['type'] == 'vhostsubdomain') { + if($rec['type'] == 'vhostsubdomain' || $rec['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($rec['parent_domain_id'])); $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $rec['domain']); if($subdomain_host == '') $subdomain_host = 'web'.$rec['domain_id']; diff --git a/server/lib/classes/cron.d/300-quota_notify.inc.php b/server/lib/classes/cron.d/300-quota_notify.inc.php index 57f388f70..1d24e7c76 100644 --- a/server/lib/classes/cron.d/300-quota_notify.inc.php +++ b/server/lib/classes/cron.d/300-quota_notify.inc.php @@ -119,7 +119,7 @@ class cronjob_quota_notify extends cronjob { $current_month = date('Y-m'); //* Check website traffic quota - $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE (traffic_quota > 0 or traffic_quota_lock = 'y') and (type = 'vhost' OR type = 'vhostsubdomain')"; + $sql = "SELECT sys_groupid,domain_id,domain,traffic_quota,traffic_quota_lock FROM web_domain WHERE (traffic_quota > 0 or traffic_quota_lock = 'y') and (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias')"; $records = $app->db->queryAllRecords($sql); if(is_array($records)) { foreach($records as $rec) { @@ -196,7 +196,7 @@ class cronjob_quota_notify extends cronjob { $global_config = $app->getconf->get_global_config('mail'); //* Check website disk quota - $sql = "SELECT domain_id,sys_groupid,domain,system_user,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain')"; + $sql = "SELECT domain_id,sys_groupid,domain,system_user,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias')"; $records = $app->db->queryAllRecords($sql); if(is_array($records) && !empty($records)) { diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index 23e749557..4793d2884 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -72,7 +72,7 @@ class cronjob_backup extends cronjob { chmod(escapeshellcmd($backup_dir), $backup_dir_permissions); } - $sql = "SELECT * FROM web_domain WHERE server_id = '".$conf['server_id']."' AND (type = 'vhost' OR type = 'vhostsubdomain') AND active = 'y'"; + $sql = "SELECT * FROM web_domain WHERE server_id = '".$conf['server_id']."' AND (type = 'vhost' OR type = 'vhostsubdomain' OR type = 'vhostalias') AND active = 'y'"; $records = $app->db->queryAllRecords($sql); if(is_array($records)) { foreach($records as $rec) { diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 5fc085be7..626721780 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -131,7 +131,7 @@ class apache2_plugin { foreach($web_domains as $web_data) { $custom_php_ini_dir = $web_config['website_basedir'].'/conf/'.$web_data['system_user']; $web_folder = 'web'; - if($web_data['type'] == 'vhostsubdomain') { + if($web_data['type'] == 'vhostsubdomain' || $web_data['type'] == 'vhostalias') { $web_folder = $web_data['web_folder']; $custom_php_ini_dir .= '_' . $web_folder; } @@ -192,7 +192,7 @@ class apache2_plugin { $app->log("CA path error, file does not exist:".$web_config['CA_path'].'/openssl.cnf', LOGLEVEL_ERROR); //* Only vhosts can have a ssl cert - if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain") return; + if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") return; // if(!is_dir($data['new']['document_root'].'/ssl')) exec('mkdir -p '.$data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); @@ -396,7 +396,7 @@ class apache2_plugin { if($this->action != 'insert') $this->action = 'update'; - if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['parent_domain_id'] > 0) { + if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) { $old_parent_domain_id = intval($data['old']['parent_domain_id']); $new_parent_domain_id = intval($data['new']['parent_domain_id']); @@ -430,7 +430,7 @@ class apache2_plugin { } if($data['new']['document_root'] == '') { - if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); + if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { @@ -444,7 +444,7 @@ class apache2_plugin { $web_folder = 'web'; $log_folder = 'log'; - if($data['new']['type'] == 'vhostsubdomain') { + if($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($data['new']['parent_domain_id'])); $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['new']['domain']); if($subdomain_host == '') $subdomain_host = 'web'.$data['new']['domain_id']; @@ -521,7 +521,7 @@ class apache2_plugin { //* Remove protection of old folders $app->system->web_folder_protection($data['old']['document_root'], false); - if($data["new"]["type"] != "vhostsubdomain") { + if($data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") { //* Move the site data $tmp_docroot = explode('/', $data['new']['document_root']); unset($tmp_docroot[count($tmp_docroot)-1]); @@ -677,7 +677,7 @@ class apache2_plugin { // setting a local var here // normally $conf['templates'] = "/usr/local/ispconfig/server/conf"; - if($this->action == 'insert' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain')) { + if($this->action == 'insert' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { // Copy the error pages if($data['new']['errordocs']) { @@ -723,7 +723,7 @@ class apache2_plugin { exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before - } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { + } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { @@ -741,7 +741,7 @@ class apache2_plugin { exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); } // end copy error docs - // Set the quota for the user, but only for vhosts, not vhostsubdomains + // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias if($username != '' && $app->system->is_user($username) && $data['new']['type'] == 'vhost') { if($data['new']['hd_quota'] > 0) { $blocks_soft = $data['new']['hd_quota'] * 1024; @@ -873,7 +873,9 @@ class apache2_plugin { $app->system->chown($data['new']['document_root'].'/webdav', $username); $app->system->chgrp($data['new']['document_root'].'/webdav', $groupname); } - } elseif(($this->action == 'insert' && $data['new']['type'] == 'vhostsubdomain') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhostsubdomain')) { + } elseif((($data['new']['type'] == 'vhostsubdomain') || ($data['new']['type'] == 'vhostalias')) && + (($this->action == 'insert') || ($web_config['set_folder_permissions_on_update'] == 'y'))) { + if($web_config['security_level'] == 20) { $app->system->chmod($data['new']['document_root'].'/' . $web_folder, 0710); $app->system->chown($data['new']['document_root'].'/' . $web_folder, $username); @@ -905,7 +907,7 @@ class apache2_plugin { //* Write the custom php.ini file, if custom_php_ini fieled is not empty $custom_php_ini_dir = $web_config['website_basedir'].'/conf/'.$data['new']['system_user']; - if($data['new']['type'] == 'vhostsubdomain') $custom_php_ini_dir .= '_' . $web_folder; + if($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') $custom_php_ini_dir .= '_' . $web_folder; if(!is_dir($web_config['website_basedir'].'/conf')) $app->system->mkdir($web_config['website_basedir'].'/conf'); //* add open_basedir restriction to custom php.ini content, required for suphp only @@ -1087,7 +1089,7 @@ class apache2_plugin { } // get alias domains (co-domains and subdomains) - $aliases = $app->db->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y' AND type != 'vhostsubdomain'"); + $aliases = $app->db->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y' AND (type != 'vhostsubdomain' OR type != 'vhostalias')"); $alias_seo_redirects = array(); switch($data['new']['subdomain']) { case 'www': @@ -1256,7 +1258,7 @@ class apache2_plugin { $php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir']; $fcgi_tpl->setVar('open_basedir', escapeshellcmd($php_open_basedir)); - $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].($data['new']['type'] == 'vhostsubdomain' ? '_web' . $data['new']['domain_id'] : '')); + $fcgi_starter_script = escapeshellcmd($fastcgi_starter_path.$fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); $app->system->file_put_contents($fcgi_starter_script, $fcgi_tpl->grab()); unset($fcgi_tpl); @@ -1268,7 +1270,7 @@ class apache2_plugin { $tpl->setVar('fastcgi_alias', $fastcgi_config['fastcgi_alias']); $tpl->setVar('fastcgi_starter_path', $fastcgi_starter_path); - $tpl->setVar('fastcgi_starter_script', $fastcgi_config['fastcgi_starter_script'].($data['new']['type'] == 'vhostsubdomain' ? '_web' . $data['new']['domain_id'] : '')); + $tpl->setVar('fastcgi_starter_script', $fastcgi_config['fastcgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); $tpl->setVar('fastcgi_config_syntax', $fastcgi_config['fastcgi_config_syntax']); $tpl->setVar('fastcgi_max_requests', $fastcgi_config['fastcgi_max_requests']); @@ -1347,7 +1349,7 @@ class apache2_plugin { //$cgi_config = $app->getconf->get_server_config($conf['server_id'], 'cgi'); $cgi_config['cgi_starter_path'] = $web_config['website_basedir'].'/php-cgi-scripts/[system_user]/'; - $cgi_config['cgi_starter_script'] = 'php-cgi-starter'.($data['new']['type'] == 'vhostsubdomain' ? '_web' . $data['new']['domain_id'] : ''); + $cgi_config['cgi_starter_script'] = 'php-cgi-starter'.(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : ''); $cgi_config['cgi_bin'] = '/usr/bin/php-cgi'; $cgi_starter_path = str_replace('[system_user]', $data['new']['system_user'], $cgi_config['cgi_starter_path']); @@ -1382,7 +1384,7 @@ class apache2_plugin { $cgi_tpl->setVar('php_ini_path', escapeshellcmd($fastcgi_config['fastcgi_phpini_path'])); } - $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config['cgi_starter_script'].($data['new']['type'] == 'vhostsubdomain' ? '_web' . $data['new']['domain_id'] : '')); + $cgi_starter_script = escapeshellcmd($cgi_starter_path.$cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); $app->system->file_put_contents($cgi_starter_script, $cgi_tpl->grab()); unset($cgi_tpl); @@ -1394,7 +1396,7 @@ class apache2_plugin { $app->system->chgrp($cgi_starter_script, $data['new']['system_group']); $tpl->setVar('cgi_starter_path', $cgi_starter_path); - $tpl->setVar('cgi_starter_script', $cgi_config['cgi_starter_script'].($data['new']['type'] == 'vhostsubdomain' ? '_web' . $data['new']['domain_id'] : '')); + $tpl->setVar('cgi_starter_script', $cgi_config['cgi_starter_script'].(($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') ? '_web' . $data['new']['domain_id'] : '')); } @@ -1558,7 +1560,7 @@ class apache2_plugin { } //* Create awstats configuration - if($data['new']['stats_type'] == 'awstats' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain')) { + if($data['new']['stats_type'] == 'awstats' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { $this->awstats_update($data, $web_config); } @@ -1715,7 +1717,7 @@ class apache2_plugin { $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); $fastcgi_config = $app->getconf->get_server_config($conf['server_id'], 'fastcgi'); - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') $app->system->web_folder_protection($data['old']['document_root'], false); + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') $app->system->web_folder_protection($data['old']['document_root'], false); //* Check if this is a chrooted setup if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) { @@ -1727,7 +1729,7 @@ class apache2_plugin { //* Remove the mounts $log_folder = 'log'; $web_folder = ''; - if($data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain`,`document_root` FROM web_domain WHERE domain_id = '.intval($data['old']['parent_domain_id'])); if($tmp['domain'] != ''){ $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['old']['domain']); @@ -1773,7 +1775,7 @@ class apache2_plugin { unset($subdomain_hosts); } - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain'){ + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); @@ -1797,7 +1799,7 @@ class apache2_plugin { } unset($log_folders); - if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) { + if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['type'] != 'vhostalias' && $data['old']['parent_domain_id'] > 0) { //* This is a alias domain or subdomain, so we have to update the website instead $parent_domain_id = intval($data['old']['parent_domain_id']); $tmp = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$parent_domain_id." AND active = 'y'"); @@ -1831,7 +1833,7 @@ class apache2_plugin { $app->system->unlink($vhost_file); $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $docroot = escapeshellcmd($data['old']['document_root']); if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { @@ -1852,9 +1854,9 @@ class apache2_plugin { // we use strict check as otherwise directories named '0' may not be deleted $do_delete = false; } else { - // read all vhost subdomains with same parent domain + // read all vhost subdomains and alias with same parent domain $used_paths = array(); - $tmp = $app->db->queryAllRecords("SELECT `web_folder` FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".intval($data['old']['parent_domain_id'])." AND domain_id != ".intval($data['old']['domain_id'])); + $tmp = $app->db->queryAllRecords("SELECT `web_folder` FROM web_domain WHERE (type = 'vhostsubdomain' OR type = 'vhostalias') AND parent_domain_id = ".intval($data['old']['parent_domain_id'])." AND domain_id != ".intval($data['old']['domain_id'])); foreach($tmp as $tmprec) { // we normalize the folder entries because we need to compare them $tmp_folder = preg_replace('/[\/]{2,}/', '/', $tmprec['web_folder']); // replace / occuring multiple times @@ -1973,7 +1975,7 @@ class apache2_plugin { $this->awstats_delete($data, $web_config); } - if($data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $app->system->web_folder_protection($parent_web_document_root, true); } @@ -2083,7 +2085,7 @@ class apache2_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); @@ -2184,7 +2186,7 @@ class apache2_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); @@ -2239,7 +2241,7 @@ class apache2_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($data['old']['path'], 0, 1) == '/') $data['old']['path'] = substr($data['old']['path'], 1); diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 1a6e57ba0..abe085862 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -102,7 +102,7 @@ class nginx_plugin { $app->log("CA path error, file does not exist:".$web_config['CA_path'].'/openssl.cnf', LOGLEVEL_ERROR); //* Only vhosts can have a ssl cert - if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain") return; + if($data["new"]["type"] != "vhost" && $data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") return; // if(!is_dir($data['new']['document_root'].'/ssl')) exec('mkdir -p '.$data['new']['document_root'].'/ssl'); if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl'); @@ -314,7 +314,7 @@ class nginx_plugin { if($this->action != 'insert') $this->action = 'update'; - if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['parent_domain_id'] > 0) { + if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) { $old_parent_domain_id = intval($data['old']['parent_domain_id']); $new_parent_domain_id = intval($data['new']['parent_domain_id']); @@ -348,7 +348,7 @@ class nginx_plugin { } if($data['new']['document_root'] == '') { - if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set', LOGLEVEL_WARN); + if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') $app->log('document_root not set', LOGLEVEL_WARN); return 0; } if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { @@ -362,7 +362,7 @@ class nginx_plugin { $web_folder = 'web'; $log_folder = 'log'; - if($data['new']['type'] == 'vhostsubdomain') { + if($data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($data['new']['parent_domain_id'])); $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['new']['domain']); if($subdomain_host == '') $subdomain_host = 'web'.$data['new']['domain_id']; @@ -436,7 +436,7 @@ class nginx_plugin { } } - if($data["new"]["type"] != "vhostsubdomain") { + if($data["new"]["type"] != "vhostsubdomain" && $data["new"]["type"] != "vhostalias") { //* Move the site data $tmp_docroot = explode('/', $data['new']['document_root']); unset($tmp_docroot[count($tmp_docroot)-1]); @@ -592,7 +592,7 @@ class nginx_plugin { // setting a local var here // normally $conf['templates'] = "/usr/local/ispconfig/server/conf"; - if($this->action == 'insert' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain')) { + if($this->action == 'insert' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { // Copy the error pages if($data['new']['errordocs']) { @@ -638,7 +638,7 @@ class nginx_plugin { exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/'); //** Copy the error documents on update when the error document checkbox has been activated and was deactivated before - } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { + } elseif ($this->action == 'update' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias') && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { $error_page_path = escapeshellcmd($data['new']['document_root']).'/' . $web_folder . '/error/'; if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']), 0, 2))) { @@ -656,7 +656,7 @@ class nginx_plugin { exec('chown -R '.$data['new']['system_user'].':'.$data['new']['system_group'].' '.$error_page_path); } // end copy error docs - // Set the quota for the user, but only for vhosts, not vhostsubdomains + // Set the quota for the user, but only for vhosts, not vhostsubdomains or vhostalias if($username != '' && $app->system->is_user($username) && $data['new']['type'] == 'vhost') { if($data['new']['hd_quota'] > 0) { $blocks_soft = $data['new']['hd_quota'] * 1024; @@ -788,7 +788,9 @@ class nginx_plugin { //$app->system->chown($data['new']['document_root'].'/webdav',$username); //$app->system->chgrp($data['new']['document_root'].'/webdav',$groupname); } - } elseif(($this->action == 'insert' && $data['new']['type'] == 'vhostsubdomain') or ($web_config['set_folder_permissions_on_update'] == 'y' && $data['new']['type'] == 'vhostsubdomain')) { + } elseif((($data['new']['type'] == 'vhostsubdomain') || ($data['new']['type'] == 'vhostalias')) && + (($this->action == 'insert') || ($web_config['set_folder_permissions_on_update'] == 'y'))) { + if($web_config['security_level'] == 20) { $app->system->chmod($data['new']['document_root'].'/' . $web_folder, 0710); $app->system->chown($data['new']['document_root'].'/' . $web_folder, $username); @@ -1293,7 +1295,7 @@ class nginx_plugin { } // get alias domains (co-domains and subdomains) - $aliases = $app->db->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y' AND type != 'vhostsubdomain'"); + $aliases = $app->db->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y' AND (type != 'vhostsubdomain' OR type != 'vhostalias')"); $alias_seo_redirects = array(); if(is_array($aliases)) { foreach($aliases as $alias) { @@ -1610,7 +1612,7 @@ class nginx_plugin { } //* Create awstats configuration - if($data['new']['stats_type'] == 'awstats' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain')) { + if($data['new']['stats_type'] == 'awstats' && ($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain' || $data['new']['type'] == 'vhostalias')) { $this->awstats_update($data, $web_config); } @@ -1728,7 +1730,7 @@ class nginx_plugin { $app->uses('system'); $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') $app->system->web_folder_protection($data['old']['document_root'], false); + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') $app->system->web_folder_protection($data['old']['document_root'], false); //* Check if this is a chrooted setup if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) { @@ -1740,7 +1742,7 @@ class nginx_plugin { //* Remove the mounts $log_folder = 'log'; $web_folder = ''; - if($data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $tmp = $app->db->queryOneRecord('SELECT `domain`,`document_root` FROM web_domain WHERE domain_id = '.intval($data['old']['parent_domain_id'])); if($tmp['domain'] != ''){ $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['old']['domain']); @@ -1786,7 +1788,7 @@ class nginx_plugin { unset($subdomain_hosts); } - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain'){ + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ //if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); @@ -1810,7 +1812,7 @@ class nginx_plugin { } unset($log_folders); - if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) { + if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['type'] != 'vhostalias' && $data['old']['parent_domain_id'] > 0) { //* This is a alias domain or subdomain, so we have to update the website instead $parent_domain_id = intval($data['old']['parent_domain_id']); $tmp = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$parent_domain_id." AND active = 'y'"); @@ -1844,7 +1846,7 @@ class nginx_plugin { $app->system->unlink($vhost_file); $app->log('Removing vhost file: '.$vhost_file, LOGLEVEL_DEBUG); - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { $docroot = escapeshellcmd($data['old']['document_root']); if($docroot != '' && !stristr($docroot, '..')) { if($data['old']['type'] == 'vhost') { @@ -1867,7 +1869,7 @@ class nginx_plugin { } else { // read all vhost subdomains with same parent domain $used_paths = array(); - $tmp = $app->db->queryAllRecords("SELECT `web_folder` FROM web_domain WHERE type = 'vhostsubdomain' AND parent_domain_id = ".intval($data['old']['parent_domain_id'])." AND domain_id != ".intval($data['old']['domain_id'])); + $tmp = $app->db->queryAllRecords("SELECT `web_folder` FROM web_domain WHERE (type = 'vhostsubdomain' OR type = 'vhostalias') AND parent_domain_id = ".intval($data['old']['parent_domain_id'])." AND domain_id != ".intval($data['old']['domain_id'])); foreach($tmp as $tmprec) { // we normalize the folder entries because we need to compare them $tmp_folder = preg_replace('/[\/]{2,}/', '/', $tmprec['web_folder']); // replace / occuring multiple times @@ -2023,7 +2025,7 @@ class nginx_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); @@ -2102,7 +2104,7 @@ class nginx_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($folder['path'], 0, 1) == '/') $folder['path'] = substr($folder['path'], 1); @@ -2139,7 +2141,7 @@ class nginx_plugin { } $web_folder = 'web'; - if($website['type'] == 'vhostsubdomain') $web_folder = $website['web_folder']; + if($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') $web_folder = $website['web_folder']; //* Get the folder path. if(substr($data['old']['path'], 0, 1) == '/') $data['old']['path'] = substr($data['old']['path'], 1); @@ -2210,7 +2212,7 @@ class nginx_plugin { $website_auth_location['path'] .= '/'; } $basic_auth_locations[] = array('htpasswd_location' => '/'.$website_auth_location['path'], - 'htpasswd_path' => $website['document_root'].'/' . ($website['type'] == 'vhostsubdomain' ? $website['web_folder'] : 'web') . '/'.$website_auth_location['path']); + 'htpasswd_path' => $website['document_root'].'/' . (($website['type'] == 'vhostsubdomain' || $website['type'] == 'vhostalias') ? $website['web_folder'] : 'web') . '/'.$website_auth_location['path']); } } return $basic_auth_locations; @@ -2722,7 +2724,7 @@ class nginx_plugin { // web domain doesn't match hostname if(substr($hostname, -strlen($web['domain'])) != $web['domain']) continue; // own vhost and therefore server {} container of its own - //if($web['type'] == 'vhostsubdomain') continue; + //if($web['type'] == 'vhostsubdomain' || $web['type'] == 'vhostalias') continue; // alias domains/subdomains using rewrites and therefore a server {} container of their own //if(($web['type'] == 'alias' || $web['type'] == 'subdomain') && $web['redirect_type'] != '' && $web['redirect_path'] != '') continue; @@ -2733,7 +2735,7 @@ class nginx_plugin { if($web['domain'] == $hostname){ if($web['domain_id'] == $domain_id || $web['parent_domain_id'] == $domain_id){ // own vhost and therefore server {} container of its own - if($web['type'] == 'vhostsubdomain') return false; + if($web['type'] == 'vhostsubdomain' || $web['type'] == 'vhostalias') return false; // alias domains/subdomains using rewrites and therefore a server {} container of their own if(($web['type'] == 'alias' || $web['type'] == 'subdomain') && $web['redirect_type'] != '' && $web['redirect_path'] != '') return false; return true; @@ -2747,7 +2749,7 @@ class nginx_plugin { if($web['domain'] == $hostname || $web['subdomain'].'.'.$web['domain'] == $hostname){ if($web['domain_id'] == $domain_id || $web['parent_domain_id'] == $domain_id){ // own vhost and therefore server {} container of its own - if($web['type'] == 'vhostsubdomain') return false; + if($web['type'] == 'vhostsubdomain' || $web['type'] == 'vhostalias') return false; // alias domains/subdomains using rewrites and therefore a server {} container of their own if(($web['type'] == 'alias' || $web['type'] == 'subdomain') && $web['redirect_type'] != '' && $web['redirect_path'] != '') return false; return true; @@ -2760,7 +2762,7 @@ class nginx_plugin { if(preg_match($pattern, $hostname)){ if($web['domain_id'] == $domain_id || $web['parent_domain_id'] == $domain_id){ // own vhost and therefore server {} container of its own - if($web['type'] == 'vhostsubdomain') return false; + if($web['type'] == 'vhostsubdomain' || $web['type'] == 'vhostalias') return false; // alias domains/subdomains using rewrites and therefore a server {} container of their own if(($web['type'] == 'alias' || $web['type'] == 'subdomain') && $web['redirect_type'] != '' && $web['redirect_path'] != '') return false; return true; diff --git a/server/plugins-available/nginx_reverseproxy_plugin.inc.php b/server/plugins-available/nginx_reverseproxy_plugin.inc.php index a17c5ba22..1f68649fb 100644 --- a/server/plugins-available/nginx_reverseproxy_plugin.inc.php +++ b/server/plugins-available/nginx_reverseproxy_plugin.inc.php @@ -63,7 +63,7 @@ class nginx_reverseproxy_plugin { if($this->action != 'insert') $this->action = 'update'; - if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['parent_domain_id'] > 0) { + if($data['new']['type'] != 'vhost' && $data['new']['type'] != 'vhostsubdomain' && $data['new']['type'] != 'vhostalias' && $data['new']['parent_domain_id'] > 0) { $old_parent_domain_id = intval($data['old']['parent_domain_id']); $new_parent_domain_id = intval($data['new']['parent_domain_id']); @@ -130,7 +130,7 @@ class nginx_reverseproxy_plugin { // get alias domains (co-domains and subdomains) - $aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND type != 'vhostsubdomain' AND active = 'y'"); + $aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND (type != 'vhostsubdomain' OR type != 'vhostalias') AND active = 'y'"); $server_alias = array(); switch($data['new']['subdomain']) { case 'www': @@ -280,7 +280,7 @@ class nginx_reverseproxy_plugin { $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'web'); - if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') { + if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain' || $data['old']['type'] == 'vhostalias') { //* This is a website // Deleting the vhost file, symlink and the data directory -- GitLab