diff --git a/theme.inc b/theme.inc index 6216549..47ec953 100644 --- a/theme.inc +++ b/theme.inc @@ -181,11 +181,14 @@ function template_preprocess_views_calc_table(&$vars) { $vars['fields'][$field] .= ' ' . drupal_clean_css_identifier($options['info'][$field]['align']); } } + // Fields must be rendered in order as of Views 2.3, so we will pre-render + // everything. + $renders = $handler->render_fields($result); // Render each field into its appropriate column. Preserve rows. foreach ($result as $num => $row) { foreach ($columns as $field => $column) { - $field_output = $fields[$field]->theme($row); + $field_output = $renders[$num][$field]; if (!empty($fields[$field]) && empty($fields[$field]->options['exclude'])) { // Don't bother with separators and stuff if the field does not show up. @@ -308,7 +311,7 @@ function views_calc_table_total(&$vars, $key, $totals) { // and in ->options for other fields that are based on the numeric field handler. if (isset($fields[$field]->field_info)) { $separator = !empty($fields[$field]->options['settings']['thousands_separator']) ? $fields[$field]->options['settings']['thousands_separator'] : $options['separator']; - $$decimal = !empty($fields[$field]->options['settings']['decimal_separator']) ? $fields[$field]->options['settings']['decimal_separator'] : $options['decimal']; + $decimal = !empty($fields[$field]->options['settings']['decimal_separator']) ? $fields[$field]->options['settings']['decimal_separator'] : $options['decimal']; $precision = !empty($fields[$field]->options['settings']['scale']) ? $fields[$field]->options['settings']['scale'] : $options['precision']; } else {