From 114e8771a185d87adfa7215badd1ac42407e3901 Mon Sep 17 00:00:00 2001 From: Alice Frumin Date: Mon, 2 Nov 2020 12:56:51 -0600 Subject: [PATCH] dev/core#2139 fix defaulting for multi-select custom fields --- CRM/Core/BAO/CustomOption.php | 2 +- CRM/Custom/Form/Option.php | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CRM/Core/BAO/CustomOption.php b/CRM/Core/BAO/CustomOption.php index e876436f75..cb20ec185b 100644 --- a/CRM/Core/BAO/CustomOption.php +++ b/CRM/Core/BAO/CustomOption.php @@ -137,7 +137,7 @@ class CRM_Core_BAO_CustomOption { $action -= CRM_Core_Action::DELETE; } - if (in_array($field->html_type, ['CheckBox', 'Multi-Select'])) { + if ($field->html_type == 'CheckBox' || ($field->html_type == 'Select' && $field->serialize == 1)) { $options[$dao->id]['is_default'] = (isset($defVal) && in_array($dao->value, $defVal)); } else { diff --git a/CRM/Custom/Form/Option.php b/CRM/Custom/Form/Option.php index 05f6dcd81e..7b4441074c 100644 --- a/CRM/Custom/Form/Option.php +++ b/CRM/Custom/Form/Option.php @@ -95,9 +95,9 @@ class CRM_Custom_Form_Option extends CRM_Core_Form { $paramsField = ['id' => $this->_fid]; CRM_Core_BAO_CustomField::retrieve($paramsField, $fieldDefaults); - if ($fieldDefaults['html_type'] == 'CheckBox' - || $fieldDefaults['html_type'] == 'Multi-Select' + // Multi-Select + || ($fieldDefaults['html_type'] == 'Select' && $fieldDefaults['serialize'] == 1) ) { if (!empty($fieldDefaults['default_value'])) { $defaultCheckValues = explode(CRM_Core_DAO::VALUE_SEPARATOR, @@ -420,7 +420,8 @@ SELECT count(*) $customField->find(TRUE) && ( $customField->html_type == 'CheckBox' || - $customField->html_type == 'Multi-Select' + // Multi Value Select + ($customField->html_type == 'Select' && $customField->serialize == 1) ) ) { $defVal = explode( -- 2.25.1