Skip to content

Commit c3bf39e

Browse files
author
mcramer
committed
Changes for subdomain vhosts:
- Fixed missing templates and language entries - Previous subdomain mode can be used concurrently - Changed log path to a more convenient location
1 parent 8d1b1f1 commit c3bf39e

16 files changed

+408
-29
lines changed

interface/web/admin/lib/lang/de_system_config.lng

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ $wb['dbuser_prefix_txt'] = 'Datenbankbenutzer Prefix';
66
$wb['shelluser_prefix_txt'] = 'Shellbenutzer Prefix';
77
$wb['ftpuser_prefix_txt'] = 'FTP Benutzer Prefix';
88
$wb['vhost_subdomains_txt'] = 'Subdomains als Website anlegen';
9-
$wb['vhost_subdomains_note_txt'] = 'Diese Einstellung kann nicht geändert werden, wenn Subdomains im System vorhanden sind!';
9+
$wb['vhost_subdomains_note_txt'] = 'Diese Einstellung kann nicht wieder deaktiviert werden, wenn Vhost Subdomains im System vorhanden sind!';
1010
$wb['dbname_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbanknamen Prefix.';
1111
$wb['dbuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbankbenutzer Prefix.';
1212
$wb['ftpuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in FTP Benutzer Prefix.';

interface/web/admin/lib/lang/en_system_config.lng

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ $wb["shelluser_prefix_txt"] = 'Shell user prefix';
1010
$wb["webdavuser_prefix_txt"] = 'Webdav user prefix';
1111
$wb["ftpuser_prefix_txt"] = 'FTP user prefix';
1212
$wb['vhost_subdomains_txt'] = 'Create Subdomains as web site';
13-
$wb['vhost_subdomains_note_txt'] = 'You cannot change this as long as subdomains exist in the system!';
13+
$wb['vhost_subdomains_note_txt'] = 'You cannot disable this as long as vhost subdomains exist in the system!';
1414
$wb["dbname_prefix_error_regex"] = 'Char not allowed in database name prefix.';
1515
$wb["dbuser_prefix_error_regex"] = 'Char not allowed in database user prefix.';
1616
$wb["ftpuser_prefix_error_regex"] = 'Char not allowed in ftp user prefix.';

interface/web/admin/system_config_edit.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ function onUpdateSave($sql) {
8888

8989
$server_config_array = $app->getconf->get_global_config();
9090
$new_config = $app->tform->encode($this->dataRecord,$section);
91-
if($section == 'sites' && $new_config['vhost_subdomains'] != $server_config_array['vhost_subdomains']) {
92-
// check for existing subdomains
93-
$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'subdomain' OR `type` = 'vhostsubdomain'");
91+
if($section == 'sites' && $new_config['vhost_subdomains'] != 'y' && $server_config_array['vhost_subdomains'] == 'y') {
92+
// check for existing vhost subdomains, if found the mode cannot be disabled
93+
$check = $app->db->queryOneRecord("SELECT COUNT(*) as `cnt` FROM `web_domain` WHERE `type` = 'vhostsubdomain'");
9494
if($check['cnt'] > 0) {
95-
$new_config['vhost_subdomains'] = $server_config_array['vhost_subdomains'];
95+
$new_config['vhost_subdomains'] = 'y';
9696
}
9797
}
9898
$server_config_array[$section] = $new_config;

interface/web/sites/form/web_vhost_subdomain.tform.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@
277277
$form["tabs"]['redirect'] = array (
278278
'title' => "Redirect",
279279
'width' => 100,
280-
'template' => "templates/web_domain_redirect.htm",
280+
'template' => "templates/web_vhost_subdomain_redirect.htm",
281281
'readonly' => false,
282282
'fields' => array (
283283
##################################
@@ -317,7 +317,7 @@
317317
$form["tabs"]['ssl'] = array (
318318
'title' => "SSL",
319319
'width' => 100,
320-
'template' => "templates/web_domain_ssl.htm",
320+
'template' => "templates/web_vhost_subdomain_ssl.htm",
321321
'readonly' => false,
322322
'fields' => array (
323323
##################################
@@ -453,7 +453,7 @@
453453
$form["tabs"]['stats'] = array (
454454
'title' => "Stats",
455455
'width' => 100,
456-
'template' => "templates/web_domain_stats.htm",
456+
'template' => "templates/web_vhost_subdomain_stats.htm",
457457
'readonly' => false,
458458
'fields' => array (
459459
##################################
@@ -486,7 +486,7 @@
486486
$form["tabs"]['backup'] = array (
487487
'title' => "Backup",
488488
'width' => 100,
489-
'template' => "templates/web_domain_backup.htm",
489+
'template' => "templates/web_vhost_subdomain_backup.htm",
490490
'readonly' => false,
491491
'fields' => array (
492492
##################################
@@ -524,7 +524,7 @@
524524
$form["tabs"]['advanced'] = array (
525525
'title' => "Options",
526526
'width' => 100,
527-
'template' => "templates/web_domain_advanced.htm",
527+
'template' => "templates/web_vhost_subdomain_advanced.htm",
528528
'readonly' => false,
529529
'fields' => array (
530530
##################################

interface/web/sites/lib/lang/de_web_vhost_subdomain.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ $wb['ssl_bundle_txt'] = 'SSL-Bundle';
1515
$wb['ssl_action_txt'] = 'SSL-Aktion';
1616
$wb['server_id_txt'] = 'Server';
1717
$wb['domain_txt'] = 'Domain';
18+
$wb["host_txt"] = 'Host';
1819
$wb['type_txt'] = 'Typ';
1920
$wb['parent_domain_id_txt'] = 'Zugehörige Website';
2021
$wb['web_folder_error_regex'] = 'Ungültige Ordnerangabe, bitte keinen / eingeben.';

interface/web/sites/lib/lang/en_web_vhost_subdomain.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ $wb["ssl_action_txt"] = 'SSL Action';
1818
$wb["ssl_domain_txt"] = 'SSL Domain';
1919
$wb["server_id_txt"] = 'Server';
2020
$wb["domain_txt"] = 'Domain';
21+
$wb["host_txt"] = 'Hostname';
2122
$wb['web_folder_error_regex'] = 'Invalid folder entered. Please do not enter a slash.';
2223
$wb["type_txt"] = 'Type';
2324
$wb["parent_domain_id_txt"] = 'Parent Website';

interface/web/sites/lib/module.conf.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,20 @@
2121

2222
if($app->auth->get_client_limit($userid,'web_subdomain') != 0)
2323
{
24+
$items[] = array( 'title' => "Subdomain",
25+
'target' => 'content',
26+
'link' => 'sites/web_subdomain_list.php',
27+
'html_id' => 'subdomain_list');
28+
2429
// read web config
2530
$app->uses('getconf');
2631
$sys_config = $app->getconf->get_global_config('sites');
27-
$items[] = array( 'title' => "Subdomain",
32+
if($sys_config['vhost_subdomains'] == 'y') {
33+
$items[] = array( 'title' => "Subdomain (Vhost)",
2834
'target' => 'content',
29-
'link' => 'sites/' . ($sys_config['vhost_subdomains'] == 'y' ? 'web_vhost_subdomain_list.php' : 'web_subdomain_list.php'),
35+
'link' => 'sites/web_vhost_subdomain_list.php',
3036
'html_id' => 'subdomain_list');
37+
}
3138
}
3239

3340
if($app->auth->get_client_limit($userid,'web_aliasdomain') != 0)
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
<h2><tmpl_var name="list_head_txt"></h2>
2+
<p><tmpl_var name="list_desc_txt"></p>
3+
4+
<div class="panel panel_web_domain">
5+
6+
<div class="pnl_formsarea">
7+
<fieldset class="inlineLabels">
8+
<input name="document_root" id="document_root" value="{tmpl_var name='document_root'}" size="30" maxlength="255" type="hidden" class="textInput" />
9+
<div class="ctrlHolder">
10+
<label for="system_user">{tmpl_var name='system_user_txt'}</label>
11+
<label for="system_user">{tmpl_var name='system_user'}</label>
12+
<input name="system_user" id="system_user" value="{tmpl_var name='system_user'}" type="hidden" />
13+
</div>
14+
<div class="ctrlHolder">
15+
<label for="system_group">{tmpl_var name='system_group_txt'}</label>
16+
<label for="system_group">{tmpl_var name='system_group'}</label>
17+
<input name="system_group" id="system_group" value="{tmpl_var name='system_group'}" type="hidden" />
18+
</div>
19+
<div class="ctrlHolder apache">
20+
<label for="allow_override">{tmpl_var name='allow_override_txt'}</label>
21+
<input name="allow_override" id="allow_override" value="{tmpl_var name='allow_override'}" size="30" maxlength="255" type="text" class="textInput" />
22+
</div>
23+
<div class="phpfpm">
24+
<div class="ctrlHolder">
25+
<p class="label">{tmpl_var name='php_fpm_use_socket_txt'}</p>
26+
<div class="multiField">
27+
{tmpl_var name='php_fpm_use_socket'}
28+
</div>
29+
</div>
30+
<div class="ctrlHolder">
31+
<label for="pm">{tmpl_var name='pm_txt'}</label>
32+
<select name="pm" id="pm" class="selectInput">
33+
{tmpl_var name='pm'}
34+
</select>
35+
</div>
36+
<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;">
37+
{tmpl_var name='pm_ondemand_hint_txt'}
38+
</div>
39+
<div class="ctrlHolder">
40+
<label for="pm_max_children">{tmpl_var name='pm_max_children_txt'}</label>
41+
<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" />
42+
</div>
43+
<div class="ctrlHolder pm_dynamic">
44+
<label for="pm_start_servers">{tmpl_var name='pm_start_servers_txt'}</label>
45+
<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" />
46+
</div>
47+
<div class="ctrlHolder pm_dynamic">
48+
<label for="pm_min_spare_servers">{tmpl_var name='pm_min_spare_servers_txt'}</label>
49+
<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" />
50+
</div>
51+
<div class="ctrlHolder pm_dynamic">
52+
<label for="pm_max_spare_servers">{tmpl_var name='pm_max_spare_servers_txt'}</label>
53+
<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" />
54+
</div>
55+
<div class="ctrlHolder pm_ondemand">
56+
<label for="pm_process_idle_timeout">{tmpl_var name='pm_process_idle_timeout_txt'}</label>
57+
<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" />&nbsp;s
58+
</div>
59+
<div class="ctrlHolder">
60+
<label for="pm_max_requests">{tmpl_var name='pm_max_requests_txt'}</label>
61+
<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" />
62+
</div>
63+
</div>
64+
<div class="ctrlHolder">
65+
<label for="php_open_basedir">{tmpl_var name='php_open_basedir_txt'}</label>
66+
<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;" />
67+
</div>
68+
<div class="ctrlHolder">
69+
<label for="custom_php_ini">{tmpl_var name='custom_php_ini_txt'}</label>
70+
<textarea name="custom_php_ini" id="custom_php_ini" rows='10' cols='50' style="width:400px;">{tmpl_var name='custom_php_ini'}</textarea>
71+
</div>
72+
<div class="ctrlHolder apache">
73+
<label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label>
74+
<textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea>
75+
</div>
76+
<div class="ctrlHolder nginx">
77+
<label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label>
78+
<textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea>
79+
</div>
80+
</fieldset>
81+
82+
<input type="hidden" name="id" value="{tmpl_var name='id'}">
83+
84+
<div class="buttonHolder buttons">
85+
<button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
86+
<button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
87+
</div>
88+
</div>
89+
90+
</div>
91+
<script language="JavaScript" type="text/javascript">
92+
var webId = jQuery('input[name="id"]').val();
93+
var serverId;
94+
getServerId();
95+
adjustForm();
96+
97+
var pm = jQuery('#pm').val();
98+
pmMode(pm);
99+
jQuery('#pm').change(function(){
100+
pm = jQuery(this).val();
101+
pmMode(pm);
102+
});
103+
104+
function pmMode(pm){
105+
switch(pm){
106+
case "static":
107+
jQuery('.pm_dynamic').add('.pm_ondemand').hide();
108+
jQuery('.pm_static').show();
109+
break;
110+
case "dynamic":
111+
jQuery('.pm_static').add('.pm_ondemand').hide();
112+
jQuery('.pm_dynamic').show();
113+
break;
114+
case "ondemand":
115+
jQuery('.pm_static').add('.pm_dynamic').hide();
116+
jQuery('.pm_ondemand').show();
117+
break;
118+
}
119+
}
120+
121+
function getServerId(){
122+
jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
123+
serverId = data.serverid;
124+
});
125+
}
126+
127+
function adjustForm(){
128+
jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
129+
if(data.servertype == "nginx"){
130+
jQuery('.nginx').show();
131+
jQuery('.apache').hide();
132+
} else {
133+
jQuery('.nginx').hide();
134+
jQuery('.apache').show();
135+
}
136+
});
137+
jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getphptype"}, function(data) {
138+
if(data.phptype == "php-fpm"){
139+
jQuery('.phpfpm').show();
140+
} else {
141+
jQuery('.phpfpm').hide();
142+
}
143+
});
144+
}
145+
146+
</script>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<h2><tmpl_var name="list_head_txt"></h2>
2+
<p><tmpl_var name="list_desc_txt"></p>
3+
4+
<div class="panel panel_web_domain">
5+
6+
<div class="pnl_formsarea">
7+
<fieldset class="inlineLabels"><legend>Backup</legend>
8+
<div class="ctrlHolder">
9+
<label for="backup_interval">{tmpl_var name='backup_interval_txt'}</label>
10+
<select name="backup_interval" id="backup_interval" class="selectInput">
11+
{tmpl_var name='backup_interval'}
12+
</select>
13+
</div>
14+
<div class="ctrlHolder">
15+
<label for="backup_copies">{tmpl_var name='backup_copies_txt'}</label>
16+
<select name="backup_copies" id="backup_copies" class="selectInput">
17+
{tmpl_var name='backup_copies'}
18+
</select>
19+
</div>
20+
</fieldset>
21+
22+
{tmpl_var name='backup_records'}
23+
24+
<input type="hidden" name="id" value="{tmpl_var name='id'}">
25+
26+
<div class="buttonHolder buttons">
27+
<button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
28+
<button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
29+
</div>
30+
</div>
31+
32+
</div>
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<h2><tmpl_var name="list_head_txt"></h2>
2+
<p><tmpl_var name="list_desc_txt"></p>
3+
4+
<div class="panel panel_web_domain">
5+
6+
<div class="pnl_formsarea">
7+
<fieldset class="inlineLabels">
8+
<div class="ctrlHolder">
9+
<label for="redirect_type">{tmpl_var name='redirect_type_txt'}</label>
10+
<select name="redirect_type" id="redirect_type" class="selectInput formLengthHalf">
11+
{tmpl_var name='redirect_type'}
12+
</select>
13+
</div>
14+
<div class="ctrlHolder">
15+
<label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label>
16+
<input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" />
17+
</div>
18+
<div class="ctrlHolder">
19+
<label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label>
20+
<select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf">
21+
{tmpl_var name='seo_redirect'}
22+
</select>
23+
</div>
24+
</fieldset>
25+
26+
<input type="hidden" name="id" value="{tmpl_var name='id'}">
27+
28+
<div class="buttonHolder buttons">
29+
<button class="positive iconstxt icoPositive" type="button" value="{tmpl_var name='btn_save_txt'}" onClick="submitForm('pageForm','sites/web_domain_edit.php');"><span>{tmpl_var name='btn_save_txt'}</span></button>
30+
<button class="negative iconstxt icoNegative" type="button" value="{tmpl_var name='btn_cancel_txt'}" onClick="loadContent('sites/web_domain_list.php');"><span>{tmpl_var name='btn_cancel_txt'}</span></button>
31+
</div>
32+
</div>
33+
34+
</div>
35+
<script language="JavaScript" type="text/javascript">
36+
var webId = jQuery('input[name="id"]').val();
37+
var serverId;
38+
getServerId(webId);
39+
40+
function getServerId(webId){
41+
jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {web_id : webId, type : "getserverid"}, function(data) {
42+
serverId = data.serverid;
43+
adjustForm(serverId);
44+
});
45+
}
46+
47+
function adjustForm(serverId){
48+
jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
49+
var selected = jQuery('#redirect_type').val();
50+
if(data.servertype == "nginx"){
51+
jQuery("#redirect_type option[value='R']").attr('disabled','disabled');
52+
jQuery('#redirect_type option[value="L"]').attr('disabled','disabled');
53+
jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled');
54+
jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled');
55+
56+
jQuery('#redirect_type option[value="R"]').hide();
57+
jQuery('#redirect_type option[value="L"]').hide();
58+
jQuery('#redirect_type option[value="R,L"]').hide();
59+
jQuery('#redirect_type option[value="R=301,L"]').hide();
60+
if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
61+
} else {
62+
jQuery('#redirect_type option[value="last"]').attr('disabled','disabled');
63+
jQuery('#redirect_type option[value="break"]').attr('disabled','disabled');
64+
jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled');
65+
jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled');
66+
67+
jQuery('#redirect_type option[value="last"]').hide();
68+
jQuery('#redirect_type option[value="break"]').hide();
69+
jQuery('#redirect_type option[value="redirect"]').hide();
70+
jQuery('#redirect_type option[value="permanent"]').hide();
71+
if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
72+
}
73+
});
74+
}
75+
76+
</script>

0 commit comments

Comments
 (0)