prefs['offset_limit'] ? $GLOBALS['user']->prefs['offset_limit'] : '25'; $start = Browse::$start; $total = Browse::$total_objects; // Next $next_offset = $start + $limit; if ($next_offset > $total) { $next_offset = $start; } // Prev $prev_offset = $start - $limit; if ($prev_offset < 0) { $prev_offset = '0'; } /* Calculate how many pages total exist */ $pages = ceil($total/$limit); /* Calculate current page and how many we have on each side */ $page_data = array('up'=>array(),'down'=>array()); // Can't Divide by 0 if ($start> 0) { $current_page = floor($start/$limit); } else { $current_page = 0; } /* Create 10 pages in either direction */ // Down First $page = $current_page; $i = 0; /* While we have pages left */ while ($page > 0) { if ($i == '15') { $page_data['down'][1] = '...'; $page_data['down'][0] = '0'; break; } $i++; $page = $page - 1; $page_data['down'][$page] = $page * $limit; } // while page > 0 // Up Next $page = $current_page+1; $i = 0; /* While we have pages left */ while ($page <= $pages) { if ($page * $limit > $total) { break; } if ($i == '15') { $key = $pages - 1; if (!$page_data['up'][$key]) { $page_data['up'][$key] = '...'; } $page_data['up'][$pages] = ($pages-1) * $limit; break; } $i++; $page = $page + 1; $page_data['up'][$page] = ($page-1) * $limit; } // end while // Sort These Arrays of Hotness ksort($page_data['up']); ksort($page_data['down']); /* Detect the current script, this take a little work because we have to * account for FastCGI */ preg_match("/.*\/(.+\.php)$/", $_SERVER['SCRIPT_NAME'], $matches); // Must be running Fast CGI or something similar if (!isset($matches['1'])) { // Try PHP_SELF preg_match("/.*\/(.+\.php)$/",$_SERVER['PHP_SELF'],$matches); } $action = "action=" . scrub_in($_REQUEST['action']); $script = Config::get('web_path') . "/" . $admin_menu . $matches[1]; // are there enough items to even need this view? if ($pages > 1) { ?>
$offset) { if ($offset === '...') { echo '... '; } else { // Hack Alert $page++; echo Ajax::text('?action=page&start=' . $offset,$page,'browse_page_' . $page,'','list-header'); } } // end foreach down /* Echo Out current Page */ $current_page = $current_page +1; ?>   $offset) { if ($offset === '...') { echo '... '; } else { echo Ajax::text('?action=page&start=' . $offset,$page,'browse_page_' . $page,'','list-header'); } // end else } // end foreach up ?>