Função pra paginação
Publicado por Wanderson 24/09/2007
[ Hits: 10.057 ]
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);
}
?>
RandomBanner - Classe para mostrar banner aleatório em imagem ou flash
Sistema Básico de Curriculum Virtual
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
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









