mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Do not redirect on single search results
The use of header() to redirect after previous output was a design flaw. Our only luck here was PHP's "output_buffering" config variable defaulting to 4096, which kind of hid the bug for a long time. Fixes FS#24580. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
parent
5853097561
commit
0e9f8c0ff5
1 changed files with 25 additions and 32 deletions
|
@ -533,42 +533,35 @@ function pkg_search_page($SID="") {
|
||||||
$last = $_GET['PP'] + $_GET['O'];
|
$last = $_GET['PP'] + $_GET['O'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# calculation of pagination links
|
||||||
|
$per_page = ($_GET['PP'] > 0) ? $_GET['PP'] : 50;
|
||||||
|
$current = ceil($first / $per_page);
|
||||||
|
$pages = ceil($total / $per_page);
|
||||||
|
$templ_pages = array();
|
||||||
|
|
||||||
if ($total > 1 || $total == 0) {
|
if ($current > 1) {
|
||||||
# calculation of pagination links
|
$templ_pages[__('First')] = 0;
|
||||||
$per_page = ($_GET['PP'] > 0) ? $_GET['PP'] : 50;
|
$templ_pages[__('Previous')] = ($current - 2) * $per_page;
|
||||||
$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');
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
$pkgdetails = mysql_fetch_assoc($result);
|
if ($current - 5 > 1)
|
||||||
header("Location: packages.php?ID={$pkgdetails['ID']}");
|
$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');
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue