X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FCustomField.php;h=9fbc50ed7f2defc89b5f5cc1861d7521bedf63f1;hb=b319421df58cfbeb99ca3016a8315b56690458ba;hp=149075df6de50b9bdc24e3c22e88e0006e01b6ca;hpb=91a8f8b6ef4b0273a0c7cd70c2d34b1f1ecb9bf9;p=civicrm-core.git diff --git a/api/v3/CustomField.php b/api/v3/CustomField.php index 149075df6d..9fbc50ed7f 100644 --- a/api/v3/CustomField.php +++ b/api/v3/CustomField.php @@ -2,9 +2,9 @@ /* +--------------------------------------------------------------------+ - | CiviCRM version 4.3 | + | CiviCRM version 4.5 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2013 | + | Copyright CiviCRM LLC (c) 2004-2014 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -32,7 +32,7 @@ * @package CiviCRM_APIv3 * @subpackage API_CustomField * - * @copyright CiviCRM LLC (c) 2004-2013 + * @copyright CiviCRM LLC (c) 2004-2014 * @version $Id: CustomField.php 30879 2010-11-22 15:45:55Z shot $ */ @@ -65,16 +65,6 @@ */ function civicrm_api3_custom_field_create($params) { - if (!(CRM_Utils_Array::value('option_type', $params))) { - if (CRM_Utils_Array::value('id', $params)) { - $params['option_type'] = 2; - } - else { - $params['option_type'] = 1; - } - } - - // Array created for passing options in params if (isset($params['option_values']) && is_array($params['option_values'])) { foreach ($params['option_values'] as $key => $value) { @@ -84,12 +74,20 @@ function civicrm_api3_custom_field_create($params) { $params['option_weight'][$key] = $value['weight']; } } + $values = array(); $customField = CRM_Core_BAO_CustomField::create($params); - civicrm_api('custom_field', 'getfields', array('version' => 3, 'cache_clear' => 1)); _civicrm_api3_object_to_array_unique_fields($customField, $values[$customField->id]); + _civicrm_api3_custom_field_flush_static_caches(); return civicrm_api3_create_success($values, $params, 'custom_field', $customField); } +/** + * Flush static caches in functions that might have stored available custom fields + */ +function _civicrm_api3_custom_field_flush_static_caches(){ + civicrm_api('custom_field', 'getfields', array('version' => 3, 'cache_clear' => 1)); + CRM_Core_BAO_UFField::getAvailableFieldsFlat(TRUE); +} /** * Adjust Metadata for Create action * @@ -98,6 +96,14 @@ function civicrm_api3_custom_field_create($params) { function _civicrm_api3_custom_field_create_spec(&$params) { $params['label']['api.required'] = 1; $params['custom_group_id']['api.required'] = 1; + $params['is_active']['api.default'] = 1; + $params['option_type'] = array( + 'title' => 'This (boolean) field tells the BAO to create an option group for the field if the field type is appropriate', + 'api.default' => 1, + 'type' => CRM_Utils_Type::T_BOOLEAN, + ); + $params['data_type']['api.default'] = 'String'; + $params['is_active']['api.default'] = 1; } /**