mirror of
https://github.com/silverstripe/silverstripe-translatable
synced 2024-10-22 11:05:59 +02:00
FIX: don't re-enable the locale filter if it wasn't enabled before
This breaks code that tries to get all instances of SiteConfig like: ``` Translatable::disable_locale_filter(); $all = SiteConfig::get(); Translatable::enable_locale_filter(); ``` What was happening was that our populateSiteConfigDefaults method was getting called before the actual data list the users uses above is created, so it was re-enabling the locale filter before the augmentDataQuery function was called on the data list created for the user. Thus, they'd get a locale-augmented query and only get the SiteConfig for the current locale, and not all as clearly intended.
This commit is contained in:
parent
34a171b9dc
commit
2da48dfd65
@ -1259,12 +1259,15 @@ class Translatable extends DataExtension implements PermissionProvider {
|
||||
if(DB::getConn()->isSchemaUpdating()) return;
|
||||
|
||||
// Find the best base translation for SiteConfig
|
||||
$enabled = Translatable::locale_filter_enabled();
|
||||
Translatable::disable_locale_filter();
|
||||
$existingConfig = SiteConfig::get()->filter(array(
|
||||
'Locale' => Translatable::default_locale()
|
||||
))->first();
|
||||
if(!$existingConfig) $existingConfig = SiteConfig::get()->first();
|
||||
Translatable::enable_locale_filter();
|
||||
if ($enabled) {
|
||||
Translatable::enable_locale_filter();
|
||||
}
|
||||
|
||||
// Stage this SiteConfig and copy into the current object
|
||||
if(
|
||||
|
Loading…
Reference in New Issue
Block a user