standardLib – PHP framework
Pagination
Dipendenze: Nessuna.
Descrizione
Il modello Pagination() provvede alla paginazione dei risultati di una query creando i link “precedente”, “successivo”, “prima pagina”, “ultima pagina” “numero pagina” e “totale pagine”.
Con l’introduzione del modello Loop, l’utilizzo diretto di questo modello ha poco senso.
Lista dei parametri
| Parametro | Descrizione | Default |
|---|---|---|
| step | Il numero di risultati da mostrare per ogni pagina | 10 |
| NextMark | Rappresenta ciò che deve visualizzare il link “prossima pagina” | > |
| LastMark | Rappresenta ciò che deve visualizzare il link “ultima pagina” | >> |
| FirstMark | Rappresenta ciò che deve visualizzare il link “prima pagina” | << |
| PreviousMark | Rappresenta ciò che deve visualizzare il link “pagina precedente” | < |
Lista dei metodi e delle proprietà
| Proprietà – Metodo | Descrizione | Return |
|---|---|---|
| paginationQuery($query) | Esegue la query $query e valorizza tutte le seguenti proprietà | Risorsa |
| Next | Contiene il link per la prossima pagina | |
| Last | Contiene il link per l’ultima pagina | |
| First | Contiene il link per la prima pagina | |
| Previous | Contiene il link per la pagina precedente | |
| numPage | Contiene il numero della pagina che si sta visualizzando | |
| totPage | Contiene il numero totale delle pagine |
Esempio minimo
Si consideri di avere la tabella “articoli”. Vogliamo visualizzare i titoli degli articoli pagniati 5 alla volta.
include 'standardLib/engine.php';
_setOptions("step" => 5);
In seguito, utilizzando la risorsa che ritorna il metodo paginationQuery() stampiamo i titoli (che saranno già paginati; in questo caso vedremo i primi 5)
$res = $model->paginationQuery("SELECT * FROM articoli");
while ($row = mysql_fetch_array($res))
{
echo $row['title'] . '<br />';
}
Ed alla fine è possibile inserire i link per navigare tra le pagine
echo "
- ";
echo $model->First . $model->Previous . $model->Next . $model->Last;
echo "
Nota: considerando che questi link sono stampati all’interno dei tag li (con classe pagination), dovremo prevedere un css minimo:
li.pagination{
display: inline;
}
ul{
list-style-type: none;
}
Si dispone ancora di due proprietà pubbliche (numPage e totPage) con le quali si può aggiungere qualcosa del genere:
echo 'pagina ' . $model->numPage . ' di ' . $model->totPage;

