You are here

function views_plugin_query_default::add_orderby in Views (for Drupal 7) 6.3

Same name and namespace in other branches
  1. 7.3 plugins/views_plugin_query_default.inc \views_plugin_query_default::add_orderby()

Add an ORDER BY clause to the query.

Parameters

$table: The table this field is part of. If a formula, enter NULL.

$field: The field or formula to sort on. If already a field, enter NULL and put in the alias.

$order: Either ASC or DESC.

$alias: The alias to add the field as. In SQL, all fields in the order by must also be in the SELECT portion. If an $alias isn't specified one will be generated for from the $field; however, if the $field is a formula, this alias will likely fail.

$params: Any params that should be passed through to the add_field.

File

plugins/views_plugin_query_default.inc, line 851
views_plugin_query_default.inc Defines the default query object which builds SQL to execute using the Drupal database API.

Class

views_plugin_query_default
Object used to create a SELECT query.

Code

function add_orderby($table, $field, $order, $alias = '', $params = array()) {
  if ($table) {
    $this
      ->ensure_table($table);
  }

  // Only fill out this aliasing if there is a table;
  // otherwise we assume it is a formula.
  if (!$alias && $table) {
    $as = $table . '_' . $field;
  }
  else {
    $as = $alias;
  }
  if ($field) {
    $as = $this
      ->add_field($table, $field, $as, $params);
  }
  $this->orderby[] = "{$as} " . strtoupper($order);

  /**
  * -- removing, this should be taken care of by field adding now.
  * -- leaving commented because I am unsure.
     // If grouping, all items in the order by must also be in the
     // group by clause. Check $table to ensure that this is not a
     // formula.
     if ($this->groupby && $table) {
       $this->add_groupby($as);
     }
  */
}