diff --git a/resources/classes/domains.php b/resources/classes/domains.php index 0c9c5178c6..885aa7f6e5 100644 --- a/resources/classes/domains.php +++ b/resources/classes/domains.php @@ -46,18 +46,31 @@ if (!class_exists('domains')) { private $toggle_values; private $location; + /** + * Set in the constructor. Must be a database object and cannot be null. + * @var database Database Object + */ + private $database; + /** * called when the object is created */ - public function __construct() { + public function __construct($setting_array = []) { //assign the variables - $this->app_name = 'domains'; - $this->app_uuid = '8b91605b-f6d2-42e6-a56d-5d1ded01bb44'; - $this->name = 'domain'; - $this->table = 'domains'; - $this->toggle_field = 'domain_enabled'; - $this->toggle_values = ['true','false']; - $this->location = 'domains.php'; + $this->app_name = 'domains'; + $this->app_uuid = '8b91605b-f6d2-42e6-a56d-5d1ded01bb44'; + $this->name = 'domain'; + $this->table = 'domains'; + $this->toggle_field = 'domain_enabled'; + $this->toggle_values = ['true','false']; + $this->location = 'domains.php'; + + //open a database connection + if (empty($setting_array['database'])) { + $this->database = database::new(); + } else { + $this->database = $setting_array['database']; + } } /** @@ -91,8 +104,7 @@ if (!class_exists('domains')) { $sql = "select domain_name from v_domains "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $id; - $database = new database; - $domain_name = $database->select($sql, $parameters, 'column'); + $domain_name = $this->database->select($sql, $parameters, 'column'); unset($sql, $parameters); //get the domain settings @@ -100,8 +112,7 @@ if (!class_exists('domains')) { $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and domain_setting_enabled = 'true' "; $parameters['domain_uuid'] = $id; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); + $result = $this->database->select($sql, $parameters, 'all'); unset($sql, $parameters); if (is_array($result) && sizeof($result) != 0) { @@ -155,10 +166,9 @@ if (!class_exists('domains')) { if ($field['name'] == 'domain_uuid' && $table_name != 'v_domains') { $sql = "delete from ".$table_name." where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $id; - $database = new database; - $database->app_name = 'domain_settings'; - $database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; - $database->execute($sql, $parameters); + $this->database->app_name = 'domain_settings'; + $this->database->app_uuid = 'b31e723a-bf70-670c-a49b-470d2a232f71'; + $this->database->execute($sql, $parameters); unset($sql, $parameters); } } @@ -265,10 +275,9 @@ if (!class_exists('domains')) { //delete the checked rows if (is_array($domain_array) && @sizeof($domain_array) != 0) { //execute delete - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->delete($domain_array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->delete($domain_array); //set message message::add($text['message-delete']); @@ -310,8 +319,7 @@ if (!class_exists('domains')) { if (is_array($uuids) && @sizeof($uuids) != 0) { $sql = "select ".$this->name."_uuid as uuid, ".$this->toggle_field." as toggle from v_".$this->table." "; $sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") "; - $database = new database; - $rows = $database->select($sql, $parameters ?? null, 'all'); + $rows = $this->database->select($sql, $parameters ?? null, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { foreach ($rows as $row) { $states[$row['uuid']] = $row['toggle']; @@ -334,10 +342,9 @@ if (!class_exists('domains')) { //save the changes if (is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //set message @@ -380,8 +387,7 @@ if (!class_exists('domains')) { if (is_array($uuids) && @sizeof($uuids) != 0) { $sql = "select * from v_".$this->table." "; $sql .= "where ".$this->name."_uuid in (".implode(', ', $uuids).") "; - $database = new database; - $rows = $database->select($sql, $parameters, 'all'); + $rows = $this->database->select($sql, $parameters, 'all'); if (is_array($rows) && @sizeof($rows) != 0) { $x = 0; foreach ($rows as $row) { @@ -402,10 +408,9 @@ if (!class_exists('domains')) { //save the changes and set the message if (is_array($array) && @sizeof($array) != 0) { //save the array - $database = new database; - $database->app_name = $this->app_name; - $database->app_uuid = $this->app_uuid; - $database->save($array); + $this->database->app_name = $this->app_name; + $this->database->app_uuid = $this->app_uuid; + $this->database->save($array); unset($array); //set message @@ -428,8 +433,7 @@ if (!class_exists('domains')) { $sql .= "and domain_setting_enabled = 'true' "; $sql .= " order by domain_setting_order asc "; $parameters['previous_domain_uuid'] = $_SESSION["previous_domain_uuid"]; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); + $result = $this->database->select($sql, $parameters, 'all'); unset($sql, $parameters); //unset previous domain settings @@ -444,8 +448,7 @@ if (!class_exists('domains')) { //get the default settings $sql = "select * from v_default_settings "; $sql .= "order by default_setting_order asc "; - $database = new database; - $result = $database->select($sql, null, 'all'); + $result = $this->database->select($sql, null, 'all'); unset($sql, $parameters); //unset all settings @@ -495,8 +498,7 @@ if (!class_exists('domains')) { $sql .= "and domain_setting_enabled = 'true' "; $sql .= " order by domain_setting_order asc "; $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); + $result = $this->database->select($sql, $parameters, 'all'); unset($sql, $parameters); //unset the arrays that domains are overriding @@ -545,8 +547,7 @@ if (!class_exists('domains')) { $sql .= " order by user_setting_order asc "; $parameters['domain_uuid'] = $_SESSION["domain_uuid"]; $parameters['user_uuid'] = $_SESSION["user_uuid"]; - $database = new database; - $result = $database->select($sql, $parameters, 'all'); + $result = $this->database->select($sql, $parameters, 'all'); if (is_array($result)) { foreach ($result as $row) { if ($row['user_setting_enabled'] == 'true') { @@ -609,6 +610,9 @@ if (!class_exists('domains')) { //add missing default settings $this->settings(); + //save the database object to be used by app_defaults.php + $database = $this->database; + //get the variables $config = new config; $config_path = $config->config_file; @@ -628,8 +632,7 @@ if (!class_exists('domains')) { //get the domains $sql = "select * from v_domains "; - $database = new database; - $domains = $database->select($sql, null, 'all'); + $domains = $this->database->select($sql, null, 'all'); unset($sql); //loop through all domains @@ -676,8 +679,7 @@ if (!class_exists('domains')) { //get an array of the default settings UUIDs $sql = "select * from v_default_settings "; - $database = new database; - $result = $database->select($sql, null, 'all'); + $result = $this->database->select($sql, null, 'all'); foreach($result as $row) { $setting[$row['default_setting_uuid']] = 1; } @@ -710,10 +712,9 @@ if (!class_exists('domains')) { $p->add('default_setting_add', 'temp'); //execute insert - $database = new database; - $database->app_name = 'default_settings'; - $database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; - $database->save($array, false); + $this->database->app_name = 'default_settings'; + $this->database->app_uuid = '2c2453c0-1bea-4475-9f44-4d969650de09'; + $this->database->save($array, false); unset($array); //revoke temporary permissions @@ -727,11 +728,9 @@ if (!class_exists('domains')) { */ public function all() { //get the domains from the database - $database = new database; - if ($database->table_exists('v_domains')) { + if ($this->database->table_exists('v_domains')) { $sql = "select * from v_domains order by domain_name asc;"; - $database = new database; - $result = $database->select($sql, null, 'all'); + $result = $this->database->select($sql, null, 'all'); foreach($result as $row) { $domain_names[] = $row['domain_name']; }