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.==
 
  
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.
 
  
 +
===DATAGRID FACIL DE CREAR.===
  
 +
*'''setFieldsAndHeaders($valor)'''
  
===setValue($field_id, $field)===
+
$valor = 'id: código';
 
+
donde id es el campo de la tabla y código es un string a mostrar.
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>
 
 
 
  
===setTextLower($field)===
+
*'''caption'''
 
+
$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>
 
</source>
  
===setTypeMoney($field)===
+
*'''edit''', '''delete'''
 
+
Si existe un formulario por parte del programador estas funciones
Formato de salida de un campo numerico
+
redireccionan a un controller personalizado, debe indicar el controller_name y action_name por defecto envia el id, a la accion
El archivo config/datagrid.ini tiene información para el signo y separadores.
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->edit = 'usuarios/edit';
$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->delete = 'clientes/delete';
$dataGrid = new($Clientes);
 
$dataGrid->setTypeNumeric('cantidad');
 
 
</source>
 
</source>
  
 
+
*'''delete_confirm'''
 
+
En caso que estubiera activo el delete se puede agregar un mensaje de confirmacion para eliminar.
===setTypePercent($field)===
+
por defecto viene desactivado, se pueden pasar el campo a confirmar dentro de { }.
 
 
Formato de salida de un campo numerico
 
El archivo config/datagrid.ini tiene información adicional.
 
$field: campo del modelo
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete_confirm = '¿Desea elmimar este registro?';
$dataGrid->setTypePercent('porcentaje');
 
 
</source>
 
</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">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete_confirm = '¿Desea elmimar el registro {id}?';
$dataGrid->setMimes('xls: verExcel', 'pdf: verPdf');
 
 
</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">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->delete_confirm = '¿Desea elmimar este registro {nombre}, {apellido}?';
$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>
 
 
 
===setClass($fields, $data=array())===
 
Asigna una clase "CSS" al campo que se despliega según su valor
 
 
 
 
 
$field: nombre del campo
 
$data: array de parametros
 
 
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes);
 
$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>
 
</source>
  
===ignore($field)===
+
*'''setMimes($valores)'''
No muestra un campo del molelo en la grilla
 
$field: campo del modelo
 
  
<source lang="php">
+
$valores = 'xls: verXls';
$dataGrid = new($Clientes);
 
$dataGrid->ignore('id');
 
</source>
 
  
===createCol($caption, $html)===
+
primer parametro es el nombre de la imagen que se encuentra en public/img/dataGrid/*.gif la extencion es gif.
Crea una nueva columna a la grilla
+
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
$caption: Nombre de la columna.
+
pdf por: 'usuario, cliente, etc...'.
 
 
$html: crea un html para ser visualizado
 
  
 
<source lang="php">
 
<source lang="php">
$dataGrid = new($Clientes);
+
$dataGrid->setMimes('xls: descargarXls', 'pdf: verPdf', 'txt: archivoPlano');
$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>
  
o
+
*'''order_fields'''
 +
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);
+
$dataGrid->order_fields = true;
$dataGrid->createCol('PRIMER V°B°', '');
 
 
</source>
 
</source>
  
===create = $url ===
 
Visualiza una imagen sobre la grilla y crea un link a la accion crear
 
  
$url: nombre del controlador más la accion
+
para finalizar y llamar al partial debe ser de esta manera
  
ej: http://dominio.com/kumbia/clientes/create
 
  
 
+
===USO BASICO===
<source lang="php">
 
$dataGrid = new($Clientes);
 
$dataGrid->edit = $controller_name . '/create';
 
</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">
 
$dataGrid = new($Clientes);
 
$dataGrid->edit = $controller_name . '/edit';
 
</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">
 
$dataGrid = new($Clientes);
 
$dataGrid->delete = $controller_name . '/delete';
 
$dataGrid->delete_confirm = '¿Desea elmimar este registro {nombre}, {apellido}?';
 
</source>
 
 
 
===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
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->paginator_name = 'classic';
 
</source>
 
 
 
 
 
===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.
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->url = 'usurios/index';
 
</source>
 
 
 
===show = 10===
 
número de paginas que se mostraran en el paginador, por defecto 10.
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->show = 10;
 
</source>
 
 
 
===style = $name===
 
$name: nombre de la hoja de estilo ubicado en public/css/
 
 
 
<source lang="php">
 
$dataGrid = new($Clientes->paginate('per_page: 20'));
 
$dataGrid->style = 'default';
 
</source>
 
 
 
===Ejemplo 1 de Uso===
 
  
 
'''controller_clientes.php'''
 
'''controller_clientes.php'''
Línea 366: Línea 139:
 
     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===
+
 
 +
===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===
+
[[Archivo:dataGrid.jpg]]
Modelo Paises
 
 
 
[[Archivo:Model_paises.gif]]
 
 
 
[[Archivo:DataGrid2.png]]
 
  
===Descargar===
 
[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)