function TableSort::getSort

Same name in other branches
  1. 7.x includes/tablesort.inc \TableSort::getSort()
  2. 9 core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getSort()
  3. 8.9.x core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getSort()
  4. 10 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").

2 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.

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.