1.20.x views_handler_sort_date.inc views_handler_sort_date::query()

Called to add the sort to a query.

Overrides views_handler_sort::query

File

modules/views/handlers/views_handler_sort_date.inc, line 47
Definition of views_handler_sort_date.

Class

views_handler_sort_date
Basic sort handler for dates.

Code

function query() {
  $this->ensure_my_table();
  $db_connection = $this->query->database_connection();
  $field = $db_connection->dateFieldSql("$this->table_alias.$this->real_field");
  switch ($this->options['granularity']) {
    case 'second':
    default:
      $this->query->add_orderby($this->table_alias, $this->real_field, $this->options['order']);
      return;
    case 'minute':
      $formula = $db_connection->dateFormatSql($field, 'YmdHi');
      break;
    case 'hour':
      $formula = $db_connection->dateFormatSql($field, 'YmdH');
      break;
    case 'day':
      $formula = $db_connection->dateFormatSql($field, 'Ymd');
      break;
    case 'month':
      $formula = $db_connection->dateFormatSql($field, 'Ym');
      break;
    case 'year':
      $formula = $db_connection->dateFormatSql($field, 'Y');
      break;
  }

  // Add the field.
  $this->query->add_orderby(NULL, $formula, $this->options['order'], $this->table_alias . '_' . $this->field . '_' . $this->options['granularity']);
}