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.