From ed83ef4de447b93fc1f8eb87f0070b0c0e44c9b9 Mon Sep 17 00:00:00 2001 From: frytimo Date: Tue, 23 Sep 2025 00:51:40 -0300 Subject: [PATCH] Move settings cache flush after database save (#7527) * Move settings cache flush after database save * Improve cache flush on flush cache button --- core/default_settings/default_setting_edit.php | 18 +++++++++--------- .../default_settings_reload.php | 11 +++++++++++ 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/core/default_settings/default_setting_edit.php b/core/default_settings/default_setting_edit.php index 2b4ce4d2ff..7475b0908e 100644 --- a/core/default_settings/default_setting_edit.php +++ b/core/default_settings/default_setting_edit.php @@ -143,15 +143,6 @@ // fix null $default_setting_order = ($default_setting_order != '') ? $default_setting_order : 'null'; - //reset the cache for settings object - settings::clear_cache(); - - //reset others - $classes_to_clear = array_filter($autoload->get_interface_list('clear_cache'), function ($class) { return $class !== 'settings'; }); - foreach ($classes_to_clear as $class_name) { - $class_name::clear_cache(); - } - //update switch timezone variables if ($default_setting_category == "domain" && $default_setting_subcategory == "time_zone" && $default_setting_name == "name" ) { //get the dialplan_uuid @@ -233,6 +224,15 @@ $database->save($array); $message = $database->message; + //reset the cache for settings object + settings::clear_cache(); + + //reset others + $classes_to_clear = array_filter($autoload->get_interface_list('clear_cache'), function ($class) { return $class !== 'settings'; }); + foreach ($classes_to_clear as $class_name) { + $class_name::clear_cache(); + } + //set the message and redirect the user if ($action == "add" && permission_exists('default_setting_add')) { message::add($text['message-add']); diff --git a/core/default_settings/default_settings_reload.php b/core/default_settings/default_settings_reload.php index 916d51add7..f6cf5e17cf 100644 --- a/core/default_settings/default_settings_reload.php +++ b/core/default_settings/default_settings_reload.php @@ -45,8 +45,19 @@ $text = $language->get(); $search = $_REQUEST['search'] ?? ''; $domain_uuid = $_GET['id'] ?? null; +//reload autoloader +$autoload->update(); + //reload default settings settings::clear_cache(); + +//reset others +$classes_to_clear = array_filter($autoload->get_interface_list('clear_cache'), function ($class) { return $class !== 'settings'; }); +foreach ($classes_to_clear as $class_name) { + $class_name::clear_cache(); +} + +//reset domains $domain = new domains(); $domain->set();