Meu páginador não tem nada de errado com ele, ele funciona e atende exatamente o que eu preciso, so que tem um porem, conforme for almentando os registros ele vai criando link para as paginas 1,2,3,4,etc..
Eu gostaria de modificar ele para que, ele mostra-se [proxima][1][2]...[4][5][anterior].
Traduzindo, se o paginador tiver que montar não mostre tudo, mostre 2 paginas frente da pagina atual, e 2 paginas atras da pagina atual.
Segue a parte que monta o paginador
# Início Paginador.
echo "<div class='paginador'>";
echo "<ul>";
// Determinando qual página anterior.
$pag_anterior = $pagina - 1;
// Determinando qual próxima página.
$pag_proxima = $pagina + 1;
// Efetuo cálculo do número de páginas.
if($total_pagina > 1 )
{
# Verifica se foi passado parametro página
if(!empty($this->url))
{
// Mostragem de pagina
if($pag_anterior > 0)
{
echo "<li><a href='?p=".$this->url."&pagina=$pag_anterior'>anterior</a></li>";
}
// Listando as paginas
for($i=1;$i <= $total_pagina;$i++)
{
if($i != $pagina)
{
echo "<li><a href=?p=".$this->url."&pagina=".($i).">$i</a></li>";
}
else
{
echo "<li><a href='#'>".$i."</a></li>";
}
}
if($pag_proxima <= $total_pagina)
{
echo "<li><a href=?p=".$this->url."&pagina=$pag_proxima>próxima</a></li>";
}
}
else
{
// Mostragem de pagina
if($pag_anterior > 0)
{
echo "<li><a href='?pagina=$pag_anterior'>anterior</a></li>";
}
// Listando as paginas
for($i=1;$i <= $total_pagina;$i++)
{
if($i != $pagina)
{
echo "<li><a href=?pagina=".($i).">$i</a></li>";
}
else
{
echo "<li><a href='#'>".$i."</a></li>";
}
}
if($pag_proxima <= $total_pagina)
{
echo "<li><a href=?pagina=$pag_proxima>próxima</a></li>";
}
}
}
echo "</ul>";
echo "</div>";










