function custom_pager_build_nav in Custom Pagers 5
Same name and namespace in other branches
- 6 custom_pagers.module \custom_pager_build_nav()
- 7 custom_pagers.module \custom_pager_build_nav()
2 calls to custom_pager_build_nav()
- custom_pagers_block in ./custom_pagers.module
- Implementation of hook_block().
- custom_pagers_nodeapi in ./custom_pagers.module
File
- ./custom_pagers.module, line 405
Code
function custom_pager_build_nav($pager, $node) {
static $pager_cache;
$list = array();
if (isset($pager_cache[$pager->pid])) {
$list = explode(',', $pager_cache[$pager->pid]);
}
if (empty($list) && $pager->cache_list) {
if ($cache = $_SESSION['custom_pagers'][$pager->pid]) {
if ($cache['timestamp'] < time() - 300) {
unset($_SESSION['custom_pagers'][$pager->pid]);
}
else {
$list = explode(',', $_SESSION['custom_pagers'][$pager->pid]['data']);
}
}
}
if (empty($list)) {
if (!empty($pager->list_php)) {
ob_start();
$result = eval(trim($pager->list_php));
if (is_array($result)) {
$list = $result;
}
ob_end_clean();
}
elseif (module_exists('views')) {
$args = explode("\n", $pager->args);
if (module_exists('token')) {
$args = token_replace($args, 'node', $node);
}
$view = views_get_view($pager->view);
$tmp = views_build_view('items', $view, $args);
if (count($tmp['items'])) {
foreach ($tmp['items'] as $item) {
$list[] = $item->nid;
}
}
}
if ($pager->reverse_list) {
$list = array_reverse($list);
}
}
if ($pager->cache_list) {
$_SESSION['custom_pagers'][$pager->pid]['data'] = implode(',', $list);
$_SESSION['custom_pagers'][$pager->pid]['timestamp'] = time();
}
$pager_cache[$pager->pid] = $list;
return pager_entries_by_val($node->nid, $list);
}