[REF] Fix passing null into string functions in translation BAO
authorSeamus Lee <seamuslee001@gmail.com>
Thu, 13 Oct 2022 02:11:23 +0000 (02:11 +0000)
committerSeamus Lee <seamuslee001@gmail.com>
Thu, 13 Oct 2022 02:11:23 +0000 (02:11 +0000)
CRM/Core/BAO/Translation.php

index f1876031188ba5f5df09cd5cf9641d5f477b004e..4cc2d96c28acaa60d7f7fe5c235d6748467c71cd 100644 (file)
@@ -218,12 +218,12 @@ class CRM_Core_BAO_Translation extends CRM_Core_DAO_Translation implements HookI
       ->addWhere('entity_table', '=', CRM_Core_DAO_AllCoreTables::getTableForEntityName($apiRequest['entity']))
       ->setCheckPermissions(FALSE)
       ->setSelect(['entity_field', 'entity_id', 'string', 'language']);
-    if ((substr($userLocale->nominal, '-3', '3') !== '_NO')) {
+    if ((substr($userLocale->nominal ?? '', '-3', '3') !== '_NO')) {
       // Generally we want to check for any translations of the base language
       // and prefer, for example, French French over US English for French Canadians.
       // Sites that genuinely want to cater to both will add translations for both
       // and we work through preferences below.
-      $translations->addWhere('language', 'LIKE', substr($userLocale->nominal, 0, 2) . '%');
+      $translations->addWhere('language', 'LIKE', substr($userLocale->nominal ?? '', 0, 2) . '%');
     }
     else {
       // And here we have ... the Norwegians. They have three main variants which