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