function tablesort_get_order

Same name in other branches
  1. 8.9.x core/includes/tablesort.inc \tablesort_get_order()

Determines the current sort criterion.

Parameters

$headers: An array of column headers in the format described in theme_table().

Return value

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.
4 calls to tablesort_get_order()
EntityFieldQuery::tableSort in includes/entity.inc
Enables sortable tables for this query.
TableSort::order in includes/tablesort.inc
Determine the current sort criterion.
tablesort_get_sort in includes/tablesort.inc
Determines the current sort direction.
tablesort_init in includes/tablesort.inc
Initialize the table sort context.

File

includes/tablesort.inc, line 204

Code

function tablesort_get_order($headers) {
    $order = isset($_GET['order']) ? $_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']) && ($header['sort'] == 'asc' || $header['sort'] == 'desc')) {
                $default = $header;
            }
        }
    }
    if (!isset($default)) {
        $default = reset($headers);
        if (!is_array($default)) {
            $default = array(
                'data' => $default,
            );
        }
    }
    $default += array(
        'data' => NULL,
        'field' => NULL,
    );
    return array(
        'name' => $default['data'],
        'sql' => $default['field'],
    );
}

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