Função pra paginação
Publicado por Wanderson 24/09/2007
[ Hits: 10.053 ]
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);
}
?>
Guestbook LivroLivre versão 2.0
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Trazendo de volta o Serviços em Segundo Plano no Plasma6
É normal não gostar de KDE? (21)
Servidor para arquivos e banco de dados (4)
780 mil usuários do Janelas baIxaram Linux em um mês (4)
Atualizei meu ubuntu e desliguei e ele não inicia corretamente (12)









