Ho un'impaginazione e voglio raggiungere e limitarla ai numeri di pagina 5,Come mostrare al massimo 5 numeri in una paginazione?
vedere qui sotto:
Esempi:
PREVIOUS 1 2 3 4 5 NEXT
PREVIOUS 20 21 22 23 ... 39 NEXT
PREVIOUS 59 ... 81 82 83 84 NEXT
Solo cinque il numero di pagina che dovrebbero essere di visualizzazione.
Quale parte del codice devo modificare e modificare?
Ho problemi con la combinazione.
<?php
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages/items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<div class=\"pagination\">";
//previous buttons
if ($page > 1)
$pagination.= "<a class='buttons' href=\"$targetpage?page=$prev\">previous</a>";
else
$pagination.= "<a class='disabled'><buttons disabled>previous</buttons></a>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>";
else
$pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>";
else
$pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>";
$pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a class='buttons' href=\"$targetpage?page=1\"> 1 </a>";
$pagination.= "<a class='buttons' href=\"$targetpage?page=2\"> 2 </a>";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>";
else
$pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a class='buttons' href=\"$targetpage?page=$lpm1\">$lpm1</a>";
$pagination.= "<a class='buttons' href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
$pagination.= "...";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<a class='current'><buttons style='background-color:#CEF6F5'>$counter</buttons></a>";
else
$pagination.= "<a class='buttons' href=\"$targetpage?page=$counter\">$counter</a>";
}
}
}
//next buttons
if ($page < $counter - 1)
$pagination.= "<a class='buttons' href=\"$targetpage?page=$next\">next</a>";
else
$pagination.= "<a class='buttons'>next</a>";
$pagination.= "</div>\n";
}
?>
Sto avendo problema tracciando il limite per la visualizzazione del numero di pagina.
è necessario modificare il codice dopo il commento '// abbastanza pagine per nascondere some' –
Può essere più preciso? Lo faccio tra un paio di giorni e non riesco a capirlo. jaromanda –
_ "risolto solo" _? Corretto cosa? – Cerbrus