diff --git a/core/domains/domains.php b/core/domains/domains.php index 408a5dcaf5..51374887da 100644 --- a/core/domains/domains.php +++ b/core/domains/domains.php @@ -61,6 +61,7 @@ //update the domain session variables $domain_uuid = $_GET["domain_uuid"]; + $_SESSION["previous_domain_uuid"] = $_SESSION['domain_uuid']; $_SESSION['domain_uuid'] = $domain_uuid; $_SESSION["domain_name"] = $_SESSION['domains'][$domain_uuid]['domain_name']; $_SESSION['domain']['template']['name'] = $_SESSION['domains'][$domain_uuid]['template_name']; diff --git a/resources/classes/domains.php b/resources/classes/domains.php index 5959a155b2..22a7ff344d 100644 --- a/resources/classes/domains.php +++ b/resources/classes/domains.php @@ -443,6 +443,28 @@ if (!class_exists('domains')) { //set the PDO error mode $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + //get previous domains settings + if (strlen($_SESSION["previous_domain_uuid"]) > 0) { + $sql = "select * from v_domain_settings "; + $sql .= "where domain_uuid = '" . $_SESSION["previous_domain_uuid"] . "' "; + $sql .= "and domain_setting_enabled = 'true' "; + try { + $prep_statement = $this->db->prepare($sql . " order by domain_setting_order asc "); + $prep_statement->execute(); + } + catch(PDOException $e) { + $prep_statement = $this->db->prepare($sql); + $prep_statement->execute(); + } + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + //unset previous domain settings + foreach ($result as $row) { + unset($_SESSION[$row['domain_setting_category']]); + } + unset($_SESSION["previous_domain_uuid"]); + } + + //get the default settings $sql = "select * from v_default_settings "; try { @@ -534,7 +556,6 @@ if (!class_exists('domains')) { } } } - //get the user settings if (array_key_exists("domain_uuid",$_SESSION) and array_key_exists("user_uuid",$_SESSION) and strlen($_SESSION["domain_uuid"]) > 0 && strlen($_SESSION["user_uuid"]) > 0) { $sql = "select * from v_user_settings ";