X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FMembership.php;h=29b4810f85089113f6cacf670a5006a06a6e3f7e;hb=85bb0909cffd925f4cd5c0022a68a1ff74d3ad8e;hp=0f58352e0507cf914f23a9201635837f4cdace11;hpb=79cffafae988e139ad14440c7502710a23ac15fa;p=civicrm-core.git diff --git a/api/v3/Membership.php b/api/v3/Membership.php index 0f58352e05..29b4810f85 100644 --- a/api/v3/Membership.php +++ b/api/v3/Membership.php @@ -2,9 +2,9 @@ /* +--------------------------------------------------------------------+ - | CiviCRM version 4.4 | + | CiviCRM version 4.5 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2013 | + | Copyright CiviCRM LLC (c) 2004-2014 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -33,7 +33,7 @@ * @package CiviCRM_APIv3 * @subpackage API_Membership * - * @copyright CiviCRM LLC (c) 2004-2013 + * @copyright CiviCRM LLC (c) 2004-2014 * @version $Id: MembershipContact.php 30171 2010-10-14 09:11:27Z mover $ */ @@ -187,20 +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); - - if (!empty($params['contact_id']) && !is_array($params['contact_id'])) { - $membershipValues = _civicrm_api3_membership_get_customv2behaviour($params, $membershipTypeId, $activeOnly ); + if ($activeOnly && empty($params['status_id'])) { + $params['status_id'] = array('IN' => CRM_Member_BAO_MembershipStatus::getMembershipStatusCurrent()); } - 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, 'Membership'); - $options = _civicrm_api3_get_options_from_params($params, TRUE,'membership','get'); $return = $options['return']; if(empty($membershipValues) || (!empty($return) @@ -223,6 +224,9 @@ function civicrm_api3_membership_get($params) { * as stable as possible * * @param array $params parameters passed into get function + * @param $membershipTypeId + * @param $activeOnly + * * @return array result for calling function */ function _civicrm_api3_membership_get_customv2behaviour(&$params, $membershipTypeId, $activeOnly) { @@ -239,9 +243,13 @@ function _civicrm_api3_membership_get_customv2behaviour(&$params, $membershipTyp /** * non-standard behaviour inherited from v2 -* @param array $params parameters passed into get function -* @return array result for calling function -*/ + * + * @param array $params parameters passed into get function + * @param $membershipValues + * @param $contactID + * + * @return array result for calling function + */ function _civicrm_api3_membership_relationsship_get_customv2behaviour(&$params, $membershipValues, $contactID) { $relationships = array(); foreach ($membershipValues as $membershipId => $values) {