1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 13:30:25 +02:00

Added generate_pagination routine

git-svn-id: file:///svn/phpbb/trunk@265 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen
2001-05-07 23:04:16 +00:00
parent 2d6c917744
commit 2efd2e97b8
3 changed files with 87 additions and 71 deletions

View File

@@ -280,11 +280,88 @@ function append_sid($url)
if(!empty($SID) && !eregi("^http:", $url) && !eregi("sid=", $url))
{
$url = ereg_replace("[&?]+$", "", $url);
$url .= ( strpos($url, "?") != false ? "&" : "?" ) . $SID;
$url .= ( (strpos($url, "?") != false) ? "&" : "?" ) . $SID;
}
return($url);
}
//
// Pagination routine, generates
// page number sequence
//
function generate_pagination($base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE)
{
global $l_prevpage, $l_nextpage;
$total_pages = ceil($num_items/$per_page);
if($total_pages == 1)
{
return "";
}
$on_page = floor($start_item/$per_page);
$page_string = "";
$this_block_start = ($on_page < 10) ? 1 : floor($on_page/10) * 10;
$this_block_end = ($on_page < 10) ? 9 : $this_block_start + 9;
if($this_block_end > $total_pages)
{
$this_block_end = $total_pages;
}
for($i = $this_block_start; $i <= $this_block_end; $i++)
{
$page_string .= ($i == $on_page + 1) ? "<b>$i</b>" : "<a href=\"".append_sid($base_url."&start=".(($i-1)*$per_page))."\">$i</a>";
if($i < $this_block_end)
{
$page_string .= ", ";
}
}
if($this_block_start > 1)
{
$page_string_prepend = "";
for($i = 0; $i < $this_block_start; $i+=10)
{
$page_string_prepend .= "<a href=\"".append_sid($base_url."&start=".($i*$per_page))."\">" . ( ($i == 0) ? ($i+1) : $i) . " - " . ($i+9) . "</a>, ";
}
$page_string = $page_string_prepend . $page_string;
}
if($this_block_end < $total_pages)
{
$page_string_append = ", ";
for($i = $this_block_end + 1; $i < $total_pages; $i+=10)
{
$page_string_append .= "<a href=\"".append_sid($base_url."&start=".($i*$per_page))."\">" . ( ($i == 0) ? ($i+1) : $i) . " - " . ((($i+9) < $total_pages) ? ($i+9) : $total_pages) ."</a>";
if($i < $total_pages - 10)
{
$page_string_append .= ", ";
}
}
$page_string .= $page_string_append;
}
if($add_prevnext_text)
{
if($on_page > 0)
{
$page_string = "<a href=\"".append_sid($base_url."&start=".(($on_page - 1)*$per_page))."\">$l_prevpage</a> : " . $page_string;
}
if($on_page < $total_pages-1)
{
$page_string .= " : <a href=\"".append_sid($base_url."&start=".(($on_page + 1)*$per_page))."\">$l_nextpage</a>";
}
}
return $page_string;
}
?>