* @static
*/
public static function get($daoName, $fieldName, $params = array()) {
+ $flip = !empty($params['flip']);
+
+ // Custom fields are not in the schema
+ if (strpos($fieldName, 'custom') === 0) {
+ $dao = new CRM_Core_DAO_CustomField;
+ $dao->id = (int) substr($fieldName, 7);
+ $dao->find(TRUE);
+ $customField = (array) $dao;
+ $dao->free();
+ $output = array();
+ CRM_Core_BAO_CustomField::buildOption($customField, $output);
+ return $flip ? array_flip($output) : $output;
+ }
+
+ // Core field: load schema
$dao = new $daoName;
$fields = $dao->fields();
$fieldKeys = $dao->fieldKeys();
return FALSE;
}
$fieldSpec = $fields[$fieldKey];
- $flip = !empty($params['flip']);
// If the field is an enum, explode the enum definition and return the array.
if (isset($fieldSpec['enumValues'])) {
switch ($action) {
case 'getfields':
$values = _civicrm_api_get_fields($entity, false, $apiRequest['params']);
- $results[$entity][$action] = civicrm_api3_create_success($values,
- $apiRequest['params'], $entity, 'getfields'
- );
- return $results[$entity][$action];
-
- case 'getfields':
- return civicrm_api3_create_success(_civicrm_api_get_fields($apiRequest['entity']));
+ return civicrm_api3_create_success($values, $apiRequest['params'], $entity, 'getfields');
case 'create':
case 'update':
case 'replace':
// inconsistency
$metadata['id']['api.aliases'] = array($lcase_entity . '_id');
}
-
break;
case 'delete':