function views_customfield_handler_field_phpcode::pre_render in Views Custom Field 6
File
- includes/
views_customfield_handler_field_phpcode.inc, line 83 - Contains the 'customfield' phpcode field handler.
Class
Code
function pre_render($results) {
// Evaluate the PHP code.
foreach ($this->view->result as $i => $row) {
$this->view->result[$i]->{$this->field_alias} = $this
->render_row($row);
}
// If we're sorting, do the actual sorting then fix the results as per the pager info.
if ($this->options['sortable'] != VIEWS_CUSTOMFIELD_SORTABLE_NO && $this->sort_order) {
usort($this->view->result, array(
new views_customfield_sorter($this->options['sortable'], $this->sort_order, $this->field_alias),
'sort',
));
// Handle paging logic as in view::execute()
if (!empty($this->pager['items_per_page'])) {
if (!empty($this->pager['use_pager']) || !empty($this->view->get_total_rows)) {
$this->view->total_rows = count($this->view->result) - $this->pager['offset'];
}
if (!empty($this->pager['use_pager'])) {
// dump information about what we already know into the globals
global $pager_page_array, $pager_total, $pager_total_items;
// total rows in query
$pager_total_items[$this->pager['element']] = $this->view->total_rows;
// total pages
$pager_total[$this->pager['element']] = ceil($pager_total_items[$this->pager['element']] / $this->pager['items_per_page']);
// What page was requested
$pager_page_array = isset($_GET['page']) ? explode(',', $_GET['page']) : array();
// If the requested page was within range. $this->pager['current_page']
// defaults to 0 so we don't need to set it in an out-of-range condition.
if (!empty($pager_page_array[$this->pager['element']])) {
$page = intval($pager_page_array[$this->pager['element']]);
if ($page > 0 && $page < $pager_total[$this->pager['element']]) {
$this->pager['current_page'] = $page;
}
}
$pager_page_array[$this->pager['element']] = $this->pager['current_page'];
}
$offset = $this->pager['current_page'] * $this->pager['items_per_page'] + $this->pager['offset'];
$results = array_slice($this->view->result, $offset, $this->pager['items_per_page']);
$this->view->result = $results;
}
$this->view->pager = $this->pager;
}
}