Diferencia entre revisiones de «Datagrid Simple»

De KumbiaPHP Framework Wiki
(Página creada con ' //datagrid_paginator($Obj =null, $Campos=null, $paginator="simple", $url=null ){ //Modo de uso /* View::partial('datagrid/simple', false, array( 'Mode...')
 
 
(No se muestran 28 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
 +
[[KumbiaPHP_Framework_Versión_1.0_Spirit#views.2Fpartials.2F |Partials]] para crear de forma simple un datagrid
  
 +
=== En el controlador ===
 +
Para efecto del ejemplo tenemos el siguiente controller, pero puede ser cualquiera.
  
//datagrid_paginator($Obj =null, $Campos=null, $paginator="simple", $url=null ){
+
<source lang="php">
 +
<?php
 +
class ClienteController extends ApplicationController {
  
//Modo de uso
+
public function page(){
/*
+
        // Paso el resultado de la consulta que sera mostrada en el datagrid
  View::partial('datagrid/simple',
+
        $this->result = Load::model('cliente')->find();
  false,
 
array( 'Modelo' => Load::model('dirigente')->find() ,
 
'Campos' => array( 'Codigo' => 'id',
 
'Nombre' => 'nombre',
 
'Telefono' => 'telefono',
 
'Direccion' => 'direccion'))
 
)
 
*/
 
  
echo "<div id=\"datagrid\">";
+
        /* paso un array con los campos que quiero mostrar en la datagrid
echo "<table border=\"1px\" class=\"simple\">";
+
        * El key de cada campo del ser el nombre a mostrarse en el tr de la tabla
echo "<thead><tr>";
+
        * El value el campo de la tabla
foreach( $Campos as $titulo => $valor):
+
        */  
echo "<th>" . $titulo . "</th>";
+
$this->campos = array('Codigo' => 'id',
endforeach;
+
      'Nombre' => 'nombre',
echo "</tr></thead><tbody>";
+
      'Telefono' => 'telefono',
foreach( $Modelo as $model):
+
      'Direccion' => 'direccion');
echo tr_color_class( 'tr_primary', 'tr_secondary' );
+
}
foreach($Campos as  $campos):
 
echo "<td>". $model->$campos . "</td>";
 
endforeach;
 
echo "</tr>";
 
endforeach;
 
echo "</tbody></table></div>";
 
  
 +
}
 +
//  Se maneja todo desde la vista
 +
</source>
 +
 +
=== En la vista ===
 +
 +
/app/view/cliente/page.phtml
 +
<source lang="php">
 +
<?php
 +
<? View::partial('datagrid/simple',false,array('Model'=>$result, 'Campos'=>$campos)); ?>
 +
?>
 +
</source>
 +
 +
=== Partials ===
 +
 +
/app/view/partials/datagrid/simple.phtml
 +
 +
<source lang="php">
 +
 +
<?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>
 +
</source>
 +
 +
== Resultado Final ==
 +
 +
[[Archivo:Datagrid_simple.JPG|500px|thumb|center|Resultado Final]]
 +
 +
[[Categoría:Views]]
 
[[Categoría:Partials]]
 
[[Categoría:Partials]]

Revisión actual del 13:45 7 oct 2009

Partials para crear de forma simple un datagrid

En el controlador[editar]

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[editar]

/app/view/cliente/page.phtml

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

Partials[editar]

/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>

Resultado Final[editar]

Resultado Final