function TableSort::getOrder
Same name in other branches
- 9 core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getOrder()
- 8.9.x core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getOrder()
- 11.x core/lib/Drupal/Core/Utility/TableSort.php \Drupal\Core\Utility\TableSort::getOrder()
Determines the current sort criterion.
Parameters
array $headers: An array of column headers in the format described in '#type' => 'table'.
\Symfony\Component\HttpFoundation\Request $request: A current request.
Return value
array An associative array describing the criterion, containing the keys:
- "name": The localized title of the table column.
- "sql": The name of the database field to sort on.
3 calls to TableSort::getOrder()
- QueryBase::tableSort in core/
lib/ Drupal/ Core/ Entity/ Query/ QueryBase.php - TableSort::getContextFromRequest in core/
lib/ Drupal/ Core/ Utility/ TableSort.php - Initializes the table sort context.
- TableSort::getSort in core/
lib/ Drupal/ Core/ Utility/ TableSort.php - Determines the current sort direction.
File
-
core/
lib/ Drupal/ Core/ Utility/ TableSort.php, line 108
Class
- TableSort
- Provides a class for table sorting processing and rendering.
Namespace
Drupal\Core\UtilityCode
public static function getOrder(array $headers, Request $request) {
$order = $request->query
->get('order', '');
foreach ($headers as $header) {
if (is_array($header)) {
if (isset($header['data']) && $order == $header['data']) {
$default = $header;
break;
}
if (empty($default) && isset($header['sort']) && in_array($header['sort'], [
self::ASC,
self::DESC,
])) {
$default = $header;
}
}
}
if (!isset($default)) {
$default = reset($headers);
if (!is_array($default)) {
$default = [
'data' => $default,
];
}
}
$default += [
'data' => NULL,
'field' => NULL,
];
return [
'name' => $default['data'],
'sql' => $default['field'],
];
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.