function views_litepager_views_pre_execute in Views Litepager 6.2
Implement hook_views_pre_execute().
File
- ./
views_litepager.module, line 6
Code
function views_litepager_views_pre_execute(&$view) {
if ($view->pager['use_pager'] === 'lite') {
// Prevent views from executing a count query
$view->get_total_rows = FALSE;
$view->pager['use_pager'] = FALSE;
// Enable flag so we can theme the Lite pager later
$view->pager['litepager'] = TRUE;
global $pager_page_array, $pager_total, $pager_total_items;
// What page was requested:
$pager_page_array = isset($_GET['page']) ? explode(',', $_GET['page']) : array();
$current_page = !empty($pager_page_array) ? $pager_page_array[$view->pager['element']] : 0;
$min_pages = max($current_page + 1, 2);
// total rows in query
$pager_total_items[$view->pager['element']] = $view->pager['items_per_page'] * $min_pages + 1;
// total pages
$pager_total[$view->pager['element']] = (int) ceil($pager_total_items[$view->pager['element']] / $view->pager['items_per_page']);
// 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[$view->pager['element']])) {
$page = intval($pager_page_array[$view->pager['element']]);
if ($page > 0 && $page < $pager_total[$view->pager['element']]) {
$view->pager['current_page'] = $page;
}
}
$pager_page_array[$view->pager['element']] = $view->pager['current_page'];
}
}