From: Iain Patterson Date: Mon, 4 Apr 2016 15:11:29 +0000 (-0400) Subject: Clarify pagination links. X-Git-Tag: 2016-04-05~1 X-Git-Url: http://git.iain.cx/?p=readifood.git;a=commitdiff_plain;h=6eac4c1286d9beeb7d1f1ef9cd26686511da533e 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. --- 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);