Foros del Web » Programando para Internet » PHP »

paginacion en templates. *.tpl

Estas en el tema de paginacion en templates. *.tpl en el foro de PHP en Foros del Web. Buenas compañerossss! estoy perdido en la paginacion en smarty he estado mirando un poco el manual, y existen alguna propiedades como step,rownum, o show para ...
  #1 (permalink)  
Antiguo 09/10/2008, 03:54
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
paginacion en templates. *.tpl

Buenas compañerossss! estoy perdido en la paginacion en smarty he estado mirando un poco el manual, y existen alguna propiedades como step,rownum, o show para intentar eso... pero no me sale... :(

a ver si alguien me puede echar un cable... os mando el codigo ( consulta) a paginar... es una pagina con smarty. :)

Código PHP:
<p>    {$resultatstpl[sect].data}{$paginacio}</p>
        
    <
table width="200" border="1">
    <
tr>    
        <
th scope="col">Vaca/Codi</th>
        <
th scope="col">Herd_id</th>
        <
th scope="col">Lactació</th>
        <
th scope="col">Del</th>
        <
th scope="col">Llet</th>
        <
th scope="col">Grasa</th>
        <
th scope="col">Proteines</th>
        <
th scope="col">CCS</th>
        <
th scope="col">data</th>
    </
tr>    
        {
section name=sect loop=$resultatstpl step=1}
       <
tr>
           <
th scope="row">{$resultatstpl[sect].numvaca}</th>
        <
td>{$resultatstpl[sect].numramat}</td>
        <
td>{$resultatstpl[sect].lac}</td>
        <
td>{$resultatstpl[sect].del}</td>
        <
td scope="col">{$resultatstpl[sect].llet}</td>
        <
td>{$resultatstpl[sect].grasa}</td>
        <
td>{$resultatstpl[sect].proteines}</td>
        <
td scope="col">{$resultatstpl[sect].celules}</td>
        <
td>{$resultatstpl[sect].data}</td>
      </
tr>
       
       {/
section
     
</
table></p
con ese codigo me sale todo de golpe, y qusiera 20 resultados por pagina...
como lo puedo hacer?? la variable step me corta los resultados pero nada mas, y siempre muestra los mismos .. mmm nose... a ver si me pueden ayudar :P

gracias
  #2 (permalink)  
Antiguo 09/10/2008, 04:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: paginacion en templates. *.tpl

No recuerdo que smarty venga con paginacion. Lo que debes hacer es pasarle en $resultatstpl el array de los registros que quieres mostrar (la pagina que quieres mostrar). Tu tienes que generar ese array a partir de la consulta con LIMIT , con los calculos necesarios.

smarty solo sustituye al codigo PHP que recorria los registros, no a toda la logica que creaba la consulta. Es cambiar el foreach o while que usabas antes por el {section}.
  #3 (permalink)  
Antiguo 09/10/2008, 04:40
 
Fecha de Ingreso: abril-2008
Mensajes: 144
Antigüedad: 16 años
Puntos: 1
Respuesta: paginacion en templates. *.tpl

Cita:
Iniciado por DarkJ Ver Mensaje
No recuerdo que smarty venga con paginacion. Lo que debes hacer es pasarle en $resultatstpl el array de los registros que quieres mostrar (la pagina que quieres mostrar). Tu tienes que generar ese array a partir de la consulta con LIMIT , con los calculos necesarios.

smarty solo sustituye al codigo PHP que recorria los registros, no a toda la logica que creaba la consulta. Es cambiar el foreach o while que usabas antes por el {section}.
mmm si te he entendido bien, es hacer distintos arrays? o sea controlar el tema de la paginacion desde el php y luego jugar cno el section ?? es asi?

gracias
  #4 (permalink)  
Antiguo 09/10/2008, 09:48
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
Respuesta: paginacion en templates. *.tpl

En efecto, toda la paginación se hace en tu logica (en el archivo PHP), y solo le mandas a Smarty los datos que quieres mostrar (en este caso tu array con la pagina actual).

Saludos.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:52.