Merge pull request #17078 from herbdool/ui-18
[civicrm-core.git] / CRM / Utils / DeprecatedUtils.php
index 4e5e9ce3f083ed8b17e8e40ddc87689e28b46fd6..af1b411902e2c1f0e83443d4f822e543c4ef84d5 100644 (file)
@@ -135,24 +135,7 @@ function _civicrm_api3_deprecated_activity_formatted_param(&$params, &$values, $
       $values[$key] = $value;
       $type = $customFields[$customFieldID]['html_type'];
       if (CRM_Core_BAO_CustomField::isSerialized($customFields[$customFieldID])) {
-        $mulValues = explode(',', $value);
-        $customOption = CRM_Core_BAO_CustomOption::getCustomOption($customFieldID, TRUE);
-        $values[$key] = [];
-        foreach ($mulValues as $v1) {
-          foreach ($customOption as $customValueID => $customLabel) {
-            $customValue = $customLabel['value'];
-            if ((strtolower(trim($customLabel['label'])) == strtolower(trim($v1))) ||
-              (strtolower(trim($customValue)) == strtolower(trim($v1)))
-            ) {
-              if ($type == 'CheckBox') {
-                $values[$key][$customValue] = 1;
-              }
-              else {
-                $values[$key][] = $customValue;
-              }
-            }
-          }
-        }
+        $values[$key] = CRM_Import_Parser::unserializeCustomValue($customFieldID, $value, $type);
       }
       elseif ($type == 'Select' || $type == 'Radio') {
         $customOption = CRM_Core_BAO_CustomOption::getCustomOption($customFieldID, TRUE);
@@ -435,29 +418,24 @@ function _civicrm_api3_deprecated_add_formatted_param(&$values, &$params) {
           $fields['Address'][$key] = NULL;
 
           $htmlType = $customFields[$customFieldID]['html_type'] ?? NULL;
-          switch ($htmlType) {
-            case 'CheckBox':
-            case 'Multi-Select':
-              if ($val) {
-                $mulValues = explode(',', $val);
-                $customOption = CRM_Core_BAO_CustomOption::getCustomOption($customFieldID, TRUE);
-                $newValues[$key] = [];
-                foreach ($mulValues as $v1) {
-                  foreach ($customOption as $v2) {
-                    if ((strtolower($v2['label']) == strtolower(trim($v1))) ||
-                      (strtolower($v2['value']) == strtolower(trim($v1)))
-                    ) {
-                      if ($htmlType == 'CheckBox') {
-                        $newValues[$key][$v2['value']] = 1;
-                      }
-                      else {
-                        $newValues[$key][] = $v2['value'];
-                      }
-                    }
+          if (CRM_Core_BAO_CustomField::isSerialized($customFields[$customFieldID]) && $val) {
+            $mulValues = explode(',', $val);
+            $customOption = CRM_Core_BAO_CustomOption::getCustomOption($customFieldID, TRUE);
+            $newValues[$key] = [];
+            foreach ($mulValues as $v1) {
+              foreach ($customOption as $v2) {
+                if ((strtolower($v2['label']) == strtolower(trim($v1))) ||
+                  (strtolower($v2['value']) == strtolower(trim($v1)))
+                ) {
+                  if ($htmlType == 'CheckBox') {
+                    $newValues[$key][$v2['value']] = 1;
+                  }
+                  else {
+                    $newValues[$key][] = $v2['value'];
                   }
                 }
               }
-              break;
+            }
           }
         }
       }