X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FMembership.php;h=856ae2b967ff394962accaeaf33a576070a43cf2;hb=3b9e5cde1c65733cccc36dca4c549727b7c93256;hp=3dc34047307a69991145ae57fd4d701482e39b83;hpb=dcd44479f54d44d876ff8492702285bde7368e67;p=civicrm-core.git diff --git a/api/v3/Membership.php b/api/v3/Membership.php index 3dc3404730..856ae2b967 100644 --- a/api/v3/Membership.php +++ b/api/v3/Membership.php @@ -187,32 +187,21 @@ function civicrm_api3_membership_get($params) { $activeOnly = $membershipTypeId = $membershipType = NULL; $contactID = CRM_Utils_Array::value('contact_id', $params); - if (!empty($params['filters']) && is_array($params['filters'])) { - $activeOnly = CRM_Utils_Array::value('is_current', $params['filters'], FALSE); + if (!empty($params['filters']) && is_array($params['filters']) && isset($params['filters']['is_current'])) { + $activeOnly = $params['filters']['is_current']; + unset($params['filters']['is_current']); } $activeOnly = CRM_Utils_Array::value('active_only', $params, $activeOnly); - - //@todo replace this by handling in API layer - we should have enough info to do this - // between pseudoconstant & fk - see comments in format_params - $membershipTypeId = CRM_Utils_Array::value('membership_type_id', $params); - if (!$membershipTypeId) { - $membershipType = CRM_Utils_Array::value('membership_type', $params); - if ($membershipType) { - $membershipTypeId = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', - $membershipType, 'id', 'name' - ); - } + if($activeOnly && empty($params['status_id'])) { + $params['status_id'] = array('IN' => CRM_Member_BAO_MembershipStatus::getMembershipStatusCurrent()); } - - if (CRM_Utils_Array::value('contact_id', $params) && !is_array($params['contact_id'])) { - $membershipValues = _civicrm_api3_membership_get_customv2behaviour($params, $membershipTypeId, $activeOnly ); - } - else { - //legacy behaviour only ever worked when contact_id passed in - use standard api function otherwise - $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE); + $options = _civicrm_api3_get_options_from_params($params, TRUE,'membership', 'get'); + if($options['is_count']) { + return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); } + $membershipValues = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params, FALSE); + - $options = _civicrm_api3_get_options_from_params($params, TRUE,'membership','get'); $return = $options['return']; if(empty($membershipValues) || (!empty($return)