Diferencia entre revisiones de «Helper Datagrid»

De KumbiaPHP Framework Wiki
Línea 8: Línea 8:
  
  
===setValue($campo_id, $campo)===
+
===setValue($field_id, $field)===
  
 
Asigna un campo a mostrar de la tabla _id
 
Asigna un campo a mostrar de la tabla _id
$campo_id: campo_id del modelo.
+
$field_id: campo_id del modelo.
$campo: nombre del campo que se encuentra en la tabla relacionada
+
$field: nombre del campo que se encuentra en la tabla relacionada
  
 
<source lang="php">
 
<source lang="php">
Línea 28: Línea 28:
  
  
===setCaption($campo, $title)===
+
===setCaption($field, $title)===
  
 
Cambia el nombre de una columna
 
Cambia el nombre de una columna
$campo: campo del modelo
+
$field: campo del modelo
 
$title: nombre a mostrar en la columna.
 
$title: nombre a mostrar en la columna.
  
Línea 41: Línea 41:
  
  
===setTextUpper($campo)===
+
===setTextUpper($field)===
  
 
Transforma toda la cadena de texto en letras Mayúsculas.
 
Transforma toda la cadena de texto en letras Mayúsculas.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 52: Línea 52:
  
  
===setTextLower($campo)===
+
===setTextLower($field)===
  
 
Transforma toda la cadena de texto en letras minúsculas.
 
Transforma toda la cadena de texto en letras minúsculas.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 63: Línea 63:
  
  
===setTextUpperFirst($campo)===
+
===setTextUpperFirst($field)===
  
 
Transforma en mayúscula la primera letra de la cadena de texto.
 
Transforma en mayúscula la primera letra de la cadena de texto.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 73: Línea 73:
 
</source>
 
</source>
  
===setTextUpperWords($campo)===
+
===setTextUpperWords($field)===
  
 
Transforma en mayúscula la primera letra de cada palabra de la cadena de texto.
 
Transforma en mayúscula la primera letra de cada palabra de la cadena de texto.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 84: Línea 84:
  
  
===setTypeDate($campo)===
+
===setTypeDate($field)===
  
 
Formato de salida d/m/Y (01/01/2002) para base de datos mysql
 
Formato de salida d/m/Y (01/01/2002) para base de datos mysql
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 94: Línea 94:
 
</source>
 
</source>
  
===setTypeImage($campo)===
+
===setTypeImage($field)===
  
 
Muestra una imagen que se encuentra en la carpeta img/, es decir, solo se almacena el nombre de la imagen en formato jpg, gif o png. Debe existir un subdirectorio llamdo thumbs el cual almacena las imagenes redimencionadas.  
 
Muestra una imagen que se encuentra en la carpeta img/, es decir, solo se almacena el nombre de la imagen en formato jpg, gif o png. Debe existir un subdirectorio llamdo thumbs el cual almacena las imagenes redimencionadas.  
 
El archivo config/datagrid.ini tiene información del tamaño de la imagen redimensionada.
 
El archivo config/datagrid.ini tiene información del tamaño de la imagen redimensionada.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 105: Línea 105:
 
</source>
 
</source>
  
===setTypeMoney($campo)===
+
===setTypeMoney($field)===
  
 
Formato de salida de un campo numerico
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información para el signo y separadores.
 
El archivo config/datagrid.ini tiene información para el signo y separadores.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 116: Línea 116:
 
</source>
 
</source>
  
===setTypeNumeric($campo)===
+
===setTypeNumeric($field)===
  
 
Formato de salida de un campo numerico
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información para los separadores.
 
El archivo config/datagrid.ini tiene información para los separadores.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 129: Línea 129:
  
  
===setTypePercent($campo)===
+
===setTypePercent($field)===
  
 
Formato de salida de un campo numerico
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información adicional.
 
El archivo config/datagrid.ini tiene información adicional.
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 154: Línea 154:
 
</source>
 
</source>
  
 +
===setAlias($fields, $data=array())===
 +
Crea alias a los datos que se encuentran en la tabla
 +
 +
$field: nombre del campo
 +
$data: array de parametros
 +
 +
 +
<source lang="php">
 +
$dataGrid = new($Clientes);
 +
$dataGrid->setAlias('status', array('A'=>'Activo', 'D'=>'Desactivo'));
 +
</source>
 +
o
 +
<source lang="php">
 +
$dataGrid = new($Clientes);
 +
$dataGrid->setAlias('numeros', array('0'=>'Cero', '1'=>'Uno', '2'=>'Dos', '3'=>'Tres', '4'=>'Cuatro', '5'=>'Cinco'));
 +
</source>
  
 
===auto_filter = true===
 
===auto_filter = true===
Línea 163: Línea 179:
 
</source>
 
</source>
  
===ignore($campo)===
+
===ignore($field)===
 
No muestra un campo del molelo en la grilla
 
No muestra un campo del molelo en la grilla
$campo: campo del modelo
+
$field: campo del modelo
  
 
<source lang="php">
 
<source lang="php">
Línea 215: Línea 231:
 
===delete_confirm = $msg===
 
===delete_confirm = $msg===
 
Mensaje de alerta para la accion delete.
 
Mensaje de alerta para la accion delete.
$msg: se puede visualizar el valor de un campo pasandoselo entre llaves {$campo}.
+
$msg: se puede visualizar el valor de un campo pasandoselo entre llaves {$field}.
  
 
<source lang="php">
 
<source lang="php">

Revisión del 01:38 3 mar 2010

DATAGRID FACIL DE USAR.

Invocando el helper datagrid y pasando el model se crea automáticamente una grilla con los campos (fields). La forma de modificar el diseño del datagrid es 100% hoja estilo 'CSS'. También con un poco de programación podrás ocultar campos, cambiar los titulos de los campos, crear link por fila el cual llamara una acción pasando el id como parámetro, link para editar y eliminar, personalizar mensajes de advertencias. asignar el tipo de campo que se está visualizando (moneda, número, porcentaje o una imagen). crear paginado.


setValue($field_id, $field)

Asigna un campo a mostrar de la tabla _id $field_id: campo_id del modelo. $field: nombre del campo que se encuentra en la tabla relacionada

$dataGrid	=	new($Clientes);
$dataGrid->setValue('paises_id', 'nombre');


$dataGrid	=	new($Usuarios);
$dataGrid->setValue('roles_id', 'rol');
$dataGrid->setValue('paises_id', 'nombre');
$dataGrid->setValue('ciudades_id', 'ciudad');


setCaption($field, $title)

Cambia el nombre de una columna $field: campo del modelo $title: nombre a mostrar en la columna.

$dataGrid	=	new($Clientes);
$dataGrid->setCaption('id', 'COD');
$dataGrid->setCaption('paises_id', 'PAIS');


setTextUpper($field)

Transforma toda la cadena de texto en letras Mayúsculas. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTextUpper('nombres');


setTextLower($field)

Transforma toda la cadena de texto en letras minúsculas. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTextLower('nombres');


setTextUpperFirst($field)

Transforma en mayúscula la primera letra de la cadena de texto. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTextUpperFirst('nombres');

setTextUpperWords($field)

Transforma en mayúscula la primera letra de cada palabra de la cadena de texto. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTextUpperWords('nombres');


setTypeDate($field)

Formato de salida d/m/Y (01/01/2002) para base de datos mysql $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTypeDate('fecha');

setTypeImage($field)

Muestra una imagen que se encuentra en la carpeta img/, es decir, solo se almacena el nombre de la imagen en formato jpg, gif o png. Debe existir un subdirectorio llamdo thumbs el cual almacena las imagenes redimencionadas. El archivo config/datagrid.ini tiene información del tamaño de la imagen redimensionada. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTypeImage('photo');

setTypeMoney($field)

Formato de salida de un campo numerico El archivo config/datagrid.ini tiene información para el signo y separadores. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTypeMoney('monto');

setTypeNumeric($field)

Formato de salida de un campo numerico El archivo config/datagrid.ini tiene información para los separadores. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTypeNumeric('cantidad');


setTypePercent($field)

Formato de salida de un campo numerico El archivo config/datagrid.ini tiene información adicional. $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->setTypePercent('porcentaje');

setMimes($params=array())

Visualiza un icono con un link a una accion al final de la fila para cada registro.

array $params: array de parametros

el primer paramtro es el nombre de la imagen que se encuentra en la carpeta img/ con extensión gif. 'xls:' el siguiente es el nombre de la accion que se encuetra en el mismo controlador creada la grilla, envia el id. ej: http://dominio.com/kumbia/clientes/verExcel/11


$dataGrid	=	new($Clientes);
$dataGrid->setMimes('xls: verExcel', 'pdf: verPdf');

setAlias($fields, $data=array())

Crea alias a los datos que se encuentran en la tabla

$field: nombre del campo $data: array de parametros


$dataGrid	=	new($Clientes);
$dataGrid->setAlias('status', array('A'=>'Activo', 'D'=>'Desactivo'));

o

$dataGrid	=	new($Clientes);
$dataGrid->setAlias('numeros', array('0'=>'Cero', '1'=>'Uno', '2'=>'Dos', '3'=>'Tres', '4'=>'Cuatro', '5'=>'Cinco'));

auto_filter = true

Genera por cada celda un select o combo para realizar búsquedas en la misma grilla.

$dataGrid	=	new($Clientes);
$dataGrid->auto_filter = true;

ignore($field)

No muestra un campo del molelo en la grilla $field: campo del modelo

$dataGrid	=	new($Clientes);
$dataGrid->ignore('id');

create = $url

Visualiza una imagen sobre la grilla y crea un link a la accion crear

$url: nombre del controlador más la accion

ej: http://dominio.com/kumbia/clientes/create


$dataGrid	=	new($Clientes);
$dataGrid->edit	=	$controller_name . '/create';


edit = $url

Visualiza un icono con un link a una accion al final de la fila para cada registro.

$url: nombre del controlador más la accion, es devuelta con su id

ej: http://dominio.com/kumbia/clientes/edit/11


$dataGrid	=	new($Clientes);
$dataGrid->edit	=	$controller_name . '/edit';

delete = $url

Visualiza un icono con un link a una accion al final de la fila para cada registro.

$url: nombre del controlador más la accion, es devuelta con su id

ej: http://dominio.com/kumbia/clientes/delete/11


$dataGrid		=	new($Clientes);
$dataGrid->delete	=	controller_name . '/delete';


delete_confirm = $msg

Mensaje de alerta para la accion delete. $msg: se puede visualizar el valor de un campo pasandoselo entre llaves {$field}.

$dataGrid			=	new($Clientes);
$dataGrid->delete		=	controller_name . '/delete';
$dataGrid->delete_confirm	=	'Desea elimina el registro {id}';


$dataGrid			=	new($Clientes);
$dataGrid->delete		=	controller_name . '/delete';
$dataGrid->delete_confirm	=	'¿Desea elmimar este registro {nombre}, {apellido}?';


paginator_name = $paginador

$paginador: Nombre del paginador para la grilla por defecto usa el default puede incluir paginadores del kumbia.

  Classic -   Digg -   Extended -   Punbb -   Simple
$dataGrid			=	new($Clientes->paginate('per_page: 20'));
$dataGrid->paginator_name	=	'classic';


url = $url

Si utiliza paginator la grilla se debe indicar la url para el paginado, sino se indica por defecto obtiene el nombre del controlador y su accion de donde fue creado el dataGrid.

$dataGrid		=	new($Clientes->paginate('per_page: 20'));
$dataGrid->url		=	'usurios/index';

show = 10

número de paginas que se mostraran en el paginador, por defecto 10.

$dataGrid		=	new($Clientes->paginate('per_page: 20'));
$dataGrid->show		=	10;

style = $name

$name: nombre de la hoja de estilo ubicado en public/css/

$dataGrid		=	new($Clientes->paginate('per_page: 20'));
$dataGrid->style	=	'default';

Ejemplo 1 de Uso

controller_clientes.php

public function index()
{
	$this->clientes 	=	$this->Clientes->find("order: nombre");;
}

views/clientes/index.phtml

    	View::content();
    	View::helpers('dataGrid');
    	$dataGrid			=	new dataGrid($clientes);
    	View::partial('datagrid/default',false,array('dataGrid'=>$dataGrid));

Ejemplo 2 de Uso

controller_clientes.php

    public function index($page=1)
    {
    	$this->clientes	= $this->Clientes->paginate('per_page: 20', "page: $page");
    }

views/clientes/index.phtml

<?php View::content() ?>
<?php View::helpers('dataGrid'); ?>
<?php 
    	$dataGrid					=	new dataGrid($clientes);
    	$dataGrid->setValue('ciudades_id', 'nombre');
    	$dataGrid->setTextLower('nombre');
    	$dataGrid->setTypeImage('photo');
    	$dataGrid->setMimes('xls: verXls');
    	$dataGrid->ignore('id');
    	$dataGrid->setCaption('ciudades_id', 'CIUDAD');
    	$dataGrid->delete	=	$controller_name . '/delete';
    	$dataGrid->edit		=	$controller_name . '/edit';
    	$dataGrid->delete_confirm	=	'Eliminar el registro {rut}-{dv}';
?>
<? View::partial('datagrid/default',false,array('dataGrid'=>$dataGrid)); ?>


Screenshots

Modelo Paises

Model paises.gif

  • paises_controller.php
 
class PaisesController extends ApplicationController{
    public function index($page=1)
    {
    	$this->paises 	=	Load::model('paises')->paginate('per_page: 10', "page: $page");
    }
}
  • views/paises/index.phtml
 
<?php View::content() ?>
<?php View::helpers('dataGrid'); ?>
<?php 
    	$dataGrid			=	new dataGrid($paises);
	$dataGrid->setCaption('nombre', 'PAIS');
	$dataGrid->setTypeImage('imagen');
    	$dataGrid->edit			=	$controller_name . '/edit';
    	$dataGrid->delete		=	$controller_name . '/delete';
    	$dataGrid->delete_confirm	=	'¿Desea eliminar el pais:  {nombre}?';

?>
<? View::partial('datagrid/default',false,array('dataGrid'=>$dataGrid)); ?>

Pantallazo.png


Descargar

Descargar