From 6eac4c1286d9beeb7d1f1ef9cd26686511da533e Mon Sep 17 00:00:00 2001 From: Iain Patterson Date: Mon, 4 Apr 2016 11:11:29 -0400 Subject: [PATCH] Clarify pagination links. We were showing an extra page link in paginated results. We now show ... if there are more pages whose links are not shown. --- lib/functions.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/functions.php b/lib/functions.php index 2c0fdea..34b23c7 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -47,12 +47,18 @@ list($first_page, $per_page) = pagination(); $pages = ceil($pager->getNbResults() / $per_page); - $pages++; + + /* Highlight the fact we skipped some pages. */ + $linked_pages = $pager->getLinks($n); + $first_link = $linked_pages[0]; + $last_link = end($linked_pages); $links = array(); $links[] = page_link('First', 1, $first_page, $pages, $per_page); $links[] = page_link('Previous', $first_page - 1, $first_page, $pages, $per_page); - foreach ($pager->getLinks($n) as $link) $links[] = page_link($link, $link, $first_page, $pages, $per_page); + if ($first_link > 1) $links[] = page_link('...', $first_page, $pages, $per_page); + foreach ($linked_pages as $link) $links[] = page_link($link, $link, $first_page, $pages, $per_page); + if ($last_link < $pages) $links[] = page_link('...', $first_page, $pages, $per_page); $links[] = page_link('Next', $first_page + 1, $first_page, $pages, $per_page); $links[] = page_link('Last', $pages, $first_page, $pages, $per_page); -- 2.20.1