Как получить локаль по умолчанию на ранней стадии

На с5.7 переменная конфиг concrete.multilingual.default_locale сохранен язык по умолчанию для конкретной установки.
На c5-8 мы больше не можем получить доступ к этой переменной. Как я могу получить это значение на новых установках c5-8?

0

Решение

Поскольку concrete5 предоставляет несколько сайтов в одной и той же установке, каждому сайту необходим определенный язык по умолчанию. Поэтому переменная конфигурации локали по умолчанию больше не имеет значения, и локаль по умолчанию хранится в таблице базы данных. sites,

Доступ к локали по умолчанию для всех определенных сайтов:

$defaultLocales = [];
$sl = new \Concrete\Core\Site\SiteList();
$sites = $sl->get();
foreach ($sites as $site) {
$defaultLocales[$site->getSiteID()] = $site->getDefaultLocale();
}

Далее будет показано, как получить это значение для первого найденного сайта с обратной совместимостью для c5.7.

$defaultLocale = Config::get('concrete.multilingual.default_locale');
if (!$defaultLocale) {
if (class_exists('\Concrete\Core\Site\SiteList')) {
$sl = new \Concrete\Core\Site\SiteList();
$sites = $sl->get();
foreach ($sites as $site) {
$defaultLocale = $site->getDefaultLocale();
break;
}
}
}

Src: бетон / SRC / Entity / сайта / Site

0

Другие решения

Других решений пока нет …