You are here

protected function views_plugin_display_table_rowspan::get_colspan_rows in Views Table Rowspan 7

Convert grouping sets into table rows.

Parameters

array $sets: Views grouping sets.

Return value

array An array of rows in table.

1 call to views_plugin_display_table_rowspan::get_colspan_rows()
views_plugin_display_table_rowspan::render_grouping_sets in views/plugins/views_plugin_display_table_rowspan.inc
Overwrite method render_grouping_sets().

File

views/plugins/views_plugin_display_table_rowspan.inc, line 72
Views handler display Table Rowspan.

Class

views_plugin_display_table_rowspan
Style plugin to merge duplicate row in table.

Code

protected function get_colspan_rows($sets, $level = 0, $parent = NULL) {
  $rows = array();
  $leaf_rows = array();
  $group_field_name = $this->options['grouping'][$level]['field'];
  foreach ($sets as $set) {
    $new_level = $level + 1;
    $leaf_rows = $this
      ->_get_deepest_row($set);
    $leaf_rows_index = array_keys($leaf_rows);
    $first_index = $leaf_rows_index[0];
    $this->view->rowspan[$group_field_name][$first_index] = $leaf_rows_index;
    $row = reset($set['rows']);
    if (is_array($row) && isset($row['group'])) {
      $rows += $this
        ->get_colspan_rows($set['rows'], $new_level, $set);
    }
    else {
      foreach ($set['rows'] as $index => $set_row) {
        $rows[$index] = $set_row;
      }
    }
  }
  return $rows;
}