Edición de «Helper Datagrid»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
== DATAGRID FACIL DE USAR.==
+
== DATAGRID FACIL DE CREAR.==
  
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
+
*'''setFieldsAndHeaders($valor)'''
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.
 
  
 
+
$valor = 'id: código';
 
+
donde id es el campo de la tabla y código es un string a mostrar.
===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
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->setFieldsAndHeaders('id: COD.', 'nombre: NOMBRE');
$dataGrid->setValue('paises_id', 'nombre');
 
 
</source>
 
</source>
  
  
<source lang=php>
+
En este ejemplo hay un campo perfiles_id, pero indicando  perfiles_nombre se visualiza el campo nombre de la tabla perfiles.
$dataGrid = new($Usuarios);
 
$dataGrid->setValue('roles_id', 'rol');
 
$dataGrid->setValue('paises_id', 'nombre');
 
$dataGrid->setValue('ciudades_id', 'ciudad');
 
</source>
 
 
 
 
 
===setCaption($field, $title)===
 
 
 
Cambia el nombre de una columna
 
$field: campo del modelo
 
$title: nombre a mostrar en la columna.
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->setFieldsAndHeaders('id: COD.', 'perfiles_nombre: PERFIL');
$dataGrid->setCaption('id', 'COD');
 
$dataGrid->setCaption('paises_id', 'PAIS');
 
 
</source>
 
</source>
  
  
===setTextUpper($field)===
+
*'''setColumnsAling($valor)'''
 
+
$valor = 'id: center';
Transforma toda la cadena de texto en letras Mayúsculas.
+
donde id es el campo de la tabla y center es la propiedad
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->setColumnsAling('id: center', 'nombre: left');
$dataGrid->setTextUpper('nombres');
+
</source>
</source>
 
  
 
+
*'''caption'''
===setTextLower($field)===
+
$tile: es un string que se muestra como titulo en la grilla.
 
 
Transforma toda la cadena de texto en letras minúsculas.
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->caption = $title;
$dataGrid->setTextLower('nombres');
 
 
</source>
 
</source>
  
 
+
*'''data_source'''
===setTextUpperFirst($field)===
+
Es una propiedad muy importante ya que se obtienen los datos a mostrar.
 
+
los datos son respuesta de un find, o un paginate.
Transforma en mayúscula la primera letra de la cadena de texto.
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->data_source = $this->Usuarios->find();
$dataGrid->setTextUpperFirst('nombres');
 
</source>
 
 
 
===setTextUpperWords($field)===
 
  
Transforma en mayúscula la primera letra de cada palabra de la cadena de texto.
+
$dataGrid->data_source = $this->Usuarios->find("nombre like '%al%'");
$field: campo del modelo
 
  
<source lang="php">
+
$dataGrid->data_source = Load::model('usurios')->paginate('per_page: 20', "page: $page", "order: $order $asc_desc");
$dataGrid = new($Clientes);
 
$dataGrid->setTextUpperWords('nombres');
 
 
</source>
 
</source>
  
 +
<u>En caso que la grilla tenga un paginador</u>
  
===setTypeDate($field)===
+
*'''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.
Formato de salida d/m/Y (01/01/2002) para base de datos mysql
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->url = 'usurios/index';
$dataGrid->setTypeDate('fecha');
 
 
</source>
 
</source>
  
===setTypeDateTime($field)===
+
*'''show'''
 
+
número de paginas que se mostraran en el paginador, por defecto 10.
Formato de salida d/m/Y H:m:s (01/01/2002 12:00:00) para base de datos mysql
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->show = 10;
$dataGrid->setTypeDate('fecha');
 
 
</source>
 
</source>
  
===setTypeImage($field)===
+
*'''paginator_name'''
  
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.
+
Es el nombre del paginador para la grilla por defecto usa el default
El archivo config/datagrid.ini tiene información del tamaño de la imagen redimensionada.
+
puede incluir paginadores del kumbia.
$field: campo del modelo
+
  Classic -  Digg -  Extended -  Punbb -  Simple
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->paginator_name = 'classic';
$dataGrid->setTypeImage('photo');
 
</source>
 
 
 
===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
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setTypeMoney('monto');
 
</source>
 
 
 
===setTypeNumeric($field)===
 
 
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información para los separadores.
 
$field: campo del modelo
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setTypeNumeric('cantidad');
 
</source>
 
 
 
 
 
 
 
===setTypePercent($field)===
 
 
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información adicional.
 
$field: campo del modelo
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setTypePercent('porcentaje');
 
</source>
 
 
 
===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
 
 
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setMimes('xls: verExcel', 'pdf: verPdf');
 
</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>
 
 
 
===setImage($fields, $data=array())===
 
Coloca una imagen según el campo. La imagen puede ser cualquier formato soportado y debe estar almacenada en img/datagrid/
 
 
 
 
 
$field: nombre del campo
 
$data: array de parametros
 
 
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setAlias('status', array('A'=>'Activo.png', 'D'=>'Desactivo.png'));
 
</source>
 
o
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->setAlias('numeros', array('0'=>'Cero.gif', '1'=>'Uno.gif', '2'=>'Dos.gif', '3'=>'Tres.gif', '4'=>'Cuatro.gif', '5'=>'Cinco.gif'));
 
 
</source>
 
</source>
  
===setClass($fields, $data=array())===
+
*'''edit, delete'''
Asigna una clase "CSS" al campo que se despliega según su valor
+
Si existe un formulario por parte del programador estas funciones
 
+
redireccionan a un controller personalizado, debe indicar el controller_name y action_name por defecto envia el id, a la accion
 
 
$field: nombre del campo
 
$data: array de parametros
 
 
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->edit = 'usuarios/edit';
$dataGrid->setClass('status', array('P'=>'text-color-red', 'A'=>'text-color-green', 'R'=>'text-bold'));
 
</source>
 
 
 
===auto_filter = true===
 
Genera por cada celda un select o combo para realizar búsquedas en la misma grilla.
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->auto_filter = true;
 
</source>
 
 
 
===ignoreAutoFilter(array($campos))===
 
Cuando se realiza un autofiltro, con esta funcion se puede eliminar filtros de una columna.
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->auto_filter = true;
 
$dataGrid->ignoreAutoFilter(array('id', 'status'));
 
</source>
 
 
 
===ignore($field)===
 
No muestra un campo del molelo en la grilla
 
$field: campo del modelo
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->ignore('id');
 
</source>
 
 
 
===createCol($caption, $html)===
 
Crea una nueva columna a la grilla
 
 
 
$caption: Nombre de la columna.
 
 
 
$html: crea un html para ser visualizado
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->createCol('APROBAR', '<div id="div_a_{id}">' . Html::img('yes.gif', 'APROBAR', 'onclick=aprobar({id}); class="manito" id="img_a_{id}"') . '</div>');
 
 
</source>
 
</source>
  
Línea 253: Línea 82:
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete = 'clientes/delete';
$dataGrid->createCol('PRIMER V°B°', '');
 
 
</source>
 
</source>
  
===create = $url ===
+
*'''delete_confirm'''
Visualiza una imagen sobre la grilla y crea un link a la accion crear
+
En caso que estubiera activo el delete se puede agregar un mensaje de confirmacion para eliminar.
 
+
por defecto viene desactivado, se pueden pasar el campo a confirmar dentro de { }.
$url: nombre del controlador más la accion
 
 
 
ej: http://dominio.com/kumbia/clientes/create
 
 
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete_confirm = '¿Desea elmimar este registro?';
$dataGrid->edit = $controller_name . '/create';
 
 
</source>
 
</source>
 
 
===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
 
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete_confirm = '¿Desea elmimar el registro {id}?';
$dataGrid->edit = $controller_name . '/edit';
 
 
</source>
 
</source>
 
===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
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->delete = controller_name . '/delete';
 
</source>
 
 
 
===delete_confirm = $msg===
 
Mensaje de alerta para la accion delete.
 
$msg: se puede visualizar el valor de un campo pasandoselo entre llaves {$field}.
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->delete = $controller_name . '/delete';
 
$dataGrid->delete_confirm = 'Desea elimina el registro {id}';
 
</source>
 
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
 
$dataGrid->delete = $controller_name . '/delete';
 
 
$dataGrid->delete_confirm = '¿Desea elmimar este registro {nombre}, {apellido}?';
 
$dataGrid->delete_confirm = '¿Desea elmimar este registro {nombre}, {apellido}?';
 
</source>
 
</source>
  
===paginator_name = $paginador===
+
*'''setMimes($valores)'''
 
 
$paginador: Nombre del paginador para la grilla por defecto usa el default
 
puede incluir paginadores del kumbia.
 
  Classic -  Digg -  Extended -  Punbb -  Simple
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->paginator_name = 'classic';
 
</source>
 
  
 +
$valores = 'xls: verXls';
  
===url = $url===
+
primer parametro es el nombre de la imagen que se encuentra en public/img/dataGrid/*.gif la extencion es gif.
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.
+
y el segundo parametro es la action que se será invocada en el mismo controlador que se encuentra el dataGrid.
 +
generea un icono al lado del registro, es util cuando el programador desea general una planilla excel o un
 +
pdf por: 'usuario, cliente, etc...'.
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes->paginate('per_page: 20'));
+
$dataGrid->setMimes('xls: descargarXls', 'pdf: verPdf', 'txt: archivoPlano');
$dataGrid->url = 'usurios/index';
 
 
</source>
 
</source>
  
===show = 10===
+
*'''order_fields'''
número de paginas que se mostraran en el paginador, por defecto 10.
+
Por defecto esta en false. sirve para realizar orden by a los campos pinchando en la cabezera de la grilla.
 +
se puede utilizar con o sin paginado
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes->paginate('per_page: 20'));
+
$dataGrid->order_fields = true;
$dataGrid->show = 10;
 
 
</source>
 
</source>
  
===style = $name===
 
$name: nombre de la hoja de estilo ubicado en public/css/
 
  
<source lang="php">
+
para finalizar y llamar al partial debe ser de esta manera
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->style = 'default';
 
</source>
 
  
===Ejemplo 1 de Uso===
+
===USO BASICO===
  
 
'''controller_clientes.php'''
 
'''controller_clientes.php'''
Línea 366: Línea 140:
 
     View::content();
 
     View::content();
 
     View::helpers('dataGrid');
 
     View::helpers('dataGrid');
     $dataGrid = new dataGrid($clientes);
+
     $dataGrid = new dataGrid();
     View::partial('datagrid/default',false,array('dataGrid'=>$dataGrid));
+
    $dataGrid->setFieldsAndHeaders('rut: RUT', 'dv: DV', 'nombre: NOMBRE/RAZON SOCIAL', 'giro: GIRO',
 +
    'direccion: DIRECCION', 'ciudades_nombre: CIUDAD');
 +
    $dataGrid->data_source = $clientes;
 +
     View::partial('dataGrid/default',false,array('dataGrid'=>$dataGrid));
 +
 
 
</source>
 
</source>
  
===Ejemplo 2 de Uso===
+
 
 +
===DATAGRID CON PAGINATOR===
  
 
'''controller_clientes.php'''
 
'''controller_clientes.php'''
 
<source lang="php">
 
<source lang="php">
     public function index($page=1)
+
     public function index($page=1, $field='nombre', $order='asc')
 
     {
 
     {
     $this->clientes = $this->Clientes->paginate('per_page: 20', "page: $page");
+
     $this->clientes = $this->Clientes->paginate('per_page: 20', "page: $page", "order: $field $order");
 
     }
 
     }
 
</source>
 
</source>
  
 
'''views/clientes/index.phtml'''
 
'''views/clientes/index.phtml'''
 
 
<source lang="php">
 
<source lang="php">
<?php View::content() ?>
+
<?php
<?php View::helpers('dataGrid'); ?>
+
    View::content();
<?php
+
    View::helpers('dataGrid');
     $dataGrid = new dataGrid($clientes);
+
     $dataGrid = new dataGrid();
     $dataGrid->setValue('ciudades_id', 'nombre');
+
     $dataGrid->setFieldsAndHeaders('rut: RUT', 'dv: DV', 'nombre: NOMBRE/RAZON SOCIAL', 'giro: GIRO',
    $dataGrid->setTextLower('nombre');
+
     'direccion: DIRECCION', 'ciudades_nombre: CIUDAD');
    $dataGrid->setTypeImage('photo');
+
     $dataGrid->edit = $controller_name . '/edit';
     $dataGrid->setMimes('xls: verXls');
+
     $dataGrid->delete = $controller_name . '/delete';
    $dataGrid->ignore('id');
+
     $dataGrid->delete_confirm = '¿Desea eliminar este registro {rut}-{dv}, {nombre}?';
    $dataGrid->setCaption('ciudades_id', 'CIUDAD');
+
$dataGrid->order_fields = true;
     $dataGrid->delete = $controller_name . '/delete';
+
    $dataGrid->data_source = $clientes;
     $dataGrid->edit = $controller_name . '/edit';
+
    View::partial('dataGrid/default',false,array('dataGrid'=>$dataGrid));
     $dataGrid->delete_confirm = 'Eliminar el registro {rut}-{dv}';
 
 
?>
 
?>
<?php View::partial('datagrid/default',false,array('dataGrid'=>$dataGrid)); ?>
 
 
</source>
 
</source>
  
===Screenshots===
 
Modelo Paises
 
 
[[Archivo:Model_paises.gif]]
 
 
[[Archivo:DataGrid2.png]]
 
  
===Descargar===
+
[[Archivo:dataGrid.jpg]]
[https://sourceforge.net/projects/helperdatagrid/files/dataGrid%20Jquery-ui%20Beta1%20rc0.9.tar.gz/download Descargar] para '''Spirit v1.0 beta1''' con temas de jquery-ui
 
  
  
 +
[https://sourceforge.net/projects/helperdatagrid/ Descargar]
  
  
  
 
[[Categoría:Helpers]]
 
[[Categoría:Helpers]]
[[Categoría:Tutoriales KumbiaPHP]]
 

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)