From 9ec3045a846c5e46e5e1be87272449876b21ed1f Mon Sep 17 00:00:00 2001 From: Sergio Cambra <sergio@programatica.es> Date: Tue, 08 Jul 2014 05:09:31 -0400 Subject: [PATCH] hide used domains from domain select, except for subdomain forms --- interface/web/sites/web_vhost_domain_edit.php | 2 +- interface/lib/classes/tools_sites.inc.php | 12 +++++++++++- interface/web/dns/dns_wizard.php | 2 +- interface/web/mail/mail_domain_edit.php | 2 +- interface/web/dns/dns_slave_edit.php | 2 +- interface/web/sites/web_childdomain_edit.php | 2 +- interface/web/dns/dns_soa_edit.php | 2 +- interface/web/dns/dns_import.php | 2 +- 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php index c636bbc..3702df2 100644 --- a/interface/lib/classes/tools_sites.inc.php +++ b/interface/lib/classes/tools_sites.inc.php @@ -144,10 +144,20 @@ return $res; } - function getDomainModuleDomains() { + function getDomainModuleDomains($not_used_in_table = null, $selected_domain = null) { global $app; $sql = "SELECT domain_id, domain FROM domain WHERE"; + if ($not_used_in_table) { + if (strpos($not_used_in_table, 'dns') !== false) { + $field = "origin"; + $select = "SUBSTRING($field, 1, CHAR_LENGTH($field) - 1)"; + } else { + $field = "domain"; + $select = $field; + } + $sql .= " domain NOT IN (SELECT $select FROM $not_used_in_table WHERE $field != '$selected_domain') AND"; + } if ($_SESSION["s"]["user"]["typ"] == 'admin') { $sql .= " 1"; } else { diff --git a/interface/web/dns/dns_import.php b/interface/web/dns/dns_import.php index b213110..a391c2e 100644 --- a/interface/web/dns/dns_import.php +++ b/interface/web/dns/dns_import.php @@ -161,7 +161,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa"); /* * We can leave domain empty if domain is filename */ diff --git a/interface/web/dns/dns_slave_edit.php b/interface/web/dns/dns_slave_edit.php index ff06821..eb25f22 100644 --- a/interface/web/dns/dns_slave_edit.php +++ b/interface/web/dns/dns_slave_edit.php @@ -116,7 +116,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_slave", $this->dataRecord["origin"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/dns/dns_soa_edit.php b/interface/web/dns/dns_soa_edit.php index 3352885..2fcb9f9 100644 --- a/interface/web/dns/dns_soa_edit.php +++ b/interface/web/dns/dns_soa_edit.php @@ -157,7 +157,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa", $this->dataRecord["origin"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/dns/dns_wizard.php b/interface/web/dns/dns_wizard.php index a462d0f..8549a6b 100644 --- a/interface/web/dns/dns_wizard.php +++ b/interface/web/dns/dns_wizard.php @@ -167,7 +167,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("dns_soa"); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php index 8220c2c..6f48c7f 100644 --- a/interface/web/mail/mail_domain_edit.php +++ b/interface/web/mail/mail_domain_edit.php @@ -150,7 +150,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains("mail_domain", $this->dataRecord["domain"]); $domain_select = ''; if(is_array($domains) && sizeof($domains) > 0) { /* We have domains in the list, so create the drop-down-list */ diff --git a/interface/web/sites/web_childdomain_edit.php b/interface/web/sites/web_childdomain_edit.php index 435b901..8cdda48 100644 --- a/interface/web/sites/web_childdomain_edit.php +++ b/interface/web/sites/web_childdomain_edit.php @@ -105,7 +105,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]); $domain_select = ''; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php index de731bd..00b4985 100644 --- a/interface/web/sites/web_vhost_domain_edit.php +++ b/interface/web/sites/web_vhost_domain_edit.php @@ -631,7 +631,7 @@ /* * The domain-module is in use. */ - $domains = $app->tools_sites->getDomainModuleDomains(); + $domains = $app->tools_sites->getDomainModuleDomains($this->_vhostdomain_type == 'subdomain' ? null : "web_domain", $this->dataRecord["domain"]); $domain_select = ''; $selected_domain = ''; if(is_array($domains) && sizeof($domains) > 0) { -- Gitblit v1.9.1