Skip to content

Commit 6fb93dd

Browse files
author
mcramer
committed
Implemented (as optional!) FS#1993 - Creating Subdomains as VirtualHost
1 parent 1429073 commit 6fb93dd

30 files changed

+2486
-402
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- --------------------------------------------------------
2+
3+
ALTER TABLE `web_domain` ADD `web_folder` VARCHAR( 100 ) DEFAULT NULL AFTER `document_root` ;
4+
5+

install/sql/ispconfig3.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,6 +1648,7 @@ CREATE TABLE `web_domain` (
16481648
`parent_domain_id` int(11) unsigned NOT NULL default '0',
16491649
`vhost_type` varchar(32) default NULL,
16501650
`document_root` varchar(255) default NULL,
1651+
`web_folder` varchar(100) default NULL,
16511652
`system_user` varchar(255) default NULL,
16521653
`system_group` varchar(255) default NULL,
16531654
`hd_quota` bigint(20) NOT NULL default '0',

interface/web/admin/form/system_config.tform.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,12 @@
148148
'width' => '30',
149149
'maxlength' => '255'
150150
),
151+
'vhost_subdomains' => array (
152+
'datatype' => 'VARCHAR',
153+
'formtype' => 'CHECKBOX',
154+
'default' => 'n',
155+
'value' => array(0 => 'n',1 => 'y')
156+
),
151157
##################################
152158
# ENDE Datatable fields
153159
##################################
@@ -252,7 +258,7 @@
252258
),
253259
'smtp_pass' => array (
254260
'datatype' => 'VARCHAR',
255-
'formtype' => 'TEXT',
261+
'formtype' => 'PASSWORD',
256262
'default' => '',
257263
'value' => '',
258264
'width' => '30',

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ $wb['dbname_prefix_txt'] = 'Datenbanknamen Prefix';
55
$wb['dbuser_prefix_txt'] = 'Datenbankbenutzer Prefix';
66
$wb['shelluser_prefix_txt'] = 'Shellbenutzer Prefix';
77
$wb['ftpuser_prefix_txt'] = 'FTP Benutzer Prefix';
8+
$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!';
810
$wb['dbname_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbanknamen Prefix.';
911
$wb['dbuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in Datenbankbenutzer Prefix.';
1012
$wb['ftpuser_prefix_error_regex'] = 'Zeichen nicht erlaubt in FTP Benutzer Prefix.';

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ $wb["dbuser_prefix_txt"] = 'Database user prefix';
99
$wb["shelluser_prefix_txt"] = 'Shell user prefix';
1010
$wb["webdavuser_prefix_txt"] = 'Webdav user prefix';
1111
$wb["ftpuser_prefix_txt"] = 'FTP user prefix';
12+
$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!';
1214
$wb["dbname_prefix_error_regex"] = 'Char not allowed in database name prefix.';
1315
$wb["dbuser_prefix_error_regex"] = 'Char not allowed in database user prefix.';
1416
$wb["ftpuser_prefix_error_regex"] = 'Char not allowed in ftp user prefix.';

interface/web/admin/system_config_edit.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,17 @@ function onUpdateSave($sql) {
8585

8686
$section = $app->tform->getCurrentTab();
8787

88+
8889
$server_config_array = $app->getconf->get_global_config();
89-
$server_config_array[$section] = $app->tform->encode($this->dataRecord,$section);
90+
$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'");
94+
if($check['cnt'] > 0) {
95+
$new_config['vhost_subdomains'] = $server_config_array['vhost_subdomains'];
96+
}
97+
}
98+
$server_config_array[$section] = $new_config;
9099
$server_config_str = $app->ini_parser->get_ini_string($server_config_array);
91100

92101
$sql = "UPDATE sys_ini SET config = '".$app->db->quote($server_config_str)."' WHERE sysini_id = 1";

interface/web/admin/templates/system_config_sites_edit.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ <h2><tmpl_var name="list_head_txt"></h2>
3939
<label for="webftp_url">{tmpl_var name='webftp_url_txt'}</label>
4040
<input name="webftp_url" id="webftp_url" value="{tmpl_var name='webftp_url'}" size="30" maxlength="255" type="text" class="textInput" />
4141
</div>
42+
<div class="ctrlHolder">
43+
<p class="label">{tmpl_var name='vhost_subdomains_txt'}</p>
44+
<div class="multiField">
45+
{tmpl_var name='vhost_subdomains'}&nbsp;{tmpl_var name='vhost_subdomains_note_txt'}
46+
</div>
47+
</div>
4248
</fieldset>
4349

4450
<input type="hidden" name="id" value="{tmpl_var name='id'}">

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
'formtype' => 'SELECT',
7575
'default' => '',
7676
'datasource' => array ( 'type' => 'SQL',
77-
'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'vhost' AND {AUTHSQL} ORDER BY domain",
77+
'querystring' => "SELECT domain_id,domain FROM web_domain WHERE (type = 'vhost' OR type = 'vhostsubdomain') AND {AUTHSQL} ORDER BY domain",
7878
'keyfield'=> 'domain_id',
7979
'valuefield'=> 'domain'
8080
),

0 commit comments

Comments
 (0)