Gridconhtmlypager
De CidesaWiki
Revisión a fecha de 19:58 26 mar 2007; Lhernandez (Discusión | contribuciones)
Esta explicación funciona para modulos generados con el propel-admin. Este código se encuentra en el módulo "nomjorlablot" de la aplicación de nómina de Siga Software Libre.
- Se debe generar el objeto Pager en el Acction.class
public function executeEdit() { $c = new Criteria(); $this->pagerNphojint = NphojintPeer::getPagerByCriteria($c,$this->getRequestParameter('page',1)); parent::executeEdit(); }
la función NphojintPeer::getPagerByCriteria() fue generada para que hiciera la consulta a la base de datos y retornada el objeto Pager.
- Se pasa a través del editSuccess.php la variable pagerNphojint del ejemplo al objeto parcial (en este caso _edit_form.php).
<?php include_partial('nomjorlablot/edit_form', array('npdefjorlab' => $npdefjorlab, 'labels' => $labels, 'pagerNphojint' => $pagerNphojint)) ?>
- Se debe colocar en el _edit_form.php el siguiente codigo para generar la nueva tabla.
<fieldset> <legend>Empleados Asignados a la Jornada</legend> <table border="0" class="sf_admin_list"> <thead> <tr> <th><?php echo 'Estado' ?></th> <th><?php echo NphojintPeer::getColumName(NphojintPeer::CEDEMP) ?></th> <th><?php echo NphojintPeer::getColumName(NphojintPeer::NOMEMP) ?></th> </tr> </thead> <tbody> <?php $i = 1; foreach ($pagerNphojint->getResults() as $Nphojint): $odd = fmod(++$i, 2) ?> <tr class="sf_admin_row_<?php echo $odd ?>"> <td><?php echo checkbox_tag($Nphojint->getId(),'1',false) ?></td> <td><?php echo $Nphojint->getCedemp() ?></td> <td><?php echo $Nphojint->getNomemp() ?></td> </tr> <?php endforeach; ?> </tbody> <tfoot> <tr><th colspan="5"> <div class="float-right"> <?php if ($pagerNphojint->haveToPaginate()): ?> <?php echo link_to(image_tag(sfConfig::get('sf_admin_web_dir').'/images/first.png', array('align' => 'absmiddle', 'alt' => __('First'), 'title' => __('First'))), 'nomjorlablot/list?page=1') ?> <?php echo link_to(image_tag(sfConfig::get('sf_admin_web_dir').'/images/previous.png', array('align' => 'absmiddle', 'alt' => __('Previous'), 'title' => __('Previous'))), 'nomjorlablot/list?page='.$pagerNphojint->getPreviousPage()) ?> <?php foreach ($pagerNphojint->getLinks() as $page): ?> <?php echo link_to_unless($page == $pagerNphojint->getPage(), $page, 'nomjorlablot/list?page='.$page) ?> <?php endforeach; ?> <?php echo link_to(image_tag(sfConfig::get('sf_admin_web_dir').'/images/next.png', array('align' => 'absmiddle', 'alt' => __('Next'), 'title' => __('Next'))), 'nomjorlablot/edit?page='.$pagerNphojint->getNextPage()) ?> <?php echo link_to(image_tag(sfConfig::get('sf_admin_web_dir').'/images/last.png', array('align' => 'absmiddle', 'alt' => __('Last'), 'title' => __('Last'))), 'nomjorlablot/edit?page='.$pagerNphojint->getLastPage()) ?> <?php endif; ?> </div> <?php echo format_number_choice('[0] no result|[1] 1 result|(1,+Inf] %1% results', array('%1%' => $pagerNphojint->getNbResults()), $pagerNphojint->getNbResults()) ?> </th></tr> </tfoot> </table> </fieldset>
- <thead> marca la cabecera de la tabla, alli se debe colocar la información de los nombres de campos a colocar en la tabla (nombre de columnas). Este nombre de columnas fueron colcoadas en la clase NphojintPeer::getColumName(NphojintPeer::CEDEMP). Esta funcion fue creada de la siguiente forma en la clase NphojintPeer:
const COLUMNS = 'columns'; private static $columsname = array ( self::COLUMNS => array (NphojintPeer::CEDEMP => 'Cedula', NphojintPeer::NOMEMP => 'Nombre', NphojintPeer::ID => 'Id', ),); static public function getColumName($colum) { return self::$columsname[self::COLUMNS][$colum]; }
- <tbody> muestra los registros de la tabla. Hay que tomar en cuenta que el Pager tiene la información de paginada, y hay que colocar los registros de objetos html que necesitemos, en este caso la primera celda de cada registro de la tabla tiene un checkbox delante.
<td><?php echo checkbox_tag($Nphojint->getId(),'1',false) ?></td>
- En <tfoot> se colocan los links para el paginador, << < 1 2 3 > >>, los cuales manejan las paginas de la tabla.
- TODO: Como manejar los objetos html dentro de la tabla para guardarlos o manejarlos.
- Listo.............