You are here

function location_handler_sort_location_country::query in Location 6.3

Same name and namespace in other branches
  1. 7.3 handlers/location_handler_sort_location_country.inc \location_handler_sort_location_country::query()

File

handlers/location_handler_sort_location_country.inc, line 29

Class

location_handler_sort_location_country

Code

function query() {

  //drupal_set_message('location_handler_sort_location_country inside query');

  //Make sure the table_alias work.  This sets up some of the list pointers.
  $this
    ->ensure_my_table();

  //This is needed otherwise the the add_relationship will not work.
  $this->query
    ->ensure_path($this->table_alias);

  //drupal_set_message('Options:' . print_r($this->options,1));
  if ($this->options['country_sort'] == 'name') {

    //drupal_set_message('Select sort by name');
    $join = new views_join();
    $join->definition = array(
      'table' => 'location_country',
      'field' => 'code',
      'left_table' => $this->table_alias,
      'left_field' => 'country',
    );
    if (!empty($this->options['required'])) {
      $join->definition['type'] = 'INNER';
    }
    $join
      ->construct();
    $this->query
      ->add_relationship('country_name', $join, $this->definition['base'], NULL);
    $this->query
      ->add_orderby('country_name', 'name', $this->options['order'], 'country_sort');
  }
  elseif ($this->options['country_sort'] == 'code') {

    //drupal_set_message('Select sort by code');

    //node_users__location.country
    $this->query
      ->add_orderby($this->table_alias, 'country', $this->options['order'], 'country_code_sort');
  }

  //Create the join definition with the location_county table that has the mapping from

  //country code to country name
}