From 796661c563939605d8c7ba7e01b7ecf62f9cd1cf Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 22 Oct 2015 07:59:09 -0400
Subject: [PATCH] Merge branch 'master' into 'master'

---
 interface/web/vm/lib/lang/fr_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/se_openvz_template.lng             |    2 
 interface/web/admin/templates/server_config_web_edit.htm     |    3 
 interface/web/admin/lib/lang/ar_server_config.lng            |    1 
 interface/web/vm/lib/lang/ar_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/ja_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/ro_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/es_server_config.lng            |    1 
 interface/web/admin/lib/lang/tr_server_config.lng            |    1 
 server/plugins-available/apps_vhost_plugin.inc.php           |   20 +++
 interface/web/vm/lib/lang/pl_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/de_server_config.lng            |    1 
 interface/web/vm/lib/lang/hu_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/sk_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/nl_server_config.lng            |    1 
 install/sql/ispconfig3.sql                                   |    5 
 interface/web/admin/lib/lang/hu_server_config.lng            |    1 
 interface/web/admin/lib/lang/pl_server_config.lng            |    1 
 install/sql/incremental/upd_dev_collection.sql               |    6 +
 interface/web/admin/lib/lang/el_server_config.lng            |    1 
 interface/web/vm/lib/lang/hu_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/pt_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/el_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/sk_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/de_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/tr_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/cz_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/de_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/it_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/hr_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/br_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/fi_server_config.lng            |    1 
 interface/web/admin/lib/lang/se_server_config.lng            |    1 
 interface/web/vm/lib/lang/id_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/nl_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/fi_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/pl_openvz_vm.lng                   |    3 
 interface/web/vm/form/openvz_vm.tform.php                    |   28 ++++
 interface/web/vm/lib/lang/br_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/es_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/sk_server_config.lng            |    1 
 interface/lib/classes/validate_openvz.inc.php                |   66 +++++++++++
 interface/web/vm/lib/lang/ru_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/se_openvz_vm.lng                   |    3 
 interface/web/admin/lib/lang/id_server_config.lng            |    1 
 interface/web/vm/lib/lang/ar_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/id_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/tr_openvz_template.lng             |    2 
 interface/web/vm/templates/openvz_vm_edit.htm                |    5 
 interface/web/vm/templates/openvz_vm_advanced_edit.htm       |    4 
 interface/web/vm/lib/lang/en_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/fr_openvz_vm.lng                   |    3 
 install/tpl/server.ini.master                                |    1 
 interface/web/vm/lib/lang/ja_openvz_vm.lng                   |    3 
 interface/web/admin/form/server_config.tform.php             |    6 +
 interface/web/vm/form/openvz_template.tform.php              |   16 ++
 interface/web/vm/lib/lang/nl_openvz_vm.lng                   |    3 
 interface/web/admin/lib/lang/ru_server_config.lng            |    1 
 interface/web/vm/lib/lang/ro_openvz_vm.lng                   |    3 
 interface/web/admin/lib/lang/ro_server_config.lng            |    1 
 interface/lib/plugins/vm_openvz_plugin.inc.php               |   14 +
 interface/web/admin/lib/lang/br_server_config.lng            |    1 
 interface/web/admin/lib/lang/hr_server_config.lng            |    1 
 interface/web/vm/lib/lang/es_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/pt_openvz_template.lng             |    2 
 interface/web/admin/lib/lang/fr_server_config.lng            |    1 
 interface/web/vm/openvz_vm_edit.php                          |    3 
 interface/web/admin/lib/lang/en_server_config.lng            |    1 
 interface/web/vm/lib/lang/ru_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/bg_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/en_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/fi_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/bg_openvz_vm.lng                   |    3 
 interface/web/admin/lib/lang/cz_server_config.lng            |    1 
 interface/web/admin/lib/lang/it_server_config.lng            |    1 
 interface/web/vm/lib/lang/hr_openvz_template.lng             |    2 
 interface/web/vm/lib/lang/it_openvz_vm.lng                   |    3 
 interface/web/vm/lib/lang/el_openvz_template.lng             |    2 
 interface/web/vm/templates/openvz.conf.tpl                   |    2 
 interface/web/vm/lib/lang/cz_openvz_vm.lng                   |    3 
 interface/web/admin/lib/lang/ja_server_config.lng            |    1 
 interface/web/vm/templates/openvz_template_advanced_edit.htm |    4 
 interface/web/admin/lib/lang/pt_server_config.lng            |    1 
 interface/web/admin/lib/lang/bg_server_config.lng            |    1 
 84 files changed, 312 insertions(+), 9 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index bbf80e6..b68fa90 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -168,3 +168,9 @@
 ALTER TABLE `web_domain` ADD COLUMN `rewrite_to_https` ENUM('y','n') NOT NULL DEFAULT 'n' AFTER `seo_redirect`;
 
 ALTER TABLE openvz_ip ADD COLUMN `additional` VARCHAR(255) NOT NULL DEFAULT 'n';
+
+ALTER TABLE openvz_template ADD COLUMN `custom` text;
+
+ALTER TABLE openvz_vm
+  ADD COLUMN `bootorder` INT(11) NOT NULL DEFAULT '1' AFTER `start_boot`,
+  ADD COLUMN `custom` text;
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 6089f3f..bb17537 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -1093,6 +1093,7 @@
   `capability` varchar(255) DEFAULT NULL,
   `features` varchar(255) DEFAULT NULL,
   `iptables` varchar(255) DEFAULT NULL,
+  `custom` text,
   PRIMARY KEY (`template_id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
 
@@ -1100,7 +1101,7 @@
 -- Dumping data for table `openvz_template`
 --
 
-INSERT INTO `openvz_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `diskspace`, `traffic`, `bandwidth`, `ram`, `ram_burst`, `cpu_units`, `cpu_num`, `cpu_limit`, `io_priority`, `active`, `description`, `numproc`, `numtcpsock`, `numothersock`, `vmguarpages`, `kmemsize`, `tcpsndbuf`, `tcprcvbuf`, `othersockbuf`, `dgramrcvbuf`, `oomguarpages`, `privvmpages`, `lockedpages`, `shmpages`, `physpages`, `numfile`, `avnumproc`, `numflock`, `numpty`, `numsiginfo`, `dcachesize`, `numiptent`, `swappages`, `hostname`, `nameserver`, `create_dns`, `capability`, `features`, `iptables`) VALUES(1, 1, 1, 'riud', 'riud', '', 'small', 10, -1, -1, 256, 512, 1000, 4, 400, 4, 'y', '', '999999:999999', '7999992:7999992', '7999992:7999992', '65536:65536', '2147483646:2147483646', '214748160:396774400', '214748160:396774400', '214748160:396774400', '214748160:396774400', '65536:65536', '131072:131072', '999999:999999', '65536:65536', '0:2147483647', '23999976:23999976', '180:180', '999999:999999', '500000:500000', '999999:999999', '2147483646:2147483646', '999999:999999', '256000:256000', 'v{VEID}.test.tld', '8.8.8.8 8.8.4.4', 'n', '', '', '');
+INSERT INTO `openvz_template` (`template_id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `template_name`, `diskspace`, `traffic`, `bandwidth`, `ram`, `ram_burst`, `cpu_units`, `cpu_num`, `cpu_limit`, `io_priority`, `active`, `description`, `numproc`, `numtcpsock`, `numothersock`, `vmguarpages`, `kmemsize`, `tcpsndbuf`, `tcprcvbuf`, `othersockbuf`, `dgramrcvbuf`, `oomguarpages`, `privvmpages`, `lockedpages`, `shmpages`, `physpages`, `numfile`, `avnumproc`, `numflock`, `numpty`, `numsiginfo`, `dcachesize`, `numiptent`, `swappages`, `hostname`, `nameserver`, `create_dns`, `capability`, `features`, `iptables`, `custom`) VALUES(1, 1, 1, 'riud', 'riud', '', 'small', 10, -1, -1, 256, 512, 1000, 4, 400, 4, 'y', '', '999999:999999', '7999992:7999992', '7999992:7999992', '65536:65536', '2147483646:2147483646', '214748160:396774400', '214748160:396774400', '214748160:396774400', '214748160:396774400', '65536:65536', '131072:131072', '999999:999999', '65536:65536', '0:2147483647', '23999976:23999976', '180:180', '999999:999999', '500000:500000', '999999:999999', '2147483646:2147483646', '999999:999999', '256000:256000', 'v{VEID}.test.tld', '8.8.8.8 8.8.4.4', 'n', '', '', '', '');
 
 -- --------------------------------------------------------
 
@@ -1141,6 +1142,7 @@
   `hostname` varchar(255) DEFAULT NULL,
   `vm_password` varchar(255) DEFAULT NULL,
   `start_boot` varchar(255) NOT NULL DEFAULT 'y',
+  `bootorder` int(11) NOT NULL DEFAULT '1',
   `active` varchar(255) NOT NULL DEFAULT 'y',
   `active_until_date` date NOT NULL DEFAULT '0000-00-00',
   `description` text,
@@ -1159,6 +1161,7 @@
   `features` text,
   `iptabless` text,
   `config` mediumtext,
+  `custom` text,
   PRIMARY KEY (`vm_id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
 
diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index d50d244..286dc07 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -72,6 +72,7 @@
 group=www-data
 nginx_user=www-data
 nginx_group=www-data
+apps_vhost_enabled=y
 apps_vhost_port=8081
 apps_vhost_ip=_default_
 apps_vhost_servername=
diff --git a/interface/lib/classes/validate_openvz.inc.php b/interface/lib/classes/validate_openvz.inc.php
new file mode 100644
index 0000000..75e41fe
--- /dev/null
+++ b/interface/lib/classes/validate_openvz.inc.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ Copyright (c) 2015, Florian Schaal, schaal @it
+ 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.
+
+ @author Florian Schaal, info@schaal-24.de
+ @copyrighth Florian Schaal, info@schaal-24.de
+ */
+
+class validate_openvz {
+
+	function get_error($errmsg, $additional='') {
+		global $app;
+		if(isset($app->tform->wordbook[$errmsg])) {
+			return $app->tform->wordbook[$errmsg].$additional."<br>\r\n";
+		} else {
+			return $errmsg."<br>".$additional."<br>\r\n";
+		}
+	}
+
+	function check_custom($field_name, $field_value, $validator) {
+		$template = file('../vm/templates/openvz.conf.tpl', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
+		$custom_array = explode("\n", $field_value);
+		$used_parameters = array();
+		foreach ($template as $line) {
+			$line = trim ($line);
+			if (preg_match('/^[^#].*=\".*\"/', $line)) {
+				$line = explode('=', $line, 2);
+				$used_parameters[] = $line[0];
+			}
+		}
+		foreach ($custom_array as $check) {
+			$check = trim(strtoupper($check));
+			$check = explode('=', trim($check), 2);
+			$check = trim($check[0]);
+			if (in_array($check, $used_parameters)) {
+				return $this->get_error($validator['errmsg'], $check);
+			}
+		}
+	}
+
+}
diff --git a/interface/lib/plugins/vm_openvz_plugin.inc.php b/interface/lib/plugins/vm_openvz_plugin.inc.php
index 305118d..3249793 100644
--- a/interface/lib/plugins/vm_openvz_plugin.inc.php
+++ b/interface/lib/plugins/vm_openvz_plugin.inc.php
@@ -130,10 +130,10 @@
 		global $app, $conf;
 
 		//* Free the IP address
-		$tmp = $app->db->queryOneRecord("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ?", $page_form->id);
-		$app->db->datalogUpdate('openvz_ip', array('vm_id' => 0), 'ip_address_id', $tmp['ip_address_id']);
-		unset($tmp);
-
+		$tmp_rec = $app->db->queryAllRecords("SELECT ip_address_id FROM openvz_ip WHERE vm_id = ?", $page_form->id);
+		foreach ($tmp_rec as $tmp) {
+			$app->db->datalogUpdate('openvz_ip', array('vm_id' => 0), 'ip_address_id', $tmp['ip_address_id']);
+		}
 	}
 
 	private function applyTemplate() {
@@ -154,8 +154,9 @@
 		$sql .= "capability = ?, ";
 		$sql .= "features = ?, ";
 		$sql .= "iptables = ? ";
+		$sql .= "custom = ? ";
 		$sql .= "WHERE vm_id = ?";
-		$app->db->query($sql, $tpl['diskspace'], $tpl['ram'], $tpl['ram_burst'], $tpl['cpu_units'], $tpl['cpu_num'], $tpl['cpu_limit'], $tpl['io_priority'], $tpl['nameserver'], $tpl['create_dns'], $tpl['capability'], $tpl['features'], $tpl['iptables'], $this->id);
+		$app->db->query($sql, $tpl['diskspace'], $tpl['ram'], $tpl['ram_burst'], $tpl['cpu_units'], $tpl['cpu_num'], $tpl['cpu_limit'], $tpl['io_priority'], $tpl['nameserver'], $tpl['create_dns'], $tpl['capability'], $tpl['features'], $tpl['iptables'], $tpl['custom'], $this->id);
 
 	}
 
@@ -174,6 +175,7 @@
 		$onboot = ($vm['start_boot'] == 'y')?'yes':'no';
 		$tpl->setVar('onboot', $onboot);
 
+		$tpl->setVar('bootorder', $vm['bootorder']);
 		$tpl->setVar('kmemsize', $vm_template['kmemsize']);
 		$tpl->setVar('lockedpages', $vm_template['lockedpages']);
 		$tpl->setVar('privvmpages', $burst_ram.':'.$burst_ram);
@@ -228,6 +230,8 @@
 		$tpl->setVar('features', $vm['features']);
 		$tpl->setVar('iptables', $vm['iptables']);
 
+		$tpl->setVar('custom', $vm['custom']);
+
 		$tmp = $app->db->queryOneRecord("SELECT template_file FROM openvz_ostemplate WHERE ostemplate_id = ?", $app->functions->intval($vm['ostemplate_id']));
 		$tpl->setVar('ostemplate', $tmp['template_file']);
 		unset($tmp);
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 9886208..adc55b1 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1038,6 +1038,12 @@
 				1 => 'y'
 			)
 		),
+		'apps_vhost_enabled' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default'  => 'y',
+			'value' => array (0 => 'n', 1 => 'y')
+		),
 		'apps_vhost_port' => array(
 			'datatype' => 'VARCHAR',
 			'formtype' => 'TEXT',
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index e2f2db4..5000079 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 4365d91..3d805a9 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index e34e4ff..212f9c0 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index 8df2dbe..eddcd21 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -253,5 +253,6 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
 
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index aa448d8..13f7834 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -266,4 +266,5 @@
 $wb['php_handler_txt'] = 'Standard-PHP-Handler';
 $wb['enable_spdy_txt'] = 'Stellt SPDY zur Verfügung';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index 2cef4ed..e672f60 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -250,4 +250,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index b5e4237..ac7e2d5 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -281,4 +281,5 @@
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index a62b3f6..16e406c 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -253,4 +253,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index f4f8856..061465c 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index 0ceb4af..8fa674c 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -252,5 +252,6 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
 
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index eaf7fb6..c11593f 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -256,6 +256,7 @@
 $wb['cron_wget_error_regex'] = 'Neispravna cron wget putanja.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
 
 
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index 58b9524..1e4c2a1 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 5f89667..8c26f26 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index c3d435b..3b5cfcf 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 3f3c639..76e1cf8 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index e9c32b5..b31b452 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 9c55a4f..d1a0b67 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index 712d15a..3081121 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index d6d950f..5ecec82 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 1acfb05..fbddb89 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index baf79af..8bf64ed 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 1e8ae4d..6e79b15 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 2e7a7df..531fe07 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -255,4 +255,5 @@
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
 $wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
+$wb["apps_vhost_enabled_txt"] = "Apps-vhost enabled";
 ?>
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 9f8f9d8..f32e147 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -228,6 +228,9 @@
             </div>
             <div class="col-sm-3"></div><div class="col-sm-9"><button class="btn btn-default formbutton-default" type="button" data-toggle="collapse" data-target="#toggle-apps_vhost_settings" aria-expanded="false" aria-controls="toggle-apps_vhost_settings">{tmpl_var name='apps_vhost_settings_txt'}</button></div>
             <div id="toggle-apps_vhost_settings" class="collapse">
+				<div class="form-group">
+					<label for="apps_vhost_enabled" class="col-sm-3 control-label">{tmpl_var name='apps_vhost_enabled_txt'}</label>
+					<div class="col-sm-9">{tmpl_var name='apps_vhost_enabled'}</div></div>
                 <div class="form-group">
                     <label for="apps_vhost_port" class="col-sm-3 control-label">{tmpl_var name='apps_vhost_port_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="apps_vhost_port" id="apps_vhost_port" value="{tmpl_var name='apps_vhost_port'}" class="form-control" /></div></div>
diff --git a/interface/web/vm/form/openvz_template.tform.php b/interface/web/vm/form/openvz_template.tform.php
index fd67c99..8279ce0 100644
--- a/interface/web/vm/form/openvz_template.tform.php
+++ b/interface/web/vm/form/openvz_template.tform.php
@@ -475,6 +475,22 @@
 			'width'  => '30',
 			'maxlength' => '255'
 		),
+		'custom' => array (
+			'datatype' => 'TEXT',
+			'formtype' => 'TEXTAREA',
+			'default' => '',
+			'value'  => '',
+			'separator' => '',
+			'width'  => '',
+			'maxlength' => '',
+			'rows'  => '10',
+			'cols'  => '30',
+			'validators'    => array (  0 => array ('type'  => 'CUSTOM',
+				'class' => 'validate_openvz',
+				'function' => 'check_custom',
+				'errmsg'=> 'custom_error'),
+			),
+		),
 		//#################################
 		// ENDE Datatable fields
 		//#################################
diff --git a/interface/web/vm/form/openvz_vm.tform.php b/interface/web/vm/form/openvz_vm.tform.php
index d6911cc..44f20dc 100644
--- a/interface/web/vm/form/openvz_vm.tform.php
+++ b/interface/web/vm/form/openvz_vm.tform.php
@@ -150,6 +150,17 @@
 			'default' => 'y',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'bootorder' => array (
+			'datatype' => 'INTEGER',
+			'formtype' => 'TEXT',
+			'default' => '0',
+			'value'  => '',
+			'width'  => '3',
+			'maxlength' => '3',
+			'validators' => array (  0 => array ( 'type' => 'ISPOSITIVE',
+				'errmsg'=> 'bootorder_error_notpositive'),
+            ),
+		),
 		'active' => array (
 			'datatype' => 'VARCHAR',
 			'formtype' => 'CHECKBOX',
@@ -322,6 +333,23 @@
 				'width'  => '30',
 				'maxlength' => '255'
 			),
+			'custom' => array (
+				'datatype' => 'TEXT',
+				'formtype' => 'TEXTAREA',
+				'default' => '',
+				'value'  => '',
+				'separator' => '',
+				'width'  => '',
+				'maxlength' => '',
+				'rows'  => '10',
+				'cols'  => '30',
+				'searchable' => 2,
+				'validators'    => array (  0 => array ('type'  => 'CUSTOM',
+					'class' => 'validate_openvz',
+					'function' => 'check_custom',
+					'errmsg'=> 'custom_error'),
+				),
+			),
 			//#################################
 			// ENDE Datatable fields
 			//#################################
diff --git a/interface/web/vm/lib/lang/ar_openvz_template.lng b/interface/web/vm/lib/lang/ar_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/ar_openvz_template.lng
+++ b/interface/web/vm/lib/lang/ar_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/ar_openvz_vm.lng b/interface/web/vm/lib/lang/ar_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/ar_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/ar_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/bg_openvz_template.lng b/interface/web/vm/lib/lang/bg_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/bg_openvz_template.lng
+++ b/interface/web/vm/lib/lang/bg_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/bg_openvz_vm.lng b/interface/web/vm/lib/lang/bg_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/bg_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/bg_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_template.lng b/interface/web/vm/lib/lang/br_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/br_openvz_template.lng
+++ b/interface/web/vm/lib/lang/br_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/br_openvz_vm.lng b/interface/web/vm/lib/lang/br_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/br_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/br_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/cz_openvz_template.lng b/interface/web/vm/lib/lang/cz_openvz_template.lng
index 3abd816..26434be 100644
--- a/interface/web/vm/lib/lang/cz_openvz_template.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Pokročilý';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/cz_openvz_vm.lng b/interface/web/vm/lib/lang/cz_openvz_vm.lng
index eaf12b7..0fd8a9c 100644
--- a/interface/web/vm/lib/lang/cz_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/cz_openvz_vm.lng
@@ -39,5 +39,8 @@
 $wb['Advanced'] = 'Pokročilý';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
 
diff --git a/interface/web/vm/lib/lang/de_openvz_template.lng b/interface/web/vm/lib/lang/de_openvz_template.lng
index c86e878..776e14a 100644
--- a/interface/web/vm/lib/lang/de_openvz_template.lng
+++ b/interface/web/vm/lib/lang/de_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Erweitert';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/de_openvz_vm.lng b/interface/web/vm/lib/lang/de_openvz_vm.lng
index edce4b7..52daf3f 100644
--- a/interface/web/vm/lib/lang/de_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/de_openvz_vm.lng
@@ -38,4 +38,7 @@
 $wb['Virtual server'] = 'Virtueller Server';
 $wb['Advanced'] = 'Erweitert';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/el_openvz_template.lng b/interface/web/vm/lib/lang/el_openvz_template.lng
index b8c6543..75b2d7f 100644
--- a/interface/web/vm/lib/lang/el_openvz_template.lng
+++ b/interface/web/vm/lib/lang/el_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/el_openvz_vm.lng b/interface/web/vm/lib/lang/el_openvz_vm.lng
index c74b102..d221245 100644
--- a/interface/web/vm/lib/lang/el_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/el_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Για προχωρημένους';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/en_openvz_template.lng b/interface/web/vm/lib/lang/en_openvz_template.lng
index a2b7f8d..cb648cb 100644
--- a/interface/web/vm/lib/lang/en_openvz_template.lng
+++ b/interface/web/vm/lib/lang/en_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb["Advanced"] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/en_openvz_vm.lng b/interface/web/vm/lib/lang/en_openvz_vm.lng
index 67cdbfd..f3562cb 100644
--- a/interface/web/vm/lib/lang/en_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/en_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb["Advanced"] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/es_openvz_template.lng b/interface/web/vm/lib/lang/es_openvz_template.lng
index cad0933..bffc717 100644
--- a/interface/web/vm/lib/lang/es_openvz_template.lng
+++ b/interface/web/vm/lib/lang/es_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Avanzado';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/es_openvz_vm.lng b/interface/web/vm/lib/lang/es_openvz_vm.lng
index 6a88f4f..720e206 100644
--- a/interface/web/vm/lib/lang/es_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/es_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Avanzado';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/fi_openvz_template.lng b/interface/web/vm/lib/lang/fi_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/fi_openvz_template.lng
+++ b/interface/web/vm/lib/lang/fi_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/fi_openvz_vm.lng b/interface/web/vm/lib/lang/fi_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/fi_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/fi_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/fr_openvz_template.lng b/interface/web/vm/lib/lang/fr_openvz_template.lng
index 66db265..c2554a0 100644
--- a/interface/web/vm/lib/lang/fr_openvz_template.lng
+++ b/interface/web/vm/lib/lang/fr_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Avancé';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/fr_openvz_vm.lng b/interface/web/vm/lib/lang/fr_openvz_vm.lng
index 26d21a0..cfcf250 100644
--- a/interface/web/vm/lib/lang/fr_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/fr_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Avancé';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/hr_openvz_template.lng b/interface/web/vm/lib/lang/hr_openvz_template.lng
index 69b36b9..622274b 100644
--- a/interface/web/vm/lib/lang/hr_openvz_template.lng
+++ b/interface/web/vm/lib/lang/hr_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Napredno';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/hr_openvz_vm.lng b/interface/web/vm/lib/lang/hr_openvz_vm.lng
index 6ae18e1..c614b2b 100644
--- a/interface/web/vm/lib/lang/hr_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/hr_openvz_vm.lng
@@ -39,6 +39,9 @@
 $wb['Advanced'] = 'Napredno';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
 
 
diff --git a/interface/web/vm/lib/lang/hu_openvz_template.lng b/interface/web/vm/lib/lang/hu_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/hu_openvz_template.lng
+++ b/interface/web/vm/lib/lang/hu_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/hu_openvz_vm.lng b/interface/web/vm/lib/lang/hu_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/hu_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/hu_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/id_openvz_template.lng b/interface/web/vm/lib/lang/id_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/id_openvz_template.lng
+++ b/interface/web/vm/lib/lang/id_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/id_openvz_vm.lng b/interface/web/vm/lib/lang/id_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/id_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/id_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/it_openvz_template.lng b/interface/web/vm/lib/lang/it_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/it_openvz_template.lng
+++ b/interface/web/vm/lib/lang/it_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/it_openvz_vm.lng b/interface/web/vm/lib/lang/it_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/it_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/it_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/ja_openvz_template.lng b/interface/web/vm/lib/lang/ja_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/ja_openvz_template.lng
+++ b/interface/web/vm/lib/lang/ja_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/ja_openvz_vm.lng b/interface/web/vm/lib/lang/ja_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/ja_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/ja_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/nl_openvz_template.lng b/interface/web/vm/lib/lang/nl_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/nl_openvz_template.lng
+++ b/interface/web/vm/lib/lang/nl_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/nl_openvz_vm.lng b/interface/web/vm/lib/lang/nl_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/nl_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/nl_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/pl_openvz_template.lng b/interface/web/vm/lib/lang/pl_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/pl_openvz_template.lng
+++ b/interface/web/vm/lib/lang/pl_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/pl_openvz_vm.lng b/interface/web/vm/lib/lang/pl_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/pl_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/pl_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/pt_openvz_template.lng b/interface/web/vm/lib/lang/pt_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/pt_openvz_template.lng
+++ b/interface/web/vm/lib/lang/pt_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/pt_openvz_vm.lng b/interface/web/vm/lib/lang/pt_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/pt_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/pt_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/ro_openvz_template.lng b/interface/web/vm/lib/lang/ro_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/ro_openvz_template.lng
+++ b/interface/web/vm/lib/lang/ro_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/ro_openvz_vm.lng b/interface/web/vm/lib/lang/ro_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/ro_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/ro_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/ru_openvz_template.lng b/interface/web/vm/lib/lang/ru_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/ru_openvz_template.lng
+++ b/interface/web/vm/lib/lang/ru_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/ru_openvz_vm.lng b/interface/web/vm/lib/lang/ru_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/ru_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/ru_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/se_openvz_template.lng b/interface/web/vm/lib/lang/se_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/se_openvz_template.lng
+++ b/interface/web/vm/lib/lang/se_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/se_openvz_vm.lng b/interface/web/vm/lib/lang/se_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/se_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/se_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/sk_openvz_template.lng b/interface/web/vm/lib/lang/sk_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/sk_openvz_template.lng
+++ b/interface/web/vm/lib/lang/sk_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/sk_openvz_vm.lng b/interface/web/vm/lib/lang/sk_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/sk_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/sk_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/lib/lang/tr_openvz_template.lng b/interface/web/vm/lib/lang/tr_openvz_template.lng
index 262cad0..27dfbbb 100644
--- a/interface/web/vm/lib/lang/tr_openvz_template.lng
+++ b/interface/web/vm/lib/lang/tr_openvz_template.lng
@@ -92,4 +92,6 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["custom_error"] = "Not allowed in Custom settings: ";
 ?>
diff --git a/interface/web/vm/lib/lang/tr_openvz_vm.lng b/interface/web/vm/lib/lang/tr_openvz_vm.lng
index 3f4e1c1..2029d96 100644
--- a/interface/web/vm/lib/lang/tr_openvz_vm.lng
+++ b/interface/web/vm/lib/lang/tr_openvz_vm.lng
@@ -39,4 +39,7 @@
 $wb['Advanced'] = 'Advanced';
 $wb['features_txt'] = 'Features';
 $wb["iptables_txt"] = "IP Tables";
+$wb["custom_txt"] = "Custom settings";
+$wb["bootorder_txt"] = "Boot order priority";
+$wb["bootorder_error_notpositive"] = "Only positive integers are allowed for Boot order priority";
 ?>
diff --git a/interface/web/vm/openvz_vm_edit.php b/interface/web/vm/openvz_vm_edit.php
index 0db2053..6926588 100644
--- a/interface/web/vm/openvz_vm_edit.php
+++ b/interface/web/vm/openvz_vm_edit.php
@@ -161,7 +161,8 @@
 		//* 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 = ".$client['default_webserver']." AND ip_type = 'IPv4' AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")";
 		if(isset($this->dataRecord["server_id"])) {
-			$vm_server_id = $app->functions->intval($this->dataRecord["server_id"]);
+//			$vm_server_id = $app->functions->intval($this->dataRecord["server_id"]);
+			$vm_server_id = $app->functions->intval($this->dataRecord["vm_id"]);
 		} else {
 			$tmp = $app->db->queryOneRecord('SELECT server_id FROM server WHERE vserver_server = 1 AND mirror_server_id = 0 ORDER BY server_name LIMIT 0,1');
 			$vm_server_id = $app->functions->intval($tmp['server_id']);
diff --git a/interface/web/vm/templates/openvz.conf.tpl b/interface/web/vm/templates/openvz.conf.tpl
index 1cb4dc0..ed4943f 100644
--- a/interface/web/vm/templates/openvz.conf.tpl
+++ b/interface/web/vm/templates/openvz.conf.tpl
@@ -4,6 +4,7 @@
 
 # Parameters
 ONBOOT="{tmpl_var name='onboot'}"
+BOOTORDER="{tmpl_var name='bootorder'}"
 KMEMSIZE="{tmpl_var name='kmemsize'}"
 LOCKEDPAGES="{tmpl_var name='lockedpages'}"
 PRIVVMPAGES="{tmpl_var name='privvmpages'}"
@@ -50,3 +51,4 @@
 CAPABILITY="{tmpl_var name='capability'}"
 FEATURES="{tmpl_var name='features'}"
 IPTABLES="{tmpl_var name='iptables'}"
+{tmpl_var name='custom'}
diff --git a/interface/web/vm/templates/openvz_template_advanced_edit.htm b/interface/web/vm/templates/openvz_template_advanced_edit.htm
index d3dee9a..3712906 100644
--- a/interface/web/vm/templates/openvz_template_advanced_edit.htm
+++ b/interface/web/vm/templates/openvz_template_advanced_edit.htm
@@ -80,7 +80,9 @@
             <div class="form-group">
                 <label for="iptables" class="col-sm-3 control-label">{tmpl_var name='iptables_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="iptables" id="iptables" value="{tmpl_var name='iptables'}" class="form-control" /></div></div>
-        
+            <div class="form-group">
+                <label for="custom" class="col-sm-3 control-label">{tmpl_var name='custom_txt'}</label>
+                <div class="col-sm-9"><textarea class="form-control" name="custom" id="custom" rows='10' cols='30'>{tmpl_var name='custom'}</textarea></div></div>        
             
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
             
diff --git a/interface/web/vm/templates/openvz_vm_advanced_edit.htm b/interface/web/vm/templates/openvz_vm_advanced_edit.htm
index 83bbb3d..a25d715 100644
--- a/interface/web/vm/templates/openvz_vm_advanced_edit.htm
+++ b/interface/web/vm/templates/openvz_vm_advanced_edit.htm
@@ -58,6 +58,10 @@
                 <label for="iptables" class="col-sm-3 control-label">{tmpl_var name='iptables_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="iptables" id="iptables" value="{tmpl_var name='iptables'}" class="form-control" />
 			</div></div>
+			<div class="form-group">
+				<label for="custom" class="col-sm-3 control-label">{tmpl_var name='custom_txt'}</label>
+				<div class="col-sm-9"><textarea class="form-control" name="custom" id="custom" rows='10' cols='30'>{tmpl_var name='custom'}</textarea></div>
+			</div>
         
             
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/vm/templates/openvz_vm_edit.htm b/interface/web/vm/templates/openvz_vm_edit.htm
index c2e0cb6..a045012 100644
--- a/interface/web/vm/templates/openvz_vm_edit.htm
+++ b/interface/web/vm/templates/openvz_vm_edit.htm
@@ -75,6 +75,9 @@
                     {tmpl_var name='start_boot'}
                 </div>
             </div>
+			<div class="form-group">
+				<label for="bootorder" class="col-sm-3 control-label">{tmpl_var name='bootorder_txt'}</label>
+				<div class="col-sm-9"><input type="text" name="bootorder" id="bootorder" value="{tmpl_var name='bootorder'}" class="form-control" /></div></div>
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='active_txt'}</label>
                 <div class="col-sm-9">
@@ -95,4 +98,4 @@
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="vm/openvz_vm_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="vm/openvz_vm_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php
index 320f3d0..d5d5dc8 100644
--- a/server/plugins-available/apps_vhost_plugin.inc.php
+++ b/server/plugins-available/apps_vhost_plugin.inc.php
@@ -119,6 +119,16 @@
 			/* end of backwards compatibility section */
 
 			$app->system->file_put_contents("$vhost_conf_dir/apps.vhost", $content);
+
+			// enabled / disable apps-vhost
+			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost');
+			if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') {
+				$app->system->unlink($vhost_symlink);
+			}
+			if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost') && $web_config['apps_vhost_enabled'] == 'y') {
+				symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost');
+			}
+
 			$app->services->restartServiceDelayed('httpd', 'restart');
 		}
 
@@ -185,6 +195,16 @@
 			file_put_contents($web_config['php_fpm_pool_dir'].'/apps.conf', $fpm_content);
 
 			file_put_contents("$vhost_conf_dir/apps.vhost", $content);
+
+			// enabled / disable apps-vhost
+			$vhost_symlink = escapeshellcmd($web_config['vhost_conf_enabled_dir'].'/000-apps.vhost');
+			if(is_link($vhost_symlink) && $web_config['apps_vhost_enabled'] == 'n') {
+				$app->system->unlink($vhost_symlink);
+			}
+			if(!@is_link($vhost_conf_enabled_dir.'/000-apps.vhost') && $web_config['apps_vhost_enabled'] == 'y') {
+				symlink($vhost_conf_dir.'/apps.vhost', $vhost_conf_enabled_dir.'/000-apps.vhost');
+			}
+
 			$app->services->restartServiceDelayed('httpd', 'reload');
 		}
 	}

--
Gitblit v1.9.1