Witam,
znalazłem kiedyś w sieci skrypcik do numerowania stron używam go na wielu serwisach ale w tym który teraz tworzę potrzebuję go troszkę zmodyfikować.
Otóż chodzi o to że chciałbym aby skrypt zamiast pierwszej podstrony czyli w tym przypadku
"index.php?page=0"
zwracał
"index.php"
a zamiast mnożyć strony przez 10 dawał wyniki kolejno tzn. na 2 podstronie link wyglądał by tak
index.php?page=2
a nie jak jest w tej chili
index.php?page=10
Kompletnie nie wiem jak to zrobić jest to troszkę zagmatwane, więc proszę o pomoc speców. (IMG:
http://forum.php.pl/style_emoticons/default/snitch.gif)
Kod wygląda tak:
<?php
//link ilość stron pobierane z GET ilosc wynikow na tsronie
function Pagination( $base_link, $num_items, $start_item, $per_page )
{
$total_pages = ceil( $num_items/$per_page ); if ( $total_pages == 1 )
{
return '';
}
$on_page = floor($start_item / $per_page) + 1; $page_string = '';
if ( $total_pages > 10 )
{
$init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
for($i = 1; $i < $init_page_max + 1; $i++)
{
$page_string .= ( $i == $on_page ) ?
$i : sprintf( $base_link, ( ( $i - 1
) * $per_page ), $i ); if ( $i < $init_page_max )
{
$page_string .= ", ";
}
}
if ( $total_pages > 3 )
{
if ( $on_page > 1 && $on_page < $total_pages )
{
$page_string .= ( $on_page > 5 ) ? ' ... ' : ', ';
$init_page_min = ( $on_page > 4 ) ? $on_page : 5;
$init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++)
{
$page_string .= ($i == $on_page) ?
$i : sprintf( $base_link, ( ( $i - 1
) * $per_page ), $i ); if ( $i < $init_page_max + 1 )
{
$page_string .= ', ';
}
}
$page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : ', ';
}
else
{
$page_string .= ' ... ';
}
for($i = $total_pages - 2; $i < $total_pages + 1; $i++)
{
$page_string .= ( $i == $on_page ) ?
$i : sprintf( $base_link, ( ( $i - 1
) * $per_page ), $i ); if( $i < $total_pages )
{
$page_string .= ", ";
}
}
}
}
else
{
for($i = 1; $i < $total_pages + 1; $i++)
{
$page_string .= ( $i == $on_page ) ?
$i : sprintf( $base_link, ( ( $i - 1
) * $per_page ), $i ); if ( $i < $total_pages )
{
$page_string .= ', ';
}
}
}
if ( $on_page > 1 )
{
$page_string = sprintf( $base_link, ( ( $on_page - 2
) * $per_page ), 'Prev' ) . ' ' . $page_string; }
if ( $on_page < $total_pages )
{
$page_string .= ' ' . sprintf( $base_link, ( $on_page * $per_page ), 'Next' ); }
return $page_string;
}
define('ILOSC_WYNIKOW_NA_STRONIE', 10
); $statistic = 5000;
$start = ( isset( $_GET['page'] ) && is_numeric( $_GET['page'] ) ) ?
$_GET['page'] : 1; echo Pagination
( '<a href="index.php?page=%d"><b>%s</b></a>', $statistic, $start, ILOSC_WYNIKOW_NA_STRONIE
); ?>
Myślę, że ten skrypcik przyda się wielu z was tych mniej zaawansowanych programistów (IMG:
http://forum.php.pl/style_emoticons/default/biggrin.gif)