¿Cómo personalizar las tablas de datos del administrador de Bootstrap?
(LECTURA DE LISTAS)

Las tablas de datos de administración de Bootstrap pueden personalizarse utilizando su clase PHP principal y su plantilla TWIG disponible en la carpeta admin.


Organización de los archivos relativos a las tablas de datos de administración

Cuando se crea una Tabla de Datos desde el Generador CRUD se generan varios archivos:

/admin/class/crud/Table.php
La clase PHP principal
/admin/plantillas/tabla.html
La plantilla HTML TWIG
/admin/crud-data/table-filter-data.json
Los filtros utilizados para filtrar sus registros, si los hay
/admin/crud-data/table-select-data.json
Seleccione la configuración de los desplegables si los hay

donde tabla es la tabla que desea personalizar.

Los dos archivos JSON son utilizados por el motor interno de PHPCG para construir sus filtros de listas de datos o seleccionar datos.
Considérelos como archivos CORE privados y no los modifique.

Los archivos que nos interesan aquí son la clase PHP y la plantilla HTML TWIG.

La clase principal PHP

La clase PHP principal realiza la consulta SQL a su base de datos y recupera los registros de su tabla.

También recuperará los registros de las tablas relacionales si se van a mostrar en su tabla de datos.

Los campos y valores se registran como atributos del objeto, en un bucle que recorre sus registros:

if (!empty($this->records_count)) {
    while ($row = $db->fetch()) {
        $this->pk[] = $row->$primary_key;
        $this->my_field[]= $row->my_field;
        // ...
    }
}

Cada $row-> es el valor que se mostrará en la tabla de datos.

Puede aplicar cualquier función si desea modificarlas, por ejemplo:

$this->my_field[]= strtolower($row->my_field); // to lowercase
if (!empty($row->my_field)) {
    $this->my_field[]= 'Yes';
} else {
    $this->my_field[]= 'No';
}

La plantilla HTML TWIG

La plantilla HTML TWIG recupera los valores de la clase PHP principal y construye la tabla de datos HTML.

Puede editar fácilmente cualquier parte de la plantilla, especialmente los elementos de tabla <th></th> y <td></td>.

Valores con código HTML

A menudo ocurre que se almacenan contenidos HTML que se editarán, por ejemplo, con un RTE (TinyMce).

La plantilla TWIG mostrará por defecto etiquetas HTML, mientras que usted desea mostrar contenido HTML.

Para ello, modificaremos la plantilla TWIG y utilizaremos el filtro TWIG "raw":

<td>{{ object.last_name[ loop.index0 ]|raw }}</td>

Ejemplo de personalización con enlace al sitio web público

En el Generador, active el botón Abrir URL cuando construya su lista READ.
Esto añadirá un icono de enlace a cada registro de su lista en el panel de administración.

El enlace apunta a la raíz del dominio, queremos cambiar este enlace para que lleve a las páginas respectivas de cada una de las grabaciones en el sitio web público. He aquí cómo lograrlo.

Tomemos como ejemplo la tabla de actores, digamos que cada registro debe abrir una página https://www.my-website.com/actor-x.php, donde x es el índice.

  1. Abra admin/templates/actor.html en su editor de código.
  2. Busque el enlace url abierta en la plantilla, que debería tener este aspecto:
    <td> <a href="{{ constant('BASE_URL') }}" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>
  3. Este enlace le llevará de momento a la página de inicio. Para que apunte a la página del actor, hay que modificar la URL (href) y añadir el índice del registro actual
    :<td> <a href="{{ constant('BASE_URL') }}/actor-{ object.pk[loop.index0] }}.php" rel="noindex" data-delay="500" data-tooltip="{{ constant('OPEN_URL') }}" target="_blank"><span class="{{ constant('ICON_NEW_TAB') }} text-center"></span></a> </td>

    Aquí utilizamos la clave primaria: {{ object.pk[loop.index0] }}.

    Proviene del objeto Actor en admin/class/crud/Actor.php, que se ha pasado a la plantilla TWIG.

¿Cómo conservar los cambios si se reconstruyen las tablas de datos?

Después de realizar cambios en los archivos de administración generados por PHPGC, si regenera su Lista de Lectura, estos cambios se sobrescribirán.

Copia de seguridad automática de los archivos Admin

Para evitar la pérdida de datos:

Al generar los archivos del panel de administración, los archivos existentes se guardan en la carpeta de copia de seguridad del generador: /generador/archivos-de-respaldo/

Herramienta de comparación de archivos

La herramienta de comparación de generadores le permite:

  • comparar las versiones guardadas con las nuevas versiones generadas
  • Fusione las dos versiones disponibles seleccionando en los dos paneles izquierdo/derecho las partes de código que desea conservar.

Requisitos previos

Para personalizar las tablas de datos de administración de Bootstrap con PHPCG debe hacerlo previamente:

Página principal del tutorial PHP CRUD