Datagrid Simple Con Paginado
De KumbiaPHP Framework Wiki
Revisión del 00:42 21 ago 2009 de 201.253.208.131 (discusión)
Partials para crear de forma simple con paginado un datagrid
En el controlador
<?php
class ClienteController extends ApplicationController {
public function page(){
// Paso el resultado de la consulta que sera mostrada en el datagrid
$this->result = Load::model('cliente')->find();
/* paso un array con los campos que quiero mostrar en la datagrid
* El key de cada campo del ser el nombre a mostrarse en el tr de la tabla
* El value el campo de la tabla
*/
$this->campos = array('Codigo' => 'id',
'Nombre' => 'nombre',
'Telefono' => 'telefono',
'Direccion' => 'direccion'));
// Nombre del Partial de paginado que utiliza KumbiaPHP
$this->paginator = 'extended';
/// Url que utilizara el Paginado de kumbia, por defecto utiliza la accion page
$this->url = null ;
}
}
// Se maneja todo desde la vista
Mas Informacion referida a las Partial de paginacion disponibles en el core de kumbia
KumbiaPHP_Framework_Versión_1.0_Spirit#Vistas_de_Paginaci.C3.B3n
En la vista
/app/view/cliente/page.phtml
<? View::partial('datagrid/paginado', false,array('Model'=>$result, 'Campos'=>$campos, 'Paginator'=>$paginator, 'Url'=>$url )) ?>
Partials
/app/view/partials/datagrid/paginado.phtml
<?php
/**
* Renderiza una tabla en base a un modelo.
*
* @author Andres Hal
*
* @param array $Modelo modelo con los resultados a mostrar
* @param array $Campos array con los que se quieren mostrar de la tabla
* @return partial
*/
?>
<div id="datagrid">
<table border="1px" class="paginado">"
<thead><tr>
<?php foreach( $Campos as $titulo => $valor): ?>
<th> <?php echo $titulo >?</th>
<?php endforeach; ?>
</tr></thead>
<tbody>
<? foreach( $Model->items as $model):
echo tr_color_class( 'tr_primary', 'tr_secondary' );
foreach($Campos as $campos): ?>
<td><?php echo $model->$campos ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody></table>
<?php View::partial('paginators/'. $Paginator, false, array('page' => $Model ,'url' => $Url)); ?>
</div>