Ma quei link che si usano per la paginazione dei risultati, tipo su google... come li posso ricreare?
Leggendo qua e la mi sono imbattuto in una richiesta di qualcuno che aveva necessità di creare questo genere di link, ma cercando su internet non riusciva a trovare nulla di interessante...
Visto che tempo fa ho dovuto creare qualcosa di simile per DelightCMS (che poi è anche la piattaforma che sta sotto la pagina che state leggendo), lo riporto qua sperando possa essere utile a qualcuno:
<?php
// $numChildren è il numero di record totali, quelli che vogliamo suddividere in più pagine
// $baseLink è l'indirizzo assoluto della pagina
$blogPostPerPage = 25;
$pageCount = ceil($numChildren / $blogPostPerPage);
$jump = false;
echo "<div id='paginator'>";
// inseriamo prima di tutto il bottone per tornare indietro di una pagina, se siamo dalla seconda in poi
if ($pageNum > 1) {
echo $html->link('<< ', $baseLink . ($pageNum-1));
}
// qua inizia il lavoro sporco
if ($pageCount > 1) {
for ($i = 1; $i <= $pageCount; $i++) {
// visualizzo i 7 link delle pagine intorno al numero di pagina che sto visualizzando, più il primo e l'ultimo (ok è una spiegazione di merda ma se provi capisci cosa intendo)
if (($i <= $pageNum + 7) and ($i >= $pageNum - 7) or ($i == 1) or ($i == $pageCount)) {
if ($pageNum == $i) {
echo $i;
} else {
echo $html->link($i, $baseLink . $i);
}
$jump = false;
// non sono nelle condizioni che dicevo prima, quindi metto i puntini e non visualizzo la pagina finchè non si verifica una delle condizioni di cui sopra
} else {
if ($jump != true) {
echo "...";
$jump = true;
}
}
echo " ";
}
// se non sono all'ultima pagina, visualizzo il link per tornare indietro di una
if ($pageNum < $pageCount) {
echo $html->link('>>', $baseLink . ($pageNum+1));
}
}
echo "</div>";
?>
