You are here

function og_subgroups_views_handler_sort_hierarchy::query in Subgroups for Organic groups 6

File

modules/og_subgroups_views/includes/og_subgroups_views_handler_sort_hierarchy.inc, line 9

Class

og_subgroups_views_handler_sort_hierarchy

Code

function query() {
  og_subgroups_include('tree');
  $tree = og_subgroups_get_tree();
  $groups = og_subgroups_flatten_tree($tree);
  if (!empty($groups)) {
    $sort_order = implode(',', array_keys($groups));
    $base_table = $this->query->base_table;
    $base_field = $this->query->base_field;
    $formula = "FIELD({$base_table}.{$base_field}, {$sort_order})";
    $this->query
      ->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field);
  }
}