Merge pull request #17008 from ivan-compucorp/CPS-70-fix-radio-value
[civicrm-core.git] / CRM / Core / BAO / Mapping.php
index b82a0c5dbb34cfe2e844bb9cd2d3217e139b5571..56c1d9e02034591b8e1c82a6404eab339f88058c 100644 (file)
@@ -795,16 +795,16 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
     $locationTypeId = NULL;
     $saveMappingFields = $defaults;
 
-    $saveMappingFields['name'] = CRM_Utils_Array::value('1', $v);
-    $saveMappingFields['contact_type'] = CRM_Utils_Array::value('0', $v);
-    $locationId = CRM_Utils_Array::value('2', $v);
+    $saveMappingFields['name'] = $v['1'] ?? NULL;
+    $saveMappingFields['contact_type'] = $v['0'] ?? NULL;
+    $locationId = $v['2'] ?? NULL;
     $saveMappingFields['location_type_id'] = is_numeric($locationId) ? $locationId : NULL;
 
     if ($v[1] == 'phone') {
-      $saveMappingFields['phone_type_id'] = CRM_Utils_Array::value('3', $v);
+      $saveMappingFields['phone_type_id'] = $v['3'] ?? NULL;
     }
     elseif ($v[1] == 'im') {
-      $saveMappingFields['im_provider_id'] = CRM_Utils_Array::value('3', $v);
+      $saveMappingFields['im_provider_id'] = $v['3'] ?? NULL;
     }
 
     // Handle mapping for 'related contact' fields
@@ -813,17 +813,17 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
       if (($first == 'a' && $second == 'b') || ($first == 'b' && $second == 'a')) {
 
         if (!empty($v['2'])) {
-          $saveMappingFields['name'] = CRM_Utils_Array::value('2', $v);
+          $saveMappingFields['name'] = $v['2'] ?? NULL;
         }
         elseif (!empty($v['4'])) {
-          $saveMappingFields['name'] = CRM_Utils_Array::value('4', $v);
+          $saveMappingFields['name'] = $v['4'] ?? NULL;
         }
 
         if (is_numeric(CRM_Utils_Array::value('3', $v))) {
-          $locationTypeId = CRM_Utils_Array::value('3', $v);
+          $locationTypeId = $v['3'] ?? NULL;
         }
         elseif (is_numeric(CRM_Utils_Array::value('5', $v))) {
-          $locationTypeId = CRM_Utils_Array::value('5', $v);
+          $locationTypeId = $v['5'] ?? NULL;
         }
 
         if (is_numeric(CRM_Utils_Array::value('4', $v))) {
@@ -831,11 +831,11 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
             $saveMappingFields['im_provider_id'] = $v[4];
           }
           else {
-            $saveMappingFields['phone_type_id'] = CRM_Utils_Array::value('4', $v);
+            $saveMappingFields['phone_type_id'] = $v['4'] ?? NULL;
           }
         }
         elseif (is_numeric(CRM_Utils_Array::value('6', $v))) {
-          $saveMappingFields['phone_type_id'] = CRM_Utils_Array::value('6', $v);
+          $saveMappingFields['phone_type_id'] = $v['6'] ?? NULL;
         }
 
         $saveMappingFields['location_type_id'] = is_numeric($locationTypeId) ? $locationTypeId : NULL;
@@ -870,17 +870,17 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
    * @return array
    */
   protected static function loadSavedMapping($mappingLocation, int $x, int $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, array $specialFields, $mappingPhoneType, array $defaults, array $noneArray, $mappingImProvider, $mappingOperator, $mappingValue) {
-    $locationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
+    $locationId = $mappingLocation[$x][$i] ?? 0;
     if (isset($mappingName[$x][$i])) {
       if (is_array($mapperFields[$mappingContactType[$x][$i]])) {
 
         if (isset($mappingRelation[$x][$i])) {
-          $relLocationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
+          $relLocationId = $mappingLocation[$x][$i] ?? 0;
           if (!$relLocationId && in_array($mappingName[$x][$i], $specialFields)) {
             $relLocationId = " ";
           }
 
-          $relPhoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;
+          $relPhoneType = $mappingPhoneType[$x][$i] ?? NULL;
 
           $defaults["mapper[$x][$i]"] = [
             $mappingContactType[$x][$i],
@@ -910,8 +910,8 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
           $noneArray[] = [$x, $i, 2];
         }
         else {
-          $phoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;
-          $imProvider = isset($mappingImProvider[$x][$i]) ? $mappingImProvider[$x][$i] : NULL;
+          $phoneType = $mappingPhoneType[$x][$i] ?? NULL;
+          $imProvider = $mappingImProvider[$x][$i] ?? NULL;
           if (!$locationId && in_array($mappingName[$x][$i], $specialFields)) {
             $locationId = " ";
           }
@@ -940,11 +940,11 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
         $jsSet = TRUE;
 
         if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) {
-          $defaults["operator[$x][$i]"] = CRM_Utils_Array::value($i, $mappingOperator[$x]);
+          $defaults["operator[$x][$i]"] = $mappingOperator[$x][$i] ?? NULL;
         }
 
         if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingValue))) {
-          $defaults["value[$x][$i]"] = CRM_Utils_Array::value($i, $mappingValue[$x]);
+          $defaults["value[$x][$i]"] = $mappingValue[$x][$i] ?? NULL;
         }
       }
     }
@@ -1002,6 +1002,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
    *
    * @return array
    *   formatted associated array of elements
+   * @throws CRM_Core_Exception
    */
   public static function formattedFields(&$params, $row = FALSE) {
     $fields = [];
@@ -1016,7 +1017,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
       foreach ($value as $k => $v) {
         if (in_array($v[0], $types)) {
           if ($contactType && $contactType != $v[0]) {
-            CRM_Core_Error::fatal(ts("Cannot have two clauses with different types: %1, %2",
+            throw new CRM_Core_Exception(ts("Cannot have two clauses with different types: %1, %2",
               [1 => $contactType, 2 => $v[0]]
             ));
           }
@@ -1024,12 +1025,12 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping {
         }
         if (!empty($v['1'])) {
           $fldName = $v[1];
-          $v2 = CRM_Utils_Array::value('2', $v);
+          $v2 = $v['2'] ?? NULL;
           if ($v2 && trim($v2)) {
             $fldName .= "-{$v[2]}";
           }
 
-          $v3 = CRM_Utils_Array::value('3', $v);
+          $v3 = $v['3'] ?? NULL;
           if ($v3 && trim($v3)) {
             $fldName .= "-{$v[3]}";
           }