2017-11-10 6 views
0

c5.7では、config変数concrete.multilingual.default_localeにconcrete5インストールのデフォルトロケールが保存されました。c5-8では、この変数にはもうアクセスできません。新しいc5-8のインストールでこの価値をどのように得ることができますか?初期段階でデフォルトロケールを取得する方法

答えて

0

concrete5は同じインストールで複数のサイトを提供するので、すべてのサイトで特定のデフォルト言語が必要です。したがって、デフォルトのロケール設定変数は意味がなくなり、デフォルトのロケールはdbテーブル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:concrete/src/Entity/Site/Site

関連する問題