From be38365f1c892c99914c408e3a1d8c396a31663e Mon Sep 17 00:00:00 2001 From: Dominik <info@profi-webdesign.com> Date: Tue, 29 Dec 2015 18:56:37 -0500 Subject: [PATCH] Posibility to change main-domain of aps-instance over remote (in interface maindomain is always the websites domain but over remote it's now possible to set an alias oder subdomain, that will be used in instance-settings. Important if e.g. wordpress-installation should run unter an aliasdomain instead of the websites domain) --- interface/lib/classes/aps_guicontroller.inc.php | 20 +++++++++++++++----- interface/lib/classes/remote.d/aps.inc.php | 11 +++++++++-- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/interface/lib/classes/aps_guicontroller.inc.php b/interface/lib/classes/aps_guicontroller.inc.php index 3a5084c..f31cf81 100644 --- a/interface/lib/classes/aps_guicontroller.inc.php +++ b/interface/lib/classes/aps_guicontroller.inc.php @@ -43,7 +43,17 @@ parent::__construct($app); } - + /** + * Removes www from Domains name + * + * @param $filename the file to read + * @return $sxe a SimpleXMLElement handle + */ + public function getMainDomain($domain) { + if (substr($domain, 0, 4) == 'www.') $domain = substr($domain, 4); + return $domain; + } + /** * Reads in a package metadata file and registers it's namespaces @@ -344,9 +354,9 @@ $app->uses('tools_sites'); $webserver_id = 0; - $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = ?", $settings['main_domain']); + $websrv = $app->db->queryOneRecord("SELECT * FROM web_domain WHERE domain = ?", $this->getMainDomain($settings['main_domain'])); if(!empty($websrv)) $webserver_id = $websrv['server_id']; - $customerid = $this->getCustomerIDFromDomain($settings['main_domain']); + $customerid = $this->getCustomerIDFromDomain($this->getMainDomain($settings['main_domain'])); if(empty($settings) || empty($webserver_id)) return false; @@ -565,13 +575,13 @@ if(in_array($postinput['main_domain'], $domains)) { $docroot = $app->db->queryOneRecord("SELECT document_root FROM web_domain - WHERE domain = ?", $postinput['main_domain']); + WHERE domain = ?", $this->getMainDomain($postinput['main_domain'])); $new_path = $docroot['document_root']; if(substr($new_path, -1) != '/') $new_path .= '/'; $new_path .= $main_location; // Get the $customerid which belongs to the selected domain - $customerid = $this->getCustomerIDFromDomain($postinput['main_domain']); + $customerid = $this->getCustomerIDFromDomain($this->getMainDomain($postinput['main_domain'])); // First get all domains used for an install, then their loop them // and get the corresponding document roots as well as the defined diff --git a/interface/lib/classes/remote.d/aps.inc.php b/interface/lib/classes/remote.d/aps.inc.php index 6497da4..4db5f78 100644 --- a/interface/lib/classes/remote.d/aps.inc.php +++ b/interface/lib/classes/remote.d/aps.inc.php @@ -273,8 +273,15 @@ return false; } - $sql = "SELECT * FROM web_domain WHERE domain = ?"; - $domain = $app->db->queryOneRecord($sql, $params['main_domain']); + if (substr($params['main_domain'], 0, 4) == 'www.') { + $domain = substr($params['main_domain'], 4); + $sql = "SELECT * FROM web_domain WHERE domain = ? AND subdomain=?"; + $domain = $app->db->queryOneRecord($sql, $domain, 'www'); + } + else { + $sql = "SELECT * FROM web_domain WHERE domain = ?"; + $domain = $app->db->queryOneRecord($sql, $params['main_domain']); + } if (!$domain) { $this->server->fault('invalid parameters', 'No valid domain given.'); -- Gitblit v1.9.1