Add the settings method to the domains class.

This commit is contained in:
FusionPBX 2017-01-14 13:15:03 -07:00 committed by GitHub
parent 16d5f0f8e6
commit 841d56938d
1 changed files with 102 additions and 1 deletions

View File

@ -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
}
}