{
protected $table = 'cubist_locales';
- protected static $_locales = null;
+ protected static $_locales = [];
protected static $_mainDomains = [];
protected $_options = ['name' => 'locale',
/**
* @return array
*/
- public static function getLocalesData($filterVariant = true)
+ public static function getLocalesData($variant = true)
{
- $variant = App::getVariant();
- if (self::$_locales === null) {
+ if (null === $variant || $variant === true) {
+ $variant = App::getVariant();
+ }
+ if ($variant === false) {
+ $variant = 'unset';
+ $filter = false;
+ } else {
+ $filter = true;
+ }
+
+ if (!isset(self::$_locales[$variant])) {
$class = Locale::getLocaleClass();
$localeEntities = $class::orderBy('default', 'DESC')->get();
$defaultLocale = null;
$locales = [];
foreach ($localeEntities as $locale) {
- if ($filterVariant && $variant !== 'unset' && $variant !== $locale->variant) {
+ if ($filter && $variant !== 'unset' && $variant !== $locale->variant) {
continue;
}
$locales[] = $locale;
}
}
- self::$_locales = ['locales' => $locales, 'default' => $defaultLocale];
+ self::$_locales[$variant] = ['locales' => $locales, 'default' => $defaultLocale];
}
- return self::$_locales;
+ return self::$_locales[$variant];
}
/**
return $res;
}
- public static function getLocaleData($locale)
+ public static function getLocaleData($locale, $variant = null)
{
+ if (null === $variant) {
+ $variant = App::getVariant();
+ }
+
$all = self::getLocalesData()['locales'];
foreach ($all as $data) {
if ($data->locale === $locale) {
return null;
}
- public static function getMainDomain($locale)
+ public static function getMainDomain($locale, $variant = null)
{
- if (!isset(self::$_mainDomains[$locale])) {
+ if ($variant === null) {
+ $variant = App::getVariant();
+ }
+
+ if (!isset(self::$_mainDomains[$variant])) {
+ self::$_mainDomains[$variant] = [];
+ }
+
+ if (!isset(self::$_mainDomains[$variant][$locale])) {
$loc = self::getLocaleData($locale);
if (null === $loc) {
return false;
break;
}
}
- self::$_mainDomains[$locale] = $res ?? false;
+ self::$_mainDomains[$variant][$locale] = $res ?? false;
}
- return self::$_mainDomains[$locale];
+ return self::$_mainDomains[$variant][$locale];
}
public static function isLocaleEnabled($locale)