*/
function _civicrm_api_replace_variables(&$params, &$parentResult, $separator = '.') {
foreach ($params as $field => &$value) {
+ if (substr($field, 0, 4) == 'api.') {
+ // CRM-21246 - Leave nested calls alone.
+ continue;
+ }
if (is_string($value) && substr($value, 0, 6) == '$value') {
$value = _civicrm_api_replace_variable($value, $parentResult, $separator);
}
elseif (is_array($value) && is_string(reset($value)) && substr(reset($value), 0, 6) == '$value') {
$key = key($value);
$value[$key] = _civicrm_api_replace_variable($value[$key], $parentResult, $separator);
+ // A null value with an operator will cause an error, so remove it.
+ if ($value[$key] === NULL) {
+ $value = '';
+ }
}
}
}