diff --git a/theme.inc b/theme.inc index 57d61ed..27ee03b 100644 --- a/theme.inc +++ b/theme.inc @@ -40,7 +40,7 @@ function theme_views_calc_ui_table($variables) { $row = array(); $row[] = drupal_render($form['info'][$id]['name']); $row[] = drupal_render($form['info'][$id]['align']); - $row[] = drupal_render($form['info'][$id]['has_calc']) . drupal_render($form['info'][$id]['calc']); + $row[] = drupal_render($form['info'][$id]['has_calc']) . drupal_render($form['info'][$id]['calc']) . drupal_render($form['info'][$id]['prefix']) . drupal_render($form['info'][$id]['suffix']); $row[] = drupal_render($form['columns'][$id]); $row[] = drupal_render($form['info'][$id]['separator']); if (!empty($form['info'][$id]['sortable'])) { @@ -300,11 +300,13 @@ function views_calc_table_total(&$vars, $key, $totals) { // Process only calculated, non-excluded fields. if (in_array($field, $calc_fields)) { + $prefix = !empty($options['info'][$field]['prefix']) ? check_plain($options['info'][$field]['prefix']) : ''; + $suffix = !empty($options['info'][$field]['suffix']) ? check_plain($options['info'][$field]['suffix']) : ''; if ($calc == 'COUNT') { // COUNT is always a numeric value, no matter what kind of field it is. - $vars[$key][$calc][$column] = number_format($row->$field_alias, 0, 0, ','); + $vars[$key][$calc][$column] = $prefix . number_format($row->$field_alias, 0, 0, ',') . $suffix; } else { @@ -330,9 +332,11 @@ function views_calc_table_total(&$vars, $key, $totals) { // Make sure this is a number before formatting it. if (isset($row->$field_alias) && is_numeric($row->$field_alias)) { $vars[$key][$calc][$column] = number_format($row->$field_alias, $precision, $decimal, $separator); + $vars[$key][$calc][$column] = $prefix . number_format($row->$field_alias, $precision, $decimal, $separator) . $suffix; } else { $vars[$key][$calc][$column] = number_format(0, $precision, $decimal, $separator); + $vars[$key][$calc][$column] = $prefix . number_format(0, $precision, $decimal, $separator) . $suffix; } } } diff --git a/views_calc_table.inc b/views_calc_table.inc index 7e17548..eb3d47b 100644 --- a/views_calc_table.inc +++ b/views_calc_table.inc @@ -64,6 +64,24 @@ class views_calc_table extends views_plugin_style_table { 'visible' => array(':checkbox[name="style_options[info][' . $field . '][has_calc]"]' => array('checked' => TRUE),), // condition ), ); + $form['info'][$field]['prefix'] = array( + '#type' => 'textfield', + '#title' => t('Prefix'), + '#default_value' => isset($this->options['info'][$field]['prefix']) ? $this->options['info'][$field]['prefix'] : '', + '#size' => 10, + '#states' => array( + 'visible' => array(':checkbox[name="style_options[info][' . $field . '][has_calc]"]' => array('checked' => TRUE),), // condition + ), + ); + $form['info'][$field]['suffix'] = array( + '#type' => 'textfield', + '#title' => t('Suffix'), + '#default_value' => isset($this->options['info'][$field]['suffix']) ? $this->options['info'][$field]['suffix'] : '', + '#size' => 10, + '#states' => array( + 'visible' => array(':checkbox[name="style_options[info][' . $field . '][has_calc]"]' => array('checked' => TRUE),), // condition + ), + ); } $form['precision'] = array( @@ -277,7 +295,7 @@ class views_calc_table extends views_plugin_style_table { $calc_fields = array(); foreach ($columns as $field => $column) { if ($field == $column && empty($fields[$field]->options['exclude'])) { - if ($options['info'][$field]['has_calc']) { + if (isset($options['info'][$field]['has_calc']) && $options['info'][$field]['has_calc']) { foreach ($calcs as $calc) { if (isset($this->options['info'][$field]['calc'][$calc])) { $calc_fields[$calc][] = $field;