X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FMembershipType.php;h=9317407206a473cd715df30260959a9f7aa8a4ac;hb=9559d77f3f620f02577d466c2698828fc558bf2b;hp=ea36118b2e99b0f7f3b70361839579a039a494c0;hpb=bfe714ea5b2826b5b38c929ebf341b3d1d9aa29a;p=civicrm-core.git diff --git a/api/v3/MembershipType.php b/api/v3/MembershipType.php index ea36118b2e..9317407206 100644 --- a/api/v3/MembershipType.php +++ b/api/v3/MembershipType.php @@ -41,6 +41,12 @@ * API result array. */ function civicrm_api3_membership_type_create($params) { + // Workaround for fields using nonstandard serialization + foreach (array('relationship_type_id', 'relationship_direction') as $field) { + if (isset($params[$field]) && is_array($params[$field])) { + $params[$field] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $params[$field]); + } + } return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'Membership_type'); } @@ -74,7 +80,18 @@ function _civicrm_api3_membership_type_create_spec(&$params) { * API result array. */ function civicrm_api3_membership_type_get($params) { - return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); + $results = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); + if (!empty($results['values']) && is_array($results['values'])) { + foreach ($results['values'] as &$item) { + // Workaround for fields using nonstandard serialization + foreach (array('relationship_type_id', 'relationship_direction') as $field) { + if (isset($item[$field]) && !is_array($item[$field])) { + $item[$field] = (array) $item[$field]; + } + } + } + } + return $results; } /**