/** * Returns an array of "local" pages given a page number and range. * * @param Paginator $paginator * @param integer $page_range Unused * @return array */ public function get_pages(Paginator $paginator, $page_range = null) { $page_range = $paginator->get_page_range(); $page_number = $paginator->get_current_page_number(); $delta = $page_number % $page_range; if ($delta == 0) { $delta = $page_range; } $offset = $page_number - $delta; $lower_bound = $offset + 1; $upper_bound = $offset + $page_range; return $paginator->get_pages_in_range($lower_bound, $upper_bound); }
/** * Returns an array of "local" pages given a page number and range. * * @param Paginator $paginator * @param integer $page_range Unused * @return array */ public function get_pages(Paginator $paginator, $page_range = null) { $page_range = $paginator->get_page_range(); $page_number = $paginator->get_current_page_number(); $original_page_range = $page_range; $page_range = $page_range * 2 - 1; if ($original_page_range + $page_number - 1 < $page_range) { $page_range = $original_page_range + $page_number - 1; } else { if ($original_page_range + $page_number - 1 > count($paginator)) { $page_range = $original_page_range + count($paginator) - $page_number; } } return parent::get_pages($paginator, $page_range); }
/** * Returns an array of "local" pages given a page number and range. * * @param Paginator $paginator * @param integer $page_range (Optional) Page range * @return array */ public function get_pages(Paginator $paginator, $page_range = null) { if ($page_range === null) { $page_range = $paginator->get_page_range(); } $page_number = $paginator->get_current_page_number(); $page_count = count($paginator); if ($page_range > $page_count) { $page_range = $page_count; } $delta = ceil($page_range / 2); if ($page_number - $delta > $page_count - $page_range) { $lower_bound = $page_count - $page_range + 1; $upper_bound = $page_count; } else { if ($page_number - $delta < 0) { $delta = $page_number; } $offset = $page_number - $delta; $lower_bound = $offset + 1; $upper_bound = $offset + $page_range; } return $paginator->get_pages_in_range($lower_bound, $upper_bound); }