Ver Mensaje Individual
  #2  
Antiguo 17-09-2008
David82 David82 is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Reputación: 0
David82 Va por buen camino
Hola Guillermo, yo también estuve intentando "manejar" el dbpaginator y acabe dejandolo, no se controla bien el número máximo de paginas a mostrar, da problemas cuando utilizas otros elementos vcl...En fin, un montón de problemas. Lo que utilizo ahora es una función paginadora propia que me es más sencilla de utilizar, mira a ver si te sirve:

Código PHP:
function paginador($actual,$max,$path,$anterior,$siguiente,$uno,$dos,$tres,$pri,$ult,$saltoAnt,$saltoSig)
{
        
$max=ceil($max);
        if(
$max==1)
                {
                
$dos->visible=true;
                
$dos->caption="pág 1";
                
$dos->link="";
                
$uno->visible=false;
                
$tres->visible=false;
                
$siguiente->visible=false;
                
$anterior->visible=false;
                
$pri->visible=false;
                
$ult->visible=false;
                
$saltoAnt->visible=false;
                
$saltoSig->visible=false;
                }
        if(
$max==2)
                {
                
$uno->visible=true;
                
$tres->visible=true;
                
$siguiente->visible=true;
                
$anterior->visible=true;
                
$uno->caption="1";
                
$tres->caption="2";
                if (
$actual==1)
                        {
                        
$uno->link="";
                        
$tres->link=$path."2";
                        
$siguiente->link=$path."2";
                        
$anterior->link="";
                        }
                else
                        {
                        
$uno->link=$path."1";
                        
$tres->link="";
                        
$siguiente->link="";
                        
$anterior->link=$path."1";
                        }
                
$dos->visible=false;
                
$pri->visible=false;
                
$ult->visible=false;
                
$saltoAnt->visible=false;
                
$saltoSig->visible=false;
                }
        if(
$max>2)
                {
                
$uno->visible=true;
                
$dos->visible=true;
                
$tres->visible=true;
                
$siguiente->visible=true;
                
$anterior->visible=true;
                
$pri->visible=true;
                
$ult->visible=true;
                
$saltoAnt->visible=true;
                
$saltoSig->visible=true;
                if(
$actual==1)
                        {
                        
$anterior->link="";
                        
$siguiente->link=$path.($actual+1);
                        
$uno->caption=($actual);
                        
$uno->link="";
                        
$dos->caption=($actual+1);
                        
$dos->link=$path.($actual+1);
                        
$tres->caption=($actual+2);
                        
$tres->link=$path.($actual+2);
                        
$pri->link="";
                        
$ult->link=$path.$max;
                        
$saltoAnt->link="";
                        if(
$actual+3<$max)
                                {
                                
$saltoSig->link=$path.($actual+3);
                                }
                        else
                                {
                                
$saltoSig->link="";
                                }
                        }
                else
                        {
                        if(
$actual==$max)
                                {
                                
$anterior->link=$path.($actual-1);
                                
$siguiente->link="";
                                
$uno->caption=($actual-2);
                                
$uno->link=$path.($actual-2);
                                
$dos->caption=($actual-1);
                                
$dos->link=$path.($actual-1);
                                
$tres->caption=($actual);
                                
$tres->link="";
                                
$pri->link=$path."1";
                                
$ult->link="";
                                if(
$actual-3>'1')
                                        {
                                        
$saltoAnt->link=$path.($actual-3);
                                        }
                                else
                                        {
                                        
$saltoAnt->link="";
                                        }
                                
$saltoSig->link="";
                                }
                        else
                                {
                                
$anterior->link=$path.($actual-1);
                                
$siguiente->link=$path.($actual+1);
                                
$uno->caption=($actual-1);
                                
$uno->link=$path.($actual-1);
                                
$dos->caption=($actual);
                                
$dos->link="";
                                
$tres->caption=($actual+1);
                                
$tres->link=$path.($actual+1);
                                
$pri->link=$path."1";
                                
$ult->link=$path.$max;
                                if(
$actual-3>'1')
                                        {
                                        
$saltoAnt->link=$path.($actual-3);
                                        }
                                else
                                        {
                                        
$saltoAnt->link="";
                                        }
                                if(
$actual+3<$max)
                                        {
                                        
$saltoSig->link=$path.($actual+3);
                                        }
                                else
                                        {
                                        
$saltoSig->link="";
                                        }
                                }
                        }

                }

Los tres primeros parametros son la página actual, el número max de páginas y el path del link donde te lleva el paginador. El resto son las etiquetas del paginador.
A mi me hace un apaño, espero que te sirva.

Para mostrar los bloques de 10 en 10 yo lo hago en la sentencia SQL, poniendo limit X, 10; donde X es el valor de inicio que depende de la página actual.

Un saludo, David.
Responder Con Cita