You are here

function views_php_handler_sort::php_sort in Views PHP 6

Same name and namespace in other branches
  1. 7.2 plugins/views/views_php_handler_sort.inc \views_php_handler_sort::php_sort()
  2. 7 plugins/views/views_php_handler_sort.inc \views_php_handler_sort::php_sort()

Helper function; usort() callback for sort support.

File

plugins/views/views_php_handler_sort.inc, line 115

Class

views_php_handler_sort
A handler to sort a view using PHP defined by the administrator.

Code

function php_sort($row1, $row2) {
  $factor = strtoupper($this->options['order']) == 'ASC' ? 1 : -1;
  $function = $this->php_sort_function;
  foreach (array(
    'row1' => 'normalized_row1',
    'row2' => 'normalized_row2',
  ) as $name => $normalized_name) {
    ${$normalized_name} = new stdClass();
    foreach ($this->view->display_handler
      ->get_handlers('field') as $field => $handler) {
      ${$normalized_name}->{$field} = isset(${$name}->{$handler->field_alias}) ? ${$name}->{$handler->field_alias} : NULL;
    }

    // Add base_field if found.
    if (!empty($this->view->base_field) && isset(${$name}->{$this->view->base_field})) {
      ${$normalized_name}->{$this->view->base_field} = ${$name}->{$this->view->base_field};
    }
  }
  $result = (int) $function($this->view, $this, $this->php_static_variable, $normalized_row1, $normalized_row2);
  return $factor * $result;
}