Drupal.civi-setup.php - Don't assume that `$language` is available
authorTim Otten <totten@civicrm.org>
Mon, 6 Jul 2020 08:46:37 +0000 (01:46 -0700)
committerTim Otten <totten@civicrm.org>
Mon, 6 Jul 2020 08:56:13 +0000 (01:56 -0700)
setup/plugins/init/Drupal.civi-setup.php
setup/src/Setup/LocaleUtil.php

index 75e7c5a3d4c87756ce88560e34dec84eb9c5860a..b24d7c164cba6e70d5b6b7ca8bd2ebbcc2c5bd74 100644 (file)
@@ -59,7 +59,7 @@ if (!defined('CIVI_SETUP')) {
 
     // Compute default locale.
     global $language;
-    $model->lang = \Civi\Setup\LocaleUtil::pickClosest($language->langcode, $model->getField('lang', 'options'));
+    $model->lang = \Civi\Setup\LocaleUtil::pickClosest($language->langcode ?? NULL, $model->getField('lang', 'options'));
   });
 
 function _drupal_civisetup_getPublicFiles() {
index fe0c9f0e6042b685345fdd87a511844bfe0db8e8..f996eb9a6680a3e79a0a67cda7fcb8d02a3bc4a2 100644 (file)
@@ -19,6 +19,10 @@ class LocaleUtil {
    *   Ex: 'en_US'.
    */
   public static function pickClosest($preferredLang, $availLangs, $default = 'en_US') {
+    if ($preferredLang === NULL || $preferredLang === '') {
+      return $default;
+    }
+
     // Perhaps we have this exact language?
     if (isset($availLangs[$preferredLang])) {
       return $preferredLang;