From fc3d4043c4a547f3e2f112d5a5e48bd03df059f0 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Fri, 26 Aug 2022 11:46:43 +1200 Subject: [PATCH] Fix unreleased regression - loadSavedMapping is protected --- CRM/Contact/Form/Search/Builder.php | 107 +++++++++++++++++++++++++++- CRM/Core/BAO/Mapping.php | 105 --------------------------- 2 files changed, 106 insertions(+), 106 deletions(-) diff --git a/CRM/Contact/Form/Search/Builder.php b/CRM/Contact/Form/Search/Builder.php index 006f3d384a..097269685d 100644 --- a/CRM/Contact/Form/Search/Builder.php +++ b/CRM/Contact/Form/Search/Builder.php @@ -719,7 +719,7 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search { $jsSet = FALSE; if (isset($mappingId)) { - list($mappingName, $defaults, $noneArray, $jsSet) = CRM_Core_BAO_Mapping::loadSavedMapping($mappingLocation, $x, $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, $specialFields, $mappingPhoneType, $defaults, $noneArray, $mappingImProvider, $mappingOperator, $mappingValue); + list($mappingName, $defaults, $noneArray, $jsSet) = $this->loadSavedMapping($mappingLocation, $x, $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, $specialFields, $mappingPhoneType, $defaults, $noneArray, $mappingImProvider, $mappingOperator, $mappingValue); } //Fix for Search Builder $j = 4; @@ -826,6 +826,111 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search { $form->setDefaultAction('refresh'); } + /** + * Load saved mapping. + * + * @param $mappingLocation + * @param int $x + * @param int $i + * @param $mappingName + * @param $mapperFields + * @param $mappingContactType + * @param $mappingRelation + * @param array $specialFields + * @param $mappingPhoneType + * @param $phoneType + * @param array $defaults + * @param array $noneArray + * @param $imProvider + * @param $mappingImProvider + * @param $mappingOperator + * @param $mappingValue + * + * @return array + */ + protected function loadSavedMapping($mappingLocation, int $x, int $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, array $specialFields, $mappingPhoneType, array $defaults, array $noneArray, $mappingImProvider, $mappingOperator, $mappingValue) { + $jsSet = FALSE; + $locationId = $mappingLocation[$x][$i] ?? 0; + if (isset($mappingName[$x][$i])) { + if (is_array($mapperFields[$mappingContactType[$x][$i]])) { + + if (isset($mappingRelation[$x][$i])) { + $relLocationId = $mappingLocation[$x][$i] ?? 0; + if (!$relLocationId && in_array($mappingName[$x][$i], $specialFields)) { + $relLocationId = " "; + } + + $relPhoneType = $mappingPhoneType[$x][$i] ?? NULL; + + $defaults["mapper[$x][$i]"] = [ + $mappingContactType[$x][$i], + $mappingRelation[$x][$i], + $locationId, + $phoneType, + $mappingName[$x][$i], + $relLocationId, + $relPhoneType, + ]; + + if (!$locationId) { + $noneArray[] = [$x, $i, 2]; + } + if (!$phoneType && !$imProvider) { + $noneArray[] = [$x, $i, 3]; + } + if (!$mappingName[$x][$i]) { + $noneArray[] = [$x, $i, 4]; + } + if (!$relLocationId) { + $noneArray[] = [$x, $i, 5]; + } + if (!$relPhoneType) { + $noneArray[] = [$x, $i, 6]; + } + $noneArray[] = [$x, $i, 2]; + } + else { + $phoneType = $mappingPhoneType[$x][$i] ?? NULL; + $imProvider = $mappingImProvider[$x][$i] ?? NULL; + if (!$locationId && in_array($mappingName[$x][$i], $specialFields)) { + $locationId = " "; + } + + $defaults["mapper[$x][$i]"] = [ + $mappingContactType[$x][$i], + $mappingName[$x][$i], + $locationId, + $phoneType, + ]; + if (!$mappingName[$x][$i]) { + $noneArray[] = [$x, $i, 1]; + } + if (!$locationId) { + $noneArray[] = [$x, $i, 2]; + } + if (!$phoneType && !$imProvider) { + $noneArray[] = [$x, $i, 3]; + } + + $noneArray[] = [$x, $i, 4]; + $noneArray[] = [$x, $i, 5]; + $noneArray[] = [$x, $i, 6]; + } + + $jsSet = TRUE; + + if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) { + $defaults["operator[$x][$i]"] = $mappingOperator[$x][$i] ?? NULL; + } + + if (isset($mappingValue[$x][$i])) { + $defaults["value[$x][$i]"] = $mappingValue[$x][$i] ?? NULL; + } + } + } + return [$mappingName, $defaults, $noneArray, $jsSet]; + } + /** * Get the mapping fields. * diff --git a/CRM/Core/BAO/Mapping.php b/CRM/Core/BAO/Mapping.php index f85151dcba..a4b1344cf0 100644 --- a/CRM/Core/BAO/Mapping.php +++ b/CRM/Core/BAO/Mapping.php @@ -526,111 +526,6 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping implements \Civi\Core\Ho return $saveMappingFields; } - /** - * Load saved mapping. - * - * @param $mappingLocation - * @param int $x - * @param int $i - * @param $mappingName - * @param $mapperFields - * @param $mappingContactType - * @param $mappingRelation - * @param array $specialFields - * @param $mappingPhoneType - * @param $phoneType - * @param array $defaults - * @param array $noneArray - * @param $imProvider - * @param $mappingImProvider - * @param $mappingOperator - * @param $mappingValue - * - * @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) { - $jsSet = FALSE; - $locationId = $mappingLocation[$x][$i] ?? 0; - if (isset($mappingName[$x][$i])) { - if (is_array($mapperFields[$mappingContactType[$x][$i]])) { - - if (isset($mappingRelation[$x][$i])) { - $relLocationId = $mappingLocation[$x][$i] ?? 0; - if (!$relLocationId && in_array($mappingName[$x][$i], $specialFields)) { - $relLocationId = " "; - } - - $relPhoneType = $mappingPhoneType[$x][$i] ?? NULL; - - $defaults["mapper[$x][$i]"] = [ - $mappingContactType[$x][$i], - $mappingRelation[$x][$i], - $locationId, - $phoneType, - $mappingName[$x][$i], - $relLocationId, - $relPhoneType, - ]; - - if (!$locationId) { - $noneArray[] = [$x, $i, 2]; - } - if (!$phoneType && !$imProvider) { - $noneArray[] = [$x, $i, 3]; - } - if (!$mappingName[$x][$i]) { - $noneArray[] = [$x, $i, 4]; - } - if (!$relLocationId) { - $noneArray[] = [$x, $i, 5]; - } - if (!$relPhoneType) { - $noneArray[] = [$x, $i, 6]; - } - $noneArray[] = [$x, $i, 2]; - } - else { - $phoneType = $mappingPhoneType[$x][$i] ?? NULL; - $imProvider = $mappingImProvider[$x][$i] ?? NULL; - if (!$locationId && in_array($mappingName[$x][$i], $specialFields)) { - $locationId = " "; - } - - $defaults["mapper[$x][$i]"] = [ - $mappingContactType[$x][$i], - $mappingName[$x][$i], - $locationId, - $phoneType, - ]; - if (!$mappingName[$x][$i]) { - $noneArray[] = [$x, $i, 1]; - } - if (!$locationId) { - $noneArray[] = [$x, $i, 2]; - } - if (!$phoneType && !$imProvider) { - $noneArray[] = [$x, $i, 3]; - } - - $noneArray[] = [$x, $i, 4]; - $noneArray[] = [$x, $i, 5]; - $noneArray[] = [$x, $i, 6]; - } - - $jsSet = TRUE; - - if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) { - $defaults["operator[$x][$i]"] = $mappingOperator[$x][$i] ?? NULL; - } - - if (isset($mappingValue[$x][$i])) { - $defaults["value[$x][$i]"] = $mappingValue[$x][$i] ?? NULL; - } - } - } - return [$mappingName, $defaults, $noneArray, $jsSet]; - } - /** * Function returns all custom fields with group title and * field label -- 2.25.1