Hola,
Supongo que tu codigo de paginacion genera los links de las paginas con un for tipo:
Código PHP:
for ($i=0;$i<$pages;$i++)
Suponiendo que 0 es el valor para la primera pagina, y que la ultima es $pages-1.
Bien, si cambias este codigo a:
Código PHP:
$inicio=0;
$final=$pages;
for ($i=$inicio;$i<$final;$i++)
tienes exactamente lo mismo
Pero con una sutil diferencia. Ahora puedes "jugar" con los valores de $inicio y $final. Puedes decidir hacer:
Código PHP:
// $pagina es la pagina actual
$inicio=$pagina - 5;
$final=$pagina + 5;
if (0>$inicio) $inicio=0; // para evitar que se salga de rango
if ($pages<$final) $final=$pages; // para evitar que se salga de rango
for ($i=$inicio;$i<$final;$i++)
te saldria (mas o menos) los links de 5 antes a la apgina actual hasta 5 despues de la pagina actual.
Asi que jugando con la pagina actual, calculas "dinamicamente" $inicio y $final, que son las variables que controlan que links aparecen.
Suerte.
PD: No tomes este codigo como "palabra de dios". Entiende como funciona, la idea de usar esas variables y jugar. Los valores los debes obtener tu.