diff options
-rw-r--r-- | web/html/css/arch.css | 12 | ||||
-rw-r--r-- | web/lib/pkgfuncs.inc | 26 | ||||
-rw-r--r-- | web/template/pkg_search_results.php | 77 |
3 files changed, 46 insertions, 69 deletions
diff --git a/web/html/css/arch.css b/web/html/css/arch.css index c3ed3aa..09b2240 100644 --- a/web/html/css/arch.css +++ b/web/html/css/arch.css @@ -328,19 +328,19 @@ blockquote.code { text-decoration: none; } -#pages { margin: 5px; } -#pages .page_num { +.page_nav { + margin: 5px 0; +} +.page_nav .page_num { border: 1px solid #ddd; padding: 2px; color: #0771a6; } - -#pages .page_num:hover { +.page_nav .page_num:hover { border: 1px solid #8faecd; color: #333; } - -#pages #page_sel { +.page_nav .page_sel { border: 1px solid #8faecd; padding: 2px; color: #333; diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index 2f69321..f5591f3 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'); } diff --git a/web/template/pkg_search_results.php b/web/template/pkg_search_results.php index 4830ca8..68ba89a 100644 --- a/web/template/pkg_search_results.php +++ b/web/template/pkg_search_results.php @@ -113,73 +113,24 @@ for ($i = 0; $row = mysql_fetch_assoc($result); $i++) { </td> <td align='right'> - <span class='f4'><span class='blue'> - <?php print __("Showing results %s - %s of %s", $first, $last, $total) ?> - </span></span> - <br /> - - <div id="pages"> - <?php - if ($_GET['O'] > 0): - $O = $_GET['O'] - $_GET['PP']; - - if ($_GET['O'] < $_GET['PP']) { - $O = 0; - } - ?> - <a class="page_num" href="packages.php?<?php print mkurl("O=0") ?>"><?php echo __('First') ?></a> - <a class="page_num" href="packages.php?<?php print mkurl("O=$O") ?>"><?php echo __('Previous') ?></a> - <?php endif; ?> - - <?php - if ($_GET['PP'] > 0) { - $pages = ceil($total / $_GET['PP']); - } - - if ($pages > 1) { - if ($_GET['O'] > 0) { - $currentpage = ceil(($_GET['O'] + 1) / $_GET['PP']); - } - else { - $currentpage = 1; - } - - $morepages = $currentpage + 5; - - print (($currentpage-5) > 1) ? '...' : ''; - - # Display links for more search results. - for ($i = ($currentpage - 5); $i <= $morepages && $i <= $pages; $i++) { - if ($i < 1) { - $i = 1; - } - - $pagestart = ($i - 1) * $_GET['PP']; - - if ($i <> $currentpage) : - ?> - <a class="page_num" href="packages.php?<?php print mkurl('O=' . ($pagestart)) ?>"><?php echo $i ?></a> - <?php else : echo "<span id=\"page_sel\">$i</span>"; - endif; - } - - print ($pages > $morepages) ? '...' : ''; - ?> - - <?php if ($total - $_GET['PP'] - $_GET['O'] > 0): ?> - <a class="page_num" href='packages.php?<?php print mkurl('O=' . ($_GET['O'] + $_GET['PP'])) ?>'><?php echo __('Next') ?></a> - <a class="page_num" href='packages.php?<?php print mkurl('O=' . ($total - $_GET['PP'])) ?>'><?php echo __('Last') ?></a> - <?php endif; ?> - + <div class="f4 blue"> + <?php print __("Showing results %s - %s of %s", $first, $last, $total) ?> + </div> + <div class="page_nav"> + <?php foreach($templ_pages as $pagenr => $pagestart) { ?> + <?php if ($pagestart === false) { ?> + <?php echo $pagenr ?> + <?php } else if ($pagestart + 1 == $first) { ?> + <span class="page_sel"><?php echo $pagenr ?></span> + <?php } else { ?> + <a class="page_num" href="packages.php?<?php print mkurl('O=' . ( $pagestart)) ?>"><?php echo $pagenr ?></a> + <?php } ?> + <?php } ?> </div> - </td> </tr> -<?php - } -} -?> +<?php } ?> </table> </div> </form> |