X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FMembership.php;h=29b4810f85089113f6cacf670a5006a06a6e3f7e;hb=85bb0909cffd925f4cd5c0022a68a1ff74d3ad8e;hp=3dc34047307a69991145ae57fd4d701482e39b83;hpb=dcd44479f54d44d876ff8492702285bde7368e67;p=civicrm-core.git diff --git a/api/v3/Membership.php b/api/v3/Membership.php index 3dc3404730..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 $ */ @@ -112,11 +112,11 @@ function civicrm_api3_membership_create($params) { $action = CRM_Core_Action::ADD; // we need user id during add mode $ids = array (); - if(CRM_Utils_Array::value('contact_id', $params)) { + if (!empty($params['contact_id'])) { $ids['userId'] = $params['contact_id']; } //for edit membership id should be present - if (CRM_Utils_Array::value('id', $params)) { + if (!empty($params['id'])) { $ids['membership'] = $params['id']; $action = CRM_Core_Action::UPDATE; } @@ -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, 'Membership'); - $options = _civicrm_api3_get_options_from_params($params, TRUE,'membership','get'); $return = $options['return']; if(empty($membershipValues) || (!empty($return) @@ -235,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) { @@ -251,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) { @@ -262,7 +258,7 @@ function _civicrm_api3_membership_relationsship_get_customv2behaviour(&$params, $membershipValues[$membershipId]['membership_name'] = $membershipType['name']; - if (CRM_Utils_Array::value('relationship_type_id', $membershipType)) { + if (!empty($membershipType['relationship_type_id'])) { $relationships[$membershipType['relationship_type_id']] = $membershipId; }