Tablas – Crear tabla y añadir acciones

Creación de Tabla

La clase de estilos para la tabla en Classlife es:

  • «table» // Otorga estilo tipo tabla

  • «table-hover» // Ilumina la fila que el usuario tiene activa con el recorrido del mouse

  • «tsort» // Activa DataTables local. Se recomienda para su uso únicamente en tablas de menos de mil registros.»

  • «asort» // Activa DataTables ajax. Obligatorio para tablas de mas de mil registros.»

Estructura de la Tabla

<thead>

El <thead> es obligatorio para la activación de DataTables. Se declaran los títulos de las columnas de la tabla.

<td><?= _e(‘Titulo1’);?></td> // Utilizaremos el método _e() que conecta con el sistema de traducciones de los strings.

Además añadimos una columna sin título donde posteriormente mostraremos las acciones: <td></td>

<tbody>

A continuación creamos el contenido de datos de la tabla en el <tbody> y creamos un id de fila como muestra el ejemplo:

<tr **id="<?= $rowid = 'BBD-_'.$d['bebida_id'];?>**">

   <td>datos</td>

   <td>datos</td>

   <td>array de configuración de la acción</td>

</tr>

Como vemos en el ejemplo anterior en la etiqueta id de la fila creamos la variable $rowid que almacenará un prefijo nuevo de 3 letras en mayúsculas seguido de «-_» y del id de los datos que van a recibir la acción $d[‘bebida_id’]

Tal como se comentaba antes, la vista de la acción se sitúa en la columna sin título que hemos creado anteriormente. Por lo tanto en esta columna definiremos un array con parámetros de configuración y cargaremos el modulo de acciones de tabla.

Parámetros del array:

$cfg = array(
   'action'=> 'bebidas',   // Señala la tabla que va a recibir la acción
   'item'  => $d,          // Es la variable que hemos asignado a los valores del array en el foreach
   'rowid' => $rowid,      // Variable que creamos anteriormente
   'edit'  => false);      // Permite o restringe  la edición e datos

También es posible añadir un parámetro opcional en el array que bloquea la eliminación de datos para los usuarios sin privilegios si su valor es 1:

$cfg[‘blockremove’] = 1;

Con esta configuración ya podemos llamar al modulo que va a permitir eliminar los datos de nuestra tabla, al que le vamos a dar el array que hemos creado:

load(‘admin/list.actions’,’modules’, $cfg);

Para que funcione correctamente es necesario editar el fichero app/ajax/helpers/delete.php

Para ello vamos a editar la function delete(). Donde incluiremos un nuevo case dentro del switch con el prefijo de tres letras que habíamos creado anteriormente y escribimos el código necesario para que modifique la base de datos como en el siguiente ejemplo:

case '**BBD**':

    $q = "DELETE FROM cl_bebidas  WHERE bebida_id = ".$data[1];

    Sql::execute($q);

    $r = array('status'=>'success');

    break;

La variable $data[1] contiene el id de los datos que deseamos eliminar.

Con esto tendremos la vista asociada al método eliminar habilitada. Para añadir a la vista acciones adicionales tendremos que rellenar la tabla system_actions en la base de datos. En esta tabla se especificará a ruta donde deberemos desarrollar nuestra nueva acción.