You are here

function views_handler_sort_term_edge_hierarchy::query in Taxonomy Edge 7

Same name and namespace in other branches
  1. 8 views_taxonomy_edge/handlers/views_handler_sort_term_edge_hierarchy.inc \views_handler_sort_term_edge_hierarchy::query()
  2. 6 views_taxonomy_edge/handlers/views_handler_sort_term_edge_hierarchy.inc \views_handler_sort_term_edge_hierarchy::query()

Overridden to add the ORDER BY clause and join required tables.

Overrides views_handler_sort::query

File

views_taxonomy_edge/handlers/views_handler_sort_term_edge_hierarchy.inc, line 14
Views sort handler to sort by taxonomy terms' hierarchy order.

Class

views_handler_sort_term_edge_hierarchy
Views sort handler to sort by taxonomy terms' hierarchy order.

Code

function query() {
  $edge = $this->query
    ->ensure_table('taxonomy_term_edge');
  if (taxonomy_edge_is_order_invalid()) {
    $sort_path = _taxonomy_edge_generate_term_path_query("{$edge}.tid");
    $alias = $this->query
      ->add_field(NULL, $sort_path, 'sort_path');
    $this->query
      ->add_orderby(NULL, NULL, $this->options['order'], 'sort_path');
  }
  else {
    $sort_path = "(SELECT o.oid FROM taxonomy_term_edge_order o WHERE o.eid = {$edge}.eid)";
    $alias = $this->query
      ->add_field(NULL, $sort_path, 'oid');
    $this->query
      ->add_orderby(NULL, NULL, $this->options['order'], 'oid');
  }
}