summaryrefslogtreecommitdiffstats
path: root/web/lib
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib')
-rw-r--r--web/lib/pkgfuncs.inc26
1 files changed, 26 insertions, 0 deletions
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc
index 2f693216..f5591f33 100644
--- a/web/lib/pkgfuncs.inc
+++ b/web/lib/pkgfuncs.inc
@@ -559,6 +559,32 @@ function pkg_search_page($SID="") {
if ($total > 1 || $total == 0) {
+ # calculation of pagination links
+ $per_page = ($_GET['PP'] > 0) ? $_GET['PP'] : 25;
+ $current = ceil($first / $per_page);
+ $pages = ceil($total / $per_page);
+ $templ_pages = array();
+
+ if ($current > 1) {
+ $templ_pages[__('First')] = 0;
+ $templ_pages[__('Previous')] = ($current - 2) * $per_page;
+ }
+
+ if ($current - 5 > 1)
+ $templ_pages["..."] = false;
+
+ for ($i = max($current - 5, 1); $i <= min($pages, $current + 5); $i++) {
+ $templ_pages[$i] = ($i - 1) * $per_page;
+ }
+
+ if ($current + 5 < $pages)
+ $templ_pages["... "] = false;
+
+ if ($current < $pages) {
+ $templ_pages[__('Next')] = $current * $per_page;
+ $templ_pages[__('Last')] = ($pages - 1) * $per_page;
+ }
+
include('pkg_search_form.php');
include('pkg_search_results.php');
}