You are here

public function ViewsDateFormatSqlField::clickSort in Views Date Format SQL 8.3

Called to determine what to tell the clicksorter.

Overrides EntityField::clickSort

File

src/Plugin/views/field/ViewsDateFormatSqlField.php, line 204

Class

ViewsDateFormatSqlField
A field that displays entity timestamp field data. Supports grouping.

Namespace

Drupal\views_date_format_sql\Plugin\views\field

Code

public function clickSort($order) {
  if (empty($this->options['format_date_sql'])) {
    return parent::clickSort($order);
  }

  // No column selected, can't continue.
  if (empty($this->options['click_sort_column'])) {
    return NULL;
  }
  $this
    ->ensureMyTable();
  $field_storage_definition = $this
    ->getFieldStorageDefinition();
  $column = $this
    ->getTableMapping()
    ->getFieldColumnName($field_storage_definition, $this->options['click_sort_column']);
  if (!isset($this->aliases[$column])) {

    // Column is not in query; add a sort on it (without adding the column).
    $this->aliases[$column] = $this->tableAlias . '.' . $column;
  }
  $this->query
    ->addOrderBy(NULL, NULL, $order, $this->aliases[$column]);

  // Added to group ungrouped "timestamp" fields. Can occurs when
  // $this->addAdditionalFields is called with NULL $fields param.
  if ($this->view->display_handler
    ->useGroupBy() && array_search($this->aliases[$column], $this->query->groupby, TRUE) === FALSE) {
    $this->query
      ->addGroupBy($this->aliases[$column]);
  }
}