From 2cd3ef9e9b25a9166b6c816d622f593a41256898 Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 5 Feb 2010 03:20:27 +0000 Subject: Fixes #1481: Applie Mike's patch and created function elgg_http_add_url_query_elements() to handle what the pagination view was trying to do. git-svn-id: http://code.elgg.org/elgg/trunk@3903 36083f99-b078-4883-b0ff-0f9b5a30f544 --- views/default/navigation/pagination.php | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) (limited to 'views/default/navigation') diff --git a/views/default/navigation/pagination.php b/views/default/navigation/pagination.php index 4e0682367..0512aada1 100644 --- a/views/default/navigation/pagination.php +++ b/views/default/navigation/pagination.php @@ -38,7 +38,7 @@ if (isset($vars['nonefound'])) { $totalpages = ceil($count / $limit); $currentpage = ceil($offset / $limit) + 1; -$baseurl = elgg_http_remove_url_query_element($vars['baseurl'], $word); +//$baseurl = elgg_http_remove_url_query_element($vars['baseurl'], $word); //only display if there is content to paginate through or if we already have an offset if (($count > $limit || $offset > 0) && get_context() != 'widget') { @@ -51,17 +51,13 @@ if (($count > $limit || $offset > 0) && get_context() != 'widget') { if ($offset > 0) { $prevoffset = $offset - $limit; - if ($prevoffset < 0) $prevoffset = 0; - - $prevurl = $baseurl; - if (substr_count($baseurl,'?')) { - $prevurl .= "&{$word}=" . $prevoffset; - } else { - $prevurl .= "?{$word}=" . $prevoffset; + if ($prevoffset < 0) { + $prevoffset = 0; } - echo "« ". elgg_echo("previous") ." "; + $prevurl = elgg_http_add_url_query_elements($baseurl, array($word => $prevoffset)); + echo "« ". elgg_echo("previous") ." "; } if ($offset > 0 || $offset < ($count - $limit)) { @@ -98,13 +94,9 @@ if (($count > $limit || $offset > 0) && get_context() != 'widget') { echo "..."; } - $counturl = $baseurl; $curoffset = (($i - 1) * $limit); - if (substr_count($baseurl,'?')) { - $counturl .= "&{$word}=" . $curoffset; - } else { - $counturl .= "?{$word}=" . $curoffset; - } + $counturl = elgg_http_add_url_query_elements($base_url, array($word => $curoffset)); + if ($curoffset != $offset) { echo " {$i} "; } else { @@ -122,12 +114,7 @@ if (($count > $limit || $offset > 0) && get_context() != 'widget') { $nextoffset--; } - $nexturl = $baseurl; - if (substr_count($baseurl,'?')) { - $nexturl .= "&{$word}=" . $nextoffset; - } else { - $nexturl .= "?{$word}=" . $nextoffset; - } + $nexturl = elgg_http_add_url_query_elements($baseurl, array($word => $nextoffset)); echo " " . elgg_echo("next") . " »"; -- cgit v1.2.3