Barra de navegación para resultados paginados (similar a la que usa éste foro)
Créditos del update: 3pies
Función para crear una barra de navegación por resultados paginados.
El aspecto es 'customizable' (tal vez no del todo por el momento) y sólo necesita que se le pase como argumentos la cantidad total de páginas y el número de la página actual
Código:
<%
Function BarraDeNavegacion(PaginasTotales, PaginaActual)
'Modificar el contenido de las constantes para cambiar el aspecto de la barra de navegación
const EstiloDeLaTabla = "border: 1px solid #D6AD6B; font-family: Arial, Helvetica, sans-serif; font-size: 10px;"
const EstiloCeldaPaginaXdeY = "color: #846B42; background-color: #D6AD6B;"
const LinkDelEnlace = "link1"
const EstiloDeLaCeldaPaginaActual = "background-color:#EFD6AD; font-weight:bold;"
const EstiloDeLaCeldaPaginaConLink = "background-color:#F7E7C6"
if PaginasTotales > 1 then
if PaginasTotales > 5 then MostrarUltima = true
TablaConBarraDeNavegacion = "<table border=""0"" cellpadding=""2"" cellspacing=""1"" style=""" & EstiloDeLaTabla & """><tr><td style=""" & EstiloCeldaPaginaXdeY & """> Página " & PaginaActual & " de " & PaginasTotales & " </td>"
if PaginaActual >= 4 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=1"" class=""" & LinkDelEnlace & """><strong>«</strong> Primera</a></td>"
CantidadAMostrarDeAnterioresYPosteriores = 2
'Indicamos la celda central como activa, y sin link
'(la 3ª, de las 5 mostradas), y el resto con link
for i = 1 to 5
'No mostramos link si estamos en la 3ª celda de las 5 mostradas
if i = 3 then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaActual & """>" & PaginaActual & "</td>"
else
'Mostramos el link si estamos en las celdas distintas de la 3ª (la central)
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style=""" & EstiloDeLaCeldaPaginaConLink & """><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & """ class=""" & LinkDelEnlace & """>" & PaginaActual - CantidadAMostrarDeAnterioresYPosteriores & "</a></td>"
end if
if PaginaActual - CantidadAMostrarDeAnterioresYPosteriores = PaginasTotales then
MostrarUltima = False
Exit For
end if
CantidadAMostrarDeAnterioresYPosteriores = CantidadAMostrarDeAnterioresYPosteriores - 1
next
else
if PaginasTotales < 5 then
for i = 1 to PaginasTotales
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
else
For i = 1 to 5
if i <> PaginaActual then
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & i & """ class=""" & LinkDelEnlace & """>" & i & "</a></td>"
else
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td width=""15"" align=""center"" style="""& EstiloDeLaCeldaPaginaActual &""">" & i & "</td>"
end if
next
end if
end if
if MostrarUltima = true then TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "<td style="""& EstiloDeLaCeldaPaginaConLink &"""><a href="""& PaginaActualBarraDeNavegacion & "?pagina=" & PaginasTotales & """ class=""" & LinkDelEnlace & """>Última <strong>»</strong></a></td>"
TablaConBarraDeNavegacion = TablaConBarraDeNavegacion & "</tr></table>"
BarraDeNavegacion = TablaConBarraDeNavegacion
end if
end Function
%>
Se la llama así en el lugar donde se desea que la barra aparezca:
Código:
<%=BarraDeNavegacion(PaginasTotales, PaginaActual)%>
Update 31/10/2005:
La función fue modificada según el genial aporte de
3pies de
éste mensaje