X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fapi.php;h=8b55d97347e26335c6a7e5a35d93db3ac4556a8d;hb=867047cd42eb9ea5f73ddf4abc0b80a4f558c127;hp=5b0a76c1d6122fea47d5e9dd23173210fca36db2;hpb=9d32e6f7cb94f1125e2dfc492b64701c929a8ece;p=civicrm-core.git diff --git a/api/api.php b/api/api.php index 5b0a76c1d6..8b55d97347 100644 --- a/api/api.php +++ b/api/api.php @@ -1,14 +1,9 @@ $apiRequest['action']); $entity = $apiRequest['entity']; - if ($entity == 'profile' && array_key_exists('profile_id', $apiRequest['params'])) { + if ($entity == 'Profile' && array_key_exists('profile_id', $apiRequest['params'])) { $getFieldsParams['profile_id'] = $apiRequest['params']['profile_id']; } $fields = civicrm_api3($entity, 'getfields', $getFieldsParams); @@ -107,16 +105,20 @@ function civicrm_error($result) { } /** - * @param $entity + * Get camel case version of entity name. * - * @return string + * @param string|null $entity + * + * @return string|null */ function _civicrm_api_get_camel_name($entity) { - return CRM_Utils_String::convertStringToCamel($entity); + return is_string($entity) ? CRM_Utils_String::convertStringToCamel($entity) : NULL; } /** - * Swap out any $values vars - ie. the value after $value is swapped for the parent $result + * Swap out any $values vars. + * + * Ie. the value after $value is swapped for the parent $result * 'activity_type_id' => '$value.testfield', * 'tag_id' => '$value.api.tag.create.id', * 'tag1_id' => '$value.api.entity.create.0.id' @@ -156,23 +158,26 @@ function _civicrm_api_replace_variables(&$params, &$parentResult, $separator = ' $count = count($stringParts); } } + // CRM-16168 If we have failed to swap it out we should unset it rather than leave the placeholder. + if (substr($params[$field], 0, 6) == '$value') { + $params[$field] = NULL; + } } } } /** - * Convert possibly camel name to underscore separated entity name + * Convert possibly camel name to underscore separated entity name. * * @param string $entity * Entity name in various formats e.g. Contribution, contribution, * OptionValue, option_value, UFJoin, uf_join. + * * @return string * Entity name in underscore separated format. - * - * @fixme Why isn't this called first thing in civicrm_api wrapper? */ function _civicrm_api_get_entity_name_from_camel($entity) { - if ($entity == strtolower($entity)) { + if (!$entity || $entity === strtolower($entity)) { return $entity; } else { @@ -186,12 +191,14 @@ function _civicrm_api_get_entity_name_from_camel($entity) { } /** - * Having a DAO object find the entity name + * Having a DAO object find the entity name. + * * @param object $bao * DAO being passed in. + * * @return string */ function _civicrm_api_get_entity_name_from_dao($bao) { $daoName = str_replace("BAO", "DAO", get_class($bao)); - return _civicrm_api_get_entity_name_from_camel(CRM_Core_DAO_AllCoreTables::getBriefName($daoName)); + return CRM_Core_DAO_AllCoreTables::getBriefName($daoName); }