在 c5.7 上,config 变量concrete.multilingual.default_locale
存储了具体 5 安装的默认语言环境。在 c5-8 上,我们不能再访问这个变量了。如何在新的 c5-8 安装中获得此值?
问问题
73 次
1 回答
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;
}
}
}
于 2017-11-10T12:35:05.510 回答