function views_php_handler_field::php_click_sort in Views PHP 6
Same name and namespace in other branches
- 7.2 plugins/views/views_php_handler_field.inc \views_php_handler_field::php_click_sort()
- 7 plugins/views/views_php_handler_field.inc \views_php_handler_field::php_click_sort()
Helper function; usort() callback for click sort support.
File
- plugins/
views/ views_php_handler_field.inc, line 187
Class
- views_php_handler_field
- A handler to provide a field that is constructed by the administrator using PHP.
Code
function php_click_sort($row1, $row2) {
$factor = strtoupper($this->php_click_sort_order) == 'ASC' ? 1 : -1;
$function = $this->php_click_sort_function;
if ($this->options['use_php_click_sortable'] == self::CLICK_SORT_PHP) {
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};
}
}
ob_start();
$result = (int) $function($this->view, $this, $this->php_static_variable, $normalized_row1, $normalized_row2);
ob_end_clean();
}
else {
$result = call_user_func($function, $row1->{$this->field_alias}, $row2->{$this->field_alias});
}
return $factor * $result;
}