You are here

public static function TableSort::getSort in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getSort()

Determines the current sort direction.

Parameters

array $headers: An array of column headers in the format described in '#type' => 'table'.

\Symfony\Component\HttpFoundation\Request|null $request: A current request.

Return value

string The current sort direction ("asc" or "desc").

3 calls to TableSort::getSort()
QueryBase::tableSort in core/lib/Drupal/Core/Entity/Query/QueryBase.php
Enables sortable tables for this query.
TableSort::getContextFromRequest in core/lib/Drupal/Core/Utility/TableSort.php
Initializes the table sort context.
tablesort_get_sort in core/includes/tablesort.inc
Determines the current sort direction.

File

core/lib/Drupal/Core/Utility/TableSort.php, line 145

Class

TableSort
Provides a class for table sorting processing and rendering.

Namespace

Drupal\Core\Utility

Code

public static function getSort(array $headers, Request $request) {
  $query = $request->query;
  if ($query
    ->has('sort')) {
    return strtolower($query
      ->get('sort')) == self::DESC ? self::DESC : self::ASC;
  }

  // The user has not specified a sort. Use the default for the currently
  // sorted header if specified; otherwise use "asc".
  // Find out which header is currently being sorted.
  $order = static::getOrder($headers, $request);
  foreach ($headers as $header) {
    if (is_array($header) && isset($header['data']) && $header['data'] == $order['name']) {
      if (isset($header['sort'])) {
        return $header['sort'];
      }
      if (isset($header['initial_click_sort'])) {
        return $header['initial_click_sort'];
      }
    }
  }
  return self::ASC;
}