Datagrid Simple

De KumbiaPHP Framework Wiki
Resultado Final

Partials para crear de forma simple un datagrid

En el controlador

Para efecto del ejemplo tenemos el siguiente controller, pero puede ser cualquiera.

<?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');
	}

}
//  Se maneja todo desde la vista

En la vista

/app/view/cliente/page.phtml

<?php	 
 <? View::partial('datagrid/simple',false,array('Model'=>$result, 'Campos'=>$campos)); ?>
?>

Partials

/app/view/partials/datagrid/simple.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="simple">
		<thead><tr>
			<?php foreach( $Campos  as $titulo => $valor): ?>
				<th> <?php echo $titulo ?></th>
			<?php endforeach; ?>
		</tr></thead>
                <tbody>
			<?php foreach( $Model 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>
	</div>