From b34f1769f00fc90c1156faa4cf525ec13af4146f Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Sat, 14 Jan 2017 18:15:34 -0700 Subject: [PATCH] Update domains.php --- resources/classes/domains.php | 58 +++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/resources/classes/domains.php b/resources/classes/domains.php index 3d48127085..eb1c2750cd 100644 --- a/resources/classes/domains.php +++ b/resources/classes/domains.php @@ -399,45 +399,57 @@ if (!class_exists('domains')) { //get an array of the default settings $sql = "select * from v_default_settings "; + $sql .= "order by default_setting_category asc, default_setting_subcategory asc"; $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 + //named array + foreach ($default_settings as $row) { + $default_settings[$row['default_setting_category']][$row['default_setting_subcategory']][$row['default_setting_name']]['uuid'] = $row['default_setting_uuid']; + $default_settings[$row['default_setting_category']][$row['default_setting_subcategory']][$row['default_setting_name']]['value'] = $row['default_setting_value']; + $default_settings[$row['default_setting_category']][$row['default_setting_subcategory']][$row['default_setting_name']]['app_uuid'] = $row['app_uuid']; + //echo "[".$row['default_setting_category']."][".$row['default_setting_subcategory']."][".$row['default_setting_name']."] = ".$row['default_setting_value']."\n"; + } + + //update matching settings with the correct default_setting_uuid and app_uuid and if they exist remove them from the array $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'])) { + foreach ($array as $row) { + $category = $row['default_setting_category']; + $subcategory = $row['default_setting_subcategory']; + $name = $row['default_setting_name']; - //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)); + if (isset($default_settings[$category][$subcategory][$name]['value'])) { + //set the variables + $default_setting_uuid = $default_settings[$category][$subcategory][$name]['uuid']; + $app_uuid = $default_settings[$category][$subcategory][$name]['app_uuid']; + //update matching settings + if ($app_uuid == null) { + $sql = "update v_default_settings set "; + if ($default_setting_uuid != $row['default_setting_uuid']) { + $sql .= "default_setting_uuid = '".$row['default_setting_uuid']."', "; } + $sql .= "app_uuid = '".$row['app_uuid']."' "; + $sql .= "where default_setting_uuid = '".$row['default_setting_uuid']."';"; + echo $category." ".$subcategory." ".$name." ".$app_uuid."\n"; + echo $sql."\n"; + $this->db->exec(check_sql($sql)); + //echo "\n"; + } - //remove settings from the array that were found - unset($array[$x]); - } + //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; + $array_count = count($array); //add the missing default settings - if (is_array($array)) { + if (is_array($array) && count($array) > 0) { $sql = "insert into v_default_settings ("; $sql .= "default_setting_uuid, "; $sql .= "default_setting_category, "; @@ -463,7 +475,7 @@ if (!class_exists('domains')) { } $i++; } - //echo $sql; + echo $sql."\n"; $this->db->exec(check_sql($sql)); unset($array); }