From ceccbc3526de13224014ee3f163cfb35c54594a6 Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 25 Jul 2013 14:58:54 +1200 Subject: [PATCH] CRM-13072 fix getfields caching bug --- api/v3/Generic.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/api/v3/Generic.php b/api/v3/Generic.php index 2d5b6fb431..3daa7b3f38 100644 --- a/api/v3/Generic.php +++ b/api/v3/Generic.php @@ -38,6 +38,7 @@ function civicrm_api3_generic_getfields($apiRequest) { $lcase_entity = _civicrm_api_get_entity_name_from_camel($entity); $subentity = CRM_Utils_Array::value('contact_type', $apiRequest['params']); $action = strtolower(CRM_Utils_Array::value('action', $apiRequest['params'])); + $sequential = empty($apiRequest['params']) ? 0 : 1; $apiOptions = CRM_Utils_Array::value('options', $apiRequest['params'], array()); if ($action == 'getvalue' || $action == 'getvalue' || $action == 'getcount') { $action = 'get'; @@ -48,9 +49,9 @@ function civicrm_api3_generic_getfields($apiRequest) { } // determines whether to use unique field names - seem comment block above $unique = TRUE; - if (isset($results[$entity . $subentity]) && CRM_Utils_Array::value($action, $results[$entity]) - && empty($apiOptions)) { - return $results[$entity . $subentity][$action]; + if (empty($apiOptions) && isset($results[$entity . $subentity]) && isset($action, $results[$entity . $subentity]) + && isset($action, $results[$entity . $subentity][$sequential])) { + return $results[$entity . $subentity][$action][$sequential]; } // defaults based on data model and API policy switch ($action) { @@ -120,8 +121,8 @@ function civicrm_api3_generic_getfields($apiRequest) { _civicrm_api3_generic_get_metadata_options($metadata, $apiRequest['entity'], $fieldname, $fieldSpec, $fieldsToResolve); } - $results[$entity][$action] = civicrm_api3_create_success($metadata, $apiRequest['params'], NULL, 'getfields'); - return $results[$entity][$action]; + $results[$entity][$action][$sequential] = civicrm_api3_create_success($metadata, $apiRequest['params'], NULL, 'getfields'); + return $results[$entity][$action][$sequential]; } /** -- 2.25.1