From b3fa4150055a321ce82ba4aeb06ad72470329606 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Mon, 29 Aug 2022 18:48:22 -0700 Subject: [PATCH] APIv4 $languages - Adapt based on 'partial_locales' setting --- Civi/Api4/Action/GetActions.php | 8 -------- Civi/Api4/Generic/AbstractAction.php | 11 ++++++++--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Civi/Api4/Action/GetActions.php b/Civi/Api4/Action/GetActions.php index 1720ee7016..5f3dbd9a61 100644 --- a/Civi/Api4/Action/GetActions.php +++ b/Civi/Api4/Action/GetActions.php @@ -99,14 +99,6 @@ class GetActions extends BasicGetAction { } if ($this->_isFieldSelected('params')) { $this->_actions[$actionName]['params'] = $action->getParamInfo(); - // Language param is only relevant on multilingual sites - $languageLimit = (array) \Civi::settings()->get('languageLimit'); - if (count($languageLimit) < 2) { - unset($this->_actions[$actionName]['params']['language']); - } - elseif (isset($this->_actions[$actionName]['params']['language'])) { - $this->_actions[$actionName]['params']['language']['options'] = array_keys($languageLimit); - } } } } diff --git a/Civi/Api4/Generic/AbstractAction.php b/Civi/Api4/Generic/AbstractAction.php index 51c76450b7..5ad1a3e458 100644 --- a/Civi/Api4/Generic/AbstractAction.php +++ b/Civi/Api4/Generic/AbstractAction.php @@ -56,7 +56,7 @@ abstract class AbstractAction implements \ArrayAccess { * by `Civi\Core\Locale::negotiate($preferredLanguage)`. * * @var string - * @optionsCallback getPreferredLanguageOptions + * @optionsCallback getLanguageOptions */ protected $language; @@ -585,10 +585,15 @@ abstract class AbstractAction implements \ArrayAccess { * * @return array */ - protected function getPreferredLanguageOptions(): array { + protected function getLanguageOptions(): array { $languages = \CRM_Contact_BAO_Contact::buildOptions('preferred_language'); ksort($languages); - return array_keys($languages); + $result = array_keys($languages); + if (!\Civi::settings()->get('partial_locales')) { + $uiLanguages = \CRM_Core_I18n::uiLanguages(TRUE); + $result = array_values(array_intersect($result, $uiLanguages)); + } + return $result; } } -- 2.25.1