Add to preserve hidden config options

This commit is contained in:
iliajie
2022-07-30 01:00:59 +03:00
parent 3de1f1ba2f
commit de3b01d083

View File

@@ -59,8 +59,8 @@ foreach $o (@lang_order_list) {
# Call any config pre-load function
if (&foreign_func_exists($module, 'config_pre_load')) {
&foreign_call($module, "config_pre_load", \%info, \@info_order)
&foreign_call($module, "config_pre_load", \%einfo)
&foreign_call($module, "config_pre_load", \%info, \@info_order);
&foreign_call($module, "config_pre_load", \%einfo);
}
@info_order = &unique(@info_order);
@@ -344,6 +344,20 @@ foreach my $c (@info_order) {
$config->{$c}, @p);
}
}
# If config fields are conditional (not displayed)
# make sure to preserve system default values to
# prevent changing behaviour of a module
if (&foreign_exists($module) &&
&foreign_require($module) &&
&foreign_func_exists($module, 'config_preserve')) {
my @config_preserve = &foreign_call($module, "config_preserve");
my %oldmoduleconf;
&read_file("$config_directory/$module/config", \%oldmoduleconf);
foreach my $o (@config_preserve) {
$config->{$o} = $oldmoduleconf{$o};
}
}
}
# config_in_section(&section, &order, &config-info)