CRM-13234 api/v3/CustomField more cache clearing on custom field create
authorEileen <eileen@fuzion.co.nz>
Fri, 13 Sep 2013 06:22:05 +0000 (18:22 +1200)
committerEileen <eileen@fuzion.co.nz>
Fri, 13 Sep 2013 06:22:05 +0000 (18:22 +1200)
api/v3/CustomField.php

index dad64832a9d482e1c365c14e0da8e92014c14352..6a41b74be23d1db2208a886d6d95a12fec7a5b21 100644 (file)
@@ -74,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
  *