From: Vincent Vanwaelscappel Date: Wed, 15 Jan 2020 11:52:00 +0000 (+0100) Subject: wip #3322 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=e8965db337706c08bd49fb0cf80595d63fb940d3;p=cubist_cms-back.git wip #3322 @0.5 --- diff --git a/src/app/Magic/Models/Locale.php b/src/app/Magic/Models/Locale.php index cecc1f5..a28c8a4 100644 --- a/src/app/Magic/Models/Locale.php +++ b/src/app/Magic/Models/Locale.php @@ -10,7 +10,7 @@ class Locale extends CubistMagicAbstractModel { protected $table = 'cubist_locales'; - protected static $_locales = null; + protected static $_locales = []; protected static $_mainDomains = []; protected $_options = ['name' => 'locale', @@ -60,17 +60,26 @@ class Locale extends CubistMagicAbstractModel /** * @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; @@ -79,9 +88,9 @@ class Locale extends CubistMagicAbstractModel } } - self::$_locales = ['locales' => $locales, 'default' => $defaultLocale]; + self::$_locales[$variant] = ['locales' => $locales, 'default' => $defaultLocale]; } - return self::$_locales; + return self::$_locales[$variant]; } /** @@ -156,8 +165,12 @@ class Locale extends CubistMagicAbstractModel 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) { @@ -167,9 +180,17 @@ class Locale extends CubistMagicAbstractModel 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; @@ -184,9 +205,9 @@ class Locale extends CubistMagicAbstractModel 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)