static $enabled = NULL;
if (!$all) {
- $all = CRM_Contact_BAO_Contact::buildOptions('preferred_language');
+ // Use `getValues`, not `buildOptions` to bypass hook_civicrm_fieldOptions. See core#1132.
+ CRM_Core_OptionValue::getValues(['name' => 'languages'], $optionValues, 'weight', TRUE);
+ $all = array_column($optionValues, 'label', 'name');
+ // FIXME: How is this not duplicative of the lines above?
// get labels
$rows = [];
$labels = [];
/**
* Is the current CiviCRM domain in multilingual mode.
*
- * @return Bool
+ * @return bool
* True if CiviCRM is in multilingual mode.
*/
public static function isMultilingual() {
- $domainId = CRM_Core_Config::domainID();
- return (bool) CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Domain', $domainId, 'locales');
+ $domain = CRM_Core_BAO_Domain::getDomain();
+ return (bool) $domain->locales;
+ }
+
+ /**
+ * Returns languages if domain is in multilingual mode.
+ *
+ * @return array|bool
+ */
+ public static function getMultilingual() {
+ $domain = CRM_Core_BAO_Domain::getDomain();
+ return $domain->locales ? CRM_Core_DAO::unSerializeField($domain->locales, CRM_Core_DAO::SERIALIZE_SEPARATOR_TRIMMED) : FALSE;
}
/**
* @param $language
* Language (for example 'en_US', or 'fr_CA').
*
- * @return Bool
+ * @return bool
* True if it is an RTL language.
*/
public static function isLanguageRTL($language) {