public function QueryBase::tableSort in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Entity/Query/QueryBase.php \Drupal\Core\Entity\Query\QueryBase::tableSort()
- 9 core/lib/Drupal/Core/Entity/Query/QueryBase.php \Drupal\Core\Entity\Query\QueryBase::tableSort()
Enables sortable tables for this query.
Parameters
array $headers: An array of headers of the same structure as described in template_preprocess_table(). Use a 'specifier' in place of a 'field' to specify what to sort on. This can be an entity or a field as described in condition().
Return value
$this
Overrides QueryInterface::tableSort
File
- core/
lib/ Drupal/ Core/ Entity/ Query/ QueryBase.php, line 321
Class
- QueryBase
- The base entity query class.
Namespace
Drupal\Core\Entity\QueryCode
public function tableSort(&$headers) {
// If 'field' is not initialized, the header columns aren't clickable.
foreach ($headers as $key => $header) {
if (is_array($header) && isset($header['specifier'])) {
$headers[$key]['field'] = '';
}
}
$order = TableSort::getOrder($headers, \Drupal::request());
$direction = TableSort::getSort($headers, \Drupal::request());
foreach ($headers as $header) {
if (is_array($header) && $header['data'] == $order['name']) {
$this
->sort($header['specifier'], $direction, $header['langcode'] ?? NULL);
}
}
return $this;
}