Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera do iMasters
Bom tenho uma paginação feita em PHP parecida com a do google: < 1 2 3 4 5 6 7 8 9 10 >
O problema é: Quando se tem muito conteudo e tecnicamente muitas paginas acontece de a paginação exceder o limite do tamanho da pagina, então o que eu preciso é, que alguem me de uma luz, pensei em colocar algo do tipo assim:
< 1 2 3 4 ... 10 11 12 13 14 >
Mas que ao mesmo tempo ele faça assim
< ... 32 33 34 35 36 ... >
Como eu posso fazer isso? Alguem que ja fez poderia me dar uma luz?
Obrigado!
Obrigado!
Olha, a lógica é meio complexa, mas é mais ou menos essa aqui:
<?php
//A página atual é recebida via get
$currPg = (int) $_GET['pg'];
//A primeira página começa sempre em 1
$firstPg = 1;
//A última é inicialmente o total de páginas
$lastPg = $totalPgs;
//Se o número de páginas que eu quero mostrar é maior que zero e menor que o total de páginas
if($numPages > 0 && $numPages < $totalPgs){
//Se a página atual for maior que o total de páginas menos (a metade do total de páginas),
//ou seja, estamos próximos do final da paginação
//Se não, estamos mais para o início da paginação...
} else {
//Se a página atual estiver além da metade do número de páginas a mostrar...
if($currPg > floor($numPages/2)){
//A primeira página a ser mostrada var ser a atual, menos a metade do número de páginas a mostrar...
//Se a página atual é maior que 1...
if($currPg > 1) {
//Criar um link para a primeira página
//Criar um link para a página anterior
}
//Se a primeira página mostrada não é a 1, precisamos colocar o '...'
else {
//Cria um elemento inativo para indicar a página atual
}
}
//Se a página atual não é a última...
if($currPg < $totalPgs) {
//Criar um link para a próxima página
//Criar um link para a última página
}