Sfoglia il codice sorgente

Add the settings method to the domains class.

FusionPBX 8 anni fa
parent
commit
8133a01ce5
1 ha cambiato i file con 102 aggiunte e 1 eliminazioni
  1. 102 1
      resources/classes/domains.php

+ 102 - 1
resources/classes/domains.php

@@ -263,6 +263,7 @@ if (!class_exists('domains')) {
 				$database_default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
 				unset($prep_statement);
 
+
 			//get the domain_uuid
 				foreach($domains as $row) {
 					if (count($domains) == 1) {
@@ -363,7 +364,107 @@ if (!class_exists('domains')) {
 				unset($_SESSION['domain']);
 				unset($_SESSION['switch']);
 
-		}
+		} //end upgrade method
+
+		public function settings() {
+
+			//connect to the database if not connected
+				if (!$this->db) {
+					require_once "resources/classes/database.php";
+					$database = new database;
+					$database->connect();
+					$this->db = $database->db;
+				}
+
+			//get the list of installed apps from the core and mod directories
+				$config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php");
+				$x=0;
+				foreach ($config_list as $config_path) {
+					include($config_path);
+					$x++;
+				}
+				$x = 0;
+				foreach ($apps as $app) {
+					if (is_array($app['default_settings'])) {
+						foreach ($app['default_settings'] as $setting) {
+								$array[$x] = ($setting);
+								$array[$x]['app_uuid'] = $app['uuid'];
+								$x++;
+						}
+					}
+				}
+
+			//get an array of the default settings
+				$sql = "select * from v_default_settings ";
+				$prep_statement = $this->db->prepare($sql);
+				$prep_statement->execute();
+				$default_settings = $prep_statement->fetchAll(PDO::FETCH_NAMED);
+				unset ($prep_statement, $sql);
+
+			//find the missing default settings
+				$x = 0;
+				foreach ($array as $setting) {
+					foreach ($default_settings as $row) {
+						if (trim($row['default_setting_category']) == trim($setting['default_setting_category']) 
+							&& trim($row['default_setting_subcategory']) == trim($setting['default_setting_subcategory']) 
+							&& trim($row['default_setting_name']) == trim($setting['default_setting_name'])
+							&& trim($row['default_setting_value']) == trim($setting['default_setting_value'])) {
+
+							//update matching settings
+								if ($row['default_setting_uuid'] != $setting['default_setting_uuid']) {
+									$sql = "update v_default_settings ";
+									$sql .= "set default_setting_uuid = '".$setting['default_setting_uuid']."', ";
+									$sql .= "app_uuid = '".$setting['app_uuid']."', ";
+									$sql .= "where default_setting_uuid = '".$row['default_setting_uuid']."';";
+									echo $sql."\n";
+						//			$this->db->exec(check_sql($sql));
+								}
+
+							//remove settings from the array that were found
+								unset($array[$x]);
+						}
+					}
+					$x++;
+				}
+				unset($default_settings);
+
+			//get the missing count
+				$i = 0;
+				foreach ($array as $row) { $i++; }
+				$array_count = $i;
+
+			//add the missing default settings
+				if (is_array($array)) {
+					$sql = "insert into v_default_settings (";
+					$sql .= "default_setting_uuid, ";
+					$sql .= "default_setting_category, ";
+					$sql .= "default_setting_subcategory, ";
+					$sql .= "default_setting_name, ";
+					$sql .= "default_setting_value, ";
+					$sql .= "default_setting_enabled, ";
+					$sql .= "default_setting_description ";
+					$sql .= ") values \n";
+					$i = 1;
+					foreach ($array as $row) {
+						$sql .= "(";
+						$sql .= "'".check_str($row['default_setting_uuid'])."', ";
+						$sql .= "'".check_str($row['default_setting_category'])."', ";
+						$sql .= "'".check_str($row['default_setting_subcategory'])."', ";
+						$sql .= "'".check_str($row['default_setting_name'])."', ";
+						$sql .= "'".check_str($row['default_setting_value'])."', ";
+						$sql .= "'".check_str($row['default_setting_enabled'])."', ";
+						$sql .= "'".check_str($row['default_setting_description'])."' ";
+						$sql .= ")";
+						if ($array_count != $i) {
+							$sql .= ",\n";
+						}
+						$i++;
+					}
+					echo $sql;
+		//			$this->db->exec(check_sql($sql));
+					unset($array);
+				}		
+		} //end settings method
 	}
 }