public function TableSortExtender::orderByHeader

Order the query based on a header array.

Parameters

array $header: Table header array.

Return value

SelectQueryInterface The called object.

See also

theme_table()

File

drupal/core/lib/Drupal/Core/Database/Query/TableSortExtender.php, line 42
Definition of Drupal\Core\Database\Query\TableSortExtender.

Class

TableSortExtender
Query extender class for tablesort queries.

Namespace

Drupal\Core\Database\Query

Code

public function orderByHeader(array $header) {
  $this->header = $header;
  $ts = $this
    ->init();
  if (!empty($ts['sql'])) {

    // Based on code from db_escape_table(), but this can also contain a dot.
    $field = preg_replace('/[^A-Za-z0-9_.]+/', '', $ts['sql']);

    // Sort order can only be ASC or DESC.
    $sort = drupal_strtoupper($ts['sort']);
    $sort = in_array($sort, array(
      'ASC',
      'DESC',
    )) ? $sort : '';
    $this
      ->orderBy($field, $sort);
  }
  return $this;
}