You are here

protected function views_aggregator_plugin_style_table::execute_aggregation_functions in Views Aggregator Plus 7

Executes the supplied aggregation functions with the groups as arguments.

Parameters

array $groups: Groups of aggregated rows.

array $functions: Aggregation functions to use.

Return value

array Function return values.

1 call to views_aggregator_plugin_style_table::execute_aggregation_functions()
views_aggregator_plugin_style_table::pre_render in views/views_aggregator_plugin_style_table.inc
Overrides pre_render().

File

views/views_aggregator_plugin_style_table.inc, line 419
views_aggregator_plugin_style_table.inc

Class

views_aggregator_plugin_style_table
Style plugin to render each item as a row in a table.

Code

protected function execute_aggregation_functions($groups, $functions) {
  $field_handlers = $this->view->field;
  $values = array();
  foreach ($functions as $field_name => $field_functions) {
    if (empty($field_handlers[$field_name])) {
      continue;
    }
    $options = $this->options['info'][$field_name];
    foreach ($field_functions as $function) {
      $group_par = !isset($options['aggr_par']) || $options['aggr_par'] == '' ? NULL : $options['aggr_par'];
      $column_par = !isset($options['aggr_par_column']) || $options['aggr_par_column'] == '' ? NULL : $options['aggr_par_column'];
      $aggr_values = $function($groups, $field_handlers[$field_name], $group_par, $column_par);

      // $aggr_values is indexed by group value and/or 'column'.
      // 'column' is the last evaluated value for the field.
      if (isset($aggr_values['column'])) {
        $field_handlers[$field_name]->last_render = $aggr_values['column'];
      }
      foreach ($aggr_values as $group => $value) {

        // 'column' function is last so may override earlier value.
        if (!isset($values[$field_name][$group]) || $group == 'column') {
          $values[$field_name][$group] = $value;
        }
      }
    }
  }
  return $values;
}