/*
+--------------------------------------------------------------------+
- | 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. |
| |
* @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 $
*/
$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)
* 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) {
/**
* 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) {