Index: branches/5.3.x/core/kernel/kbase.php =================================================================== diff -u -N -r15578 -r15584 --- branches/5.3.x/core/kernel/kbase.php (.../kbase.php) (revision 15578) +++ branches/5.3.x/core/kernel/kbase.php (.../kbase.php) (revision 15584) @@ -1,6 +1,6 @@ getCalculatedFields($aggregated); - if ($fields) { + if ( $fields ) { $sql = Array (); + // inside calculated field "%2$s" is current language $fields = str_replace('%2$s', $this->Application->GetVar('m_lang'), $fields); + // can't use "%3$s" as usual, because it's already populated in kDBBase::replaceModePrefix() across whole query + $fields = str_replace('%4$s', $this->Application->GetDefaultLanguageId(), $fields); + foreach ($fields as $field_name => $field_expression) { - $sql[] = '('.$field_expression.') AS `'.$field_name.'`'; + $sql[] = '(' . $field_expression . ') AS `' . $field_name . '`'; } - $sql = implode(',',$sql); + $sql = implode(',', $sql); - return $this->Application->ReplaceLanguageTags( str_replace('%2$s', ','.$sql, $query) ); + // inside sql "%2$s" is placeholder for calculated fields + return $this->Application->ReplaceLanguageTags(str_replace('%2$s', ',' . $sql, $query)); } return str_replace('%2$s', '', $query);