get_offset(); $start = $browse->get_start(); $total = $browse->get_total(); $uid = Config::get('list_header_uid'); $sides = 5; // ++ the uid Config::set('list_header_uid', $uid + 1, true); // 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 */ if ($limit > 0 && $total > $limit) { $pages = ceil($total / $limit); } else { $pages = 0; } // are there enough items to even need this view? if ($pages > 1) { /* 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 ($page > 0) { if ($i == $sides) { $page_data['down'][1] = '...'; $page_data['down'][0] = '0'; break; } $i++; $page = $page - 1; $page_data['down'][$page] = $page * $limit; } // while page > 0 // Then up $page = $current_page + 1; $i = 0; while ($page <= $pages) { if ($page * $limit > $total) { break; } if ($i == $sides) { $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']); ?>
id . '&start=' . $prev_offset, T_('Prev'),'browse_' . $uid . 'prev','','prev'); ?> id . '&start=' . $next_offset, T_('Next'),'browse_' . $uid . 'next','','next'); ?> $offset) { if ($offset === '...') { echo '... '; } else { // Hack Alert $page++; echo Ajax::text('?page=browse&action=page&browse_id=' . $browse->id . '&start=' . $offset,$page,'browse_' . $uid . 'page_' . $page,'','page-nb'); } } // end foreach down /* Echo current page */ $current_page++; ?> $offset) { if ($offset === '...') { echo '... '; } else { echo Ajax::text('?page=browse&action=page&browse_id=' . $browse->id . '&start=' . $offset,$page,'browse_' . $uid . 'page_' . $page,'','page-nb'); } // end else } // end foreach up ?>