Foros del Web » Programando para Internet » PHP »

Limitar enlace de paginación

Estas en el tema de Limitar enlace de paginación en el foro de PHP en Foros del Web. Hola, quisiera poder ver en una pagina los enlaces limitados de paginación de una BD, para que por ej. no sea tan engorroso verlos del ...
  #1 (permalink)  
Antiguo 03/07/2007, 15:46
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Limitar enlace de paginación

Hola, quisiera poder ver en una pagina los enlaces limitados de paginación de una BD, para que por ej. no sea tan engorroso verlos del 1 al 100, mi function a los enlaces los muestra así:

Pagina 1 de 178 1 2 3 4 > Siguiente


Y quisiera verlos como por ej este mismo foro en su parte referida a las paginas, algo así:


Pagina 1 de 178 1 2 3 4 ... 11 12 13 ... 50 51 52> Siguiente


Tengo la siguiente function:

function paginar($actual, $num_total_registros, $TAMANO_PAGINA, $enlace) {
$total_paginas = ceil($num_total_registros/$TAMANO_PAGINA);
$anterior = $actual - 1;
$posterior = $actual + 1;
if ($actual>1)
$texto = "<a href=\"$enlace$anterior#forum\"><font color='0000ff' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>&laquo;Anterior</strong></font></a> ";
else
$texto = "";

for ($i=1; $i<$actual; $i++)
$texto .= "<a href=\"$enlace$i#forum\"><font color='0000ff' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>$i</strong></font></a> ";
$texto .= "<font color='000000' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>$actual </strong></font>";

for ($i=$actual+1; $i<=$total_paginas; $i++)
$texto .= "<a href=\"$enlace$i#forum\"><font color='0000ff' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>".($i)."</strong></font></a> ";

if ($actual<$total_paginas)
$texto .="<a href=\"$enlace$posterior#forum\"><font color='0000ff' size='1' face='Verdana, Arial, Helvetica, sans-serif'><strong>Siguiente&raquo;</strong></font></a>";
else
$texto .= "";
return $texto;
}

echo paginar($pagina, $num_total_registros, $TAMANO_PAGINA, "viewforum.php?f={$_REQUEST['f']}&pagina=")


Espero haberme exlicado bién.

Gracias.

Saludos!!!
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
  #2 (permalink)  
Antiguo 03/07/2007, 15:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Limitar enlace de paginación

Lo que tienes que hacer es buscar un puntero, es decir la posicion donde estas, luego delimitar un maximo de enlaces, entonces desde la posicion que estas le restas la mitad del numero maximo de enlaces y haces tu ciclo desde esa posicion hasta el tamanio total de enlaces, algo asi:
Código PHP:
$pagina 15;
$maximo_enlaces 10;

for( 
$i 10$i $maximo_enlaces$i++ ) {
    echo 
$i;

Tienes que calcular usando floor para sacar el numero entero mas cercano.

Saludos.
  #3 (permalink)  
Antiguo 03/07/2007, 17:16
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Limitar enlace de paginación

Cita:
Iniciado por GatorV Ver Mensaje
Lo que tienes que hacer es buscar un puntero, es decir la posicion donde estas, luego delimitar un maximo de enlaces, entonces desde la posicion que estas le restas la mitad del numero maximo de enlaces y haces tu ciclo desde esa posicion hasta el tamanio total de enlaces, algo asi:
Código PHP:
$pagina 15;
$maximo_enlaces 10;

for( 
$i 10$i $maximo_enlaces$i++ ) {
    echo 
$i;

Tienes que calcular usando floor para sacar el numero entero mas cercano.

Saludos.

No queda tal comoquisiera, ya que los enlaces aparecen solo hasta la pagina actual los que seguirían no, o sea así:

1 2 3 >Siguiente


y debería quedar así:

1 2 3 ... 7 8 9 > Siguiente

Saludos!!!
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
  #4 (permalink)  
Antiguo 03/07/2007, 21:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Limitar enlace de paginación

En ese caso tendrias que romper en bloques el total de paginas y armar por decir 3 bloques donde cada uno sea de la misma longitud, y haces el mismo algoritmo pero por cada rango.

Saludos.
  #5 (permalink)  
Antiguo 05/07/2007, 09:21
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Limitar enlace de paginación

Si me traducis un poco mejor ya no soy un exerto como vos

Saludos!!!
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
  #6 (permalink)  
Antiguo 05/07/2007, 09:25
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Re: Limitar enlace de paginación

Hola:
Hace tiempo hice un pequeño script para paginar (Paginator). Échale un vistazo y usa lo que necesites.

Saludos,
  #7 (permalink)  
Antiguo 05/07/2007, 10:15
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Limitar enlace de paginación

Cita:
Iniciado por jpinedo Ver Mensaje
Hola:
Hace tiempo hice un pequeño script para paginar (Paginator). Échale un vistazo y usa lo que necesites.

Saludos,
no funciona
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
  #8 (permalink)  
Antiguo 05/07/2007, 18:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Re: Limitar enlace de paginación

Cita:
Iniciado por webdesignsite Ver Mensaje
no funciona
Paginator funciona, la web funciona, la descarga funciona. Si fueras más específico te entendería mejor.

Tampoco quise decirte "usa Paginator" sino que mires el código fuente y veas cómo se resolvió lo que necesitas.

Saludos,
  #9 (permalink)  
Antiguo 05/07/2007, 22:50
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Limitar enlace de paginación

Cita:
Iniciado por jpinedo Ver Mensaje
Paginator funciona, la web funciona, la descarga funciona. Si fueras más específico te entendería mejor.

Tampoco quise decirte "usa Paginator" sino que mires el código fuente y veas cómo se resolvió lo que necesitas.

Saludos,

Si, disculpas, tenía un error de sintaxis yo, funciona exelentemente disculpas nuevamente.

Gracias, problema solucionado.

Saludos!!!
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
  #10 (permalink)  
Antiguo 06/07/2007, 09:10
Avatar de webdesignsite  
Fecha de Ingreso: enero-2007
Mensajes: 155
Antigüedad: 17 años, 2 meses
Puntos: 1
Re: Limitar enlace de paginación

Hola, otra consulta, me podrias orientar un poco para modificar la parte del enlace p/ q' en vez de q' aparezca seguido 1 2 3 y corelacionado luego en su pagina siguiente 3 4 5, q' aparezca en dos o tres partes, o sea, por ej:
pags 1 2 3 ... 8 9 10 ... 15 16 17>

Muchisimas gracias de antemano.


Saludos!!!
__________________
WebDesignSite
Diseño Web - Altas Buscadores Gratis - Intercambio de Banners - Foros de soporte
http://webdesignsite.bolhost.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:35.