Função pra paginação
Publicado por Wanderson 24/09/2007
[ Hits: 10.093 ]
Esta é uma função para ajudar a fazer a paginação em páginas PHP; ela reconhe alguns dados e cria um array contendo o total de páginas e um texto HTML com a paginação própriamente dita, que pode por exemplo ser colocada no topo e rodapé.
A sintaxe é
array paginar(PáginaAtual, TotalASerExibido, ExibiçõesPorPágina, URLParaOsLinks, FormatoDoTexto [<<, nada ou 'primeira' por exemplo], LimiteDeEspaçamento, ClasseCSSParaLinks, ClasseCSSParaInativos);
O indice 0 é o HTML e 1 é o total de páginas.
<?
function paginar($atual, $total, $nopg, $url, $textos, $diferenca, $cssL, $cssN) {
$limite = ceil($total / $nopg);
$res[1] = $limite;
# Primeira página
if($atual == 1) {
if($textos == 1) {
$res[0] = " <span class=\"".$cssN."\">primeira</span> \n <span class=\"".$cssN."\">anterior</span> ";
} else if($textos == 2) {
$res[0] = " <span class=\"".$cssN."\"><<</span> \n <span class=\"".$cssN."\"><</span> ";
}
} else {
if($textos == 1) {
$res[0] = " <span class=\"".$cssL."\"><a href=\"".$url."1\">primeira</a> \n <a class=\"".$cssL."\" href=\"".$url.($atual - 1)."\">anterior</a></span> ";
} else if($textos == 2) {
$res[0] = " <span class=\"".$cssL."\"><a href=\"".$url."1\"><<</a> \n <a class=\"".$cssL."\" href=\"".$url.($atual - 1)."\"><</a></span> ";
}
}
# Paginação
$minimo = ($atual - $diferenca);
if($minimo < 1) {
$minimo = 1;
}
$maximo = ($atual + $diferenca);
if($maximo > $limite) {
$maximo = $limite;
}
#Pões reticências
if($minimo > 1) {
$res[0] .= "\n <span class=\"".$cssN."\">...</span> ";
}
for($i = $minimo; $i <= $maximo; $i++) {
if($i == $atual) {
$res[0] .= "\n <span class=\"".$cssN."\">".$i."</span> ";
continue;
}
$res[0] .= "\n <span class=\"".$cssL."\"><a href=\"".$url.$i."\">".$i."</a></span> ";
}
#Põe reticências
if($maximo < $limite) {
$res[0] .= "\n <span class=\"".$cssN."\">...</span> ";
}
# Última página
if($atual == $limite) {
if($textos == 1) {
$res[0] .= "\n <span class=\"".$cssN."\">próxima</span> \n <span class=\"".$cssN."\">última</span> ";
} else if($textos == 2) {
$res[0] .= "\n <span class=\"".$cssN."\">></span> \n <span class=\"".$cssN."\">>></span> ";
}
} else {
if($textos == 1) {
$res[0] .= "\n <span class=\"".$cssL."\"><a href=\"".$url.($atual + 1)."\">próxima</a> \n <a class=\"".$cssL."\" href=\"".$url.$limite."\">última</a></span> ";
} else if($textos == 2) {
$res[0] .= "\n <span class=\"".$cssL."\"><a href=\"".$url.($atual + 1)."\">></a> \n <a class=\"".$cssL."\" href=\"".$url.$limite."\">>></a></span> ";
}
}
return $res;
unset($atual,$total,$nopg,$url,$textos,$cssL,$cssN,$limite,$res);
}
?>
Paleta de cores HEXADECIMAL para WEB
SERVER PARA EDITAR GRATUITAMENTE MU-ONLINE
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
archlinux resolução abaixou após atualização (14)
Conselho distribuiçao brasileira (2)
Não consigo instalar distro antiga no virtualbox nem direto no hd (33)









