Merge pull request #5501 from mallezie/addHidden-convertLock-16178
[civicrm-core.git] / api / v3 / utils.php
index 802a93174b6e3cbb2c5fdc9deec1ca328e05e25e..9cc7f0e2e4414d82ec3878855dd278b40830a524 100644 (file)
@@ -2185,16 +2185,16 @@ function _civicrm_api3_api_match_pseudoconstant_value(&$value, $options, $fieldN
  * @return bool|string
  *   fieldName or FALSE if the field does not exist
  */
-function _civicrm_api3_api_resolve_alias($entity, $fieldName) {
+function _civicrm_api3_api_resolve_alias($entity, $fieldName, $action = 'create') {
   if (strpos($fieldName, 'custom_') === 0 && is_numeric($fieldName[7])) {
     return $fieldName;
   }
-  if ($fieldName == "{$entity}_id") {
+  if ($fieldName == _civicrm_api_get_entity_name_from_camel($entity) . '_id') {
     return 'id';
   }
   $result = civicrm_api($entity, 'getfields', array(
     'version' => 3,
-    'action' => 'create',
+    'action' => $action,
   ));
   $meta = $result['values'];
   if (!isset($meta[$fieldName]['name']) && isset($meta[$fieldName . '_id'])) {
@@ -2211,6 +2211,10 @@ function _civicrm_api3_api_resolve_alias($entity, $fieldName) {
       return $info['name'];
     }
   }
+  // Create didn't work, try with get
+  if ($action == 'create') {
+    return _civicrm_api3_api_resolve_alias($entity, $fieldName, 'get');
+  }
   return FALSE;
 }