<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.6 |
+ | CiviCRM version 4.7 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
* 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');
}
$params['name']['api.required'] = 1;
$params['duration_unit']['api.required'] = 1;
$params['duration_interval']['api.required'] = 1;
+ $params['is_active']['api.default'] = 1;
}
/**
* 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;
+}
+
+/**
+ * Adjust input for getlist action.
+ *
+ * We want to only return active membership types for getlist. It's a bit
+ * arguable whether this should be applied at the 'get' level but, since it's hard
+ * to unset we'll just do it here.
+ *
+ * The usage of getlist is entity-reference fields & the like
+ * so using only active ones makes sense.
+ *
+ * @param array $request
+ * Array of parameters determined by getfields.
+ */
+function _civicrm_api3_membership_type_getlist_params(&$request) {
+ if (!isset($request['params']['is_active'])) {
+ $request['params']['is_active'] = 1;
+ }
}
/**