Função pra paginação
Publicado por Wanderson 24/09/2007
[ Hits: 10.096 ]
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);
}
?>
Cotação do dólar direto do banco central
guarda num arquivo txt o host, ip, data e hora de acesso do visitante
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Pós-instalação do elementary OS 8.1
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
Conky não mostra temperaturas da CPU no notebook (5)
Estou com um problema no meu desktop do ubuntu (2)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









