Diferencia entre revisiones de «Datagrid Simple Con Paginado»

De KumbiaPHP Framework Wiki
Línea 4: Línea 4:
  
 
<source lang="php">
 
<source lang="php">
  falta
+
  <?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
 
</source>
 
</source>
  
Línea 10: Línea 34:
  
 
<source lang="php">
 
<source lang="php">
View::partial('datagrid/paginado', //nombre del partial
+
      View::partial('datagrid/paginado', false,array('Model'=>$result, 'Campos'=>$campos, 'Paginator'=>$paginator, 'Url'=> null ))
  false, //sin cache
 
array( 'Modelo' => $page , // Paso el modelo que voy a utilizar
 
'Campos' => array( 'Codigo' => 'id', // paso un array con los campos que quiero mostrar
 
'Nombre' => 'nombre',
 
'Telefono' => 'telefono',
 
'Direccion' => 'direccion'),
 
'paginator' => 'extended', //que paginador definido en Kumbia quiero utilizar
 
'url' => null) //por defecto utiliza el controlador page
 
)
 
 
 
 
</source>
 
</source>
  
Línea 28: Línea 42:
  
 
<source lang="php">
 
<source lang="php">
echo "<div id=\"datagrid\">";
+
<?php
echo "<table  border=\"0px\" class=\"paginator\">";
+
/**
+
* Renderiza una tabla en base a un modelo.
echo "<thead><tr>";
+
*
foreach( $Campos  as $titulo => $valor):
+
* @author Andres Hal
echo "<th>" . $titulo . "</th>";
+
*
endforeach;
+
* @param array $Modelo modelo con los resultados a mostrar
echo "</tr></thead><tbody>";
+
* @param array $Campos array con los que se quieren mostrar de la tabla
foreach( $Modelo->items as $model):
+
* @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( $Modelo->items as $model):
 
echo tr_color_class( 'tr_primary', 'tr_secondary' );
 
echo tr_color_class( 'tr_primary', 'tr_secondary' );
foreach($Campos as  $campos):
+
foreach($Campos as  $campos): ?>
echo "<td>". $model->$campos . "</td>";
+
    <td><?php echo $model->$campos ?></td>
endforeach;
+
      <?php endforeach; ?>
echo "</tr>";
+
</tr>
endforeach;
+
<?php endforeach; ?>
echo "</tbody></table>";
+
</tbody></table>
 +
</div>
 
 
View::partial('paginators/'. $paginator, false, array('page' => $Modelo ,'url' => $url));  
+
<?php View::partial('paginators/'. $Paginator, false, array('page' => $Modelo ,'url' => $url)); ?>
 
 
 
 

Revisión del 00:17 21 ago 2009

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

En la vista

       View::partial('datagrid/paginado', false,array('Model'=>$result, 'Campos'=>$campos, 'Paginator'=>$paginator, 'Url'=> null ))

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( $Modelo->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>
	</div>
		
	<?php	View::partial('paginators/'. $Paginator, false, array('page' => $Modelo ,'url' => $url)); ?>
		
		
		
		echo "</div>";