TableField
Proporciona un tipo de campo flexible para almacenar y mostrar datos tabulares con soporte para importación/exportación CSV, reordenamiento de filas mediante arrastrar y soltar, y encabezados personalizables.
tablefield
Install
composer require 'drupal/tablefield:^3.0'
composer require 'drupal/tablefield:8.x-2.5'
Overview
TableField es un módulo de tipo de campo completo que permite a los autores de contenido ingresar, gestionar y mostrar datos tabulares directamente dentro de las entidades de Drupal. Proporciona una interfaz de widget fácil de usar donde los usuarios pueden definir las dimensiones de la tabla, ingresar valores en las celdas y opcionalmente especificar títulos de tabla para accesibilidad.
El módulo soporta múltiples métodos de entrada incluyendo edición directa de celdas, importación de archivos CSV y funcionalidad de copiar y pegar desde aplicaciones de hojas de cálculo como Excel. Las tablas pueden redimensionarse dinámicamente ajustando el número de filas y columnas, y las filas pueden reordenarse mediante arrastrar y soltar. El campo soporta tanto texto plano como texto filtrado (con selección de formato de texto) para el contenido de las celdas.
Para la visualización, el formateador ofrece opciones para designar la primera fila y/o primera columna como encabezados de tabla. Una función opcional de exportación CSV permite a los usuarios con los permisos apropiados descargar los datos de la tabla. El módulo también proporciona una propiedad computada para integración con Search API, habilitando la búsqueda de texto completo del contenido de las tablas.
Features
- Tipo de campo personalizado para almacenar datos tabulares en formato blob serializado con soporte para títulos y formatos de texto
- Widget flexible con tipos de entrada configurables (campo de texto o área de texto) para la entrada de datos en celdas
- Reconstrucción dinámica de tablas que permite a los usuarios cambiar el número de filas y columnas mediante AJAX
- Reordenamiento de filas mediante arrastrar y soltar con ordenación basada en peso
- Importación de archivos CSV con detección automática de codificación (UTF-8, ISO-8859-1, WINDOWS-1251)
- Funcionalidad de importación por copiar y pegar soportando varios delimitadores (TAB, coma, punto y coma, barra vertical, más, dos puntos)
- Funcionalidad de exportación CSV para descargar datos de tablas
- Soporte de título de tabla para mejorar la accesibilidad y compatibilidad con lectores de pantalla
- Función de bloqueo de celdas para prevenir la edición de valores predeterminados (útil para encabezados fijos)
- Soporte de formato de texto que permite texto filtrado con formatos de entrada seleccionables por el usuario
- Reglas de vacío configurables para determinar cuándo un tablefield debe considerarse vacío
- Integración con el módulo responsive_tables_filter para visualización responsiva de tablas
- Propiedad computada table_value para indexación con Search API
- Permisos granulares para operaciones de exportación, importación, reconstrucción, pegado y adición de filas
Use Cases
Tabla de Especificaciones de Producto
Crear un campo en tipos de contenido de productos para mostrar especificaciones técnicas en un formato de tabla estructurado. Establecer la primera fila como encabezado con nombres de especificaciones (ej., 'Dimensión', 'Peso', 'Material') y permitir a los editores de contenido llenar valores para cada fila. Habilitar exportación CSV para que los clientes puedan descargar las especificaciones.
Matriz de Precios
Construir una tabla de precios con encabezados fijos usando la función lock_values. Establecer valores predeterminados para los encabezados de columna (ej., 'Plan', 'Mensual', 'Anual') y bloquearlos para que los editores solo puedan modificar los valores de precios. Usar la primera columna como encabezado de fila para nombres de planes.
Horario o Calendario
Crear horarios de eventos o calendarios de clases usando TableField. Habilitar el tipo de entrada textarea para celdas que necesiten contenido más largo. Usar arrastrar y soltar para reordenar filas fácilmente cuando ocurran cambios en el horario.
Importación de Datos desde Hojas de Cálculo
Permitir a los editores de contenido poblar tablas rápidamente copiando datos desde Excel o Google Sheets usando la funcionalidad de pegar. Seleccionar TAB como separador de columnas para importación sin problemas desde aplicaciones de hojas de cálculo.
Tablas Comparativas
Construir tablas de comparación de características con el submódulo cellspan para crear celdas de encabezado fusionadas que abarquen múltiples columnas. Usar #colspan# para agrupar características relacionadas bajo encabezados de categoría.
Constructor de Formularios con Campos Requeridos
Usar el submódulo tablefield_required para crear tablas de entrada de datos donde filas o columnas específicas deben ser completadas, como filas de información de contacto obligatoria en un formulario de registro.
Tips
- Usar el ajuste 'Bloquear valores predeterminados de celdas' para crear tablas con encabezados fijos que los editores de contenido no pueden modificar
- Habilitar 'Mostrar primera columna como encabezado de tabla' en el formateador para tablas donde la primera columna contiene etiquetas de fila
- Al importar desde Excel, usar TAB como separador de columnas en el diálogo de importación por pegado
- Establecer conteos predeterminados significativos de filas y columnas en los ajustes globales para reducir la necesidad de reconstruir tablas
- Usar el campo de título de tabla para proporcionar contexto a lectores de pantalla y mejorar la accesibilidad
- Considerar habilitar la selección de formato de texto (texto filtrado) solo cuando se necesite formato HTML en las celdas, ya que agrega complejidad
- Para grandes conjuntos de datos, permitir el permiso de importación CSV para habilitar la entrada de datos masiva eficiente
Technical Details
Admin Pages 1
/admin/config/content/tablefield
Configura los ajustes predeterminados globales para todas las instancias de TableField incluyendo el carácter separador CSV y las dimensiones predeterminadas de la tabla.
Permissions 6
Hooks 1
hook_tablefield_encodings_alter
Permite a los módulos alterar la lista de codificaciones de caracteres soportadas para importación CSV. Por defecto, TableField soporta UTF-8, ISO-8859-1 y WINDOWS-1251.
Troubleshooting 5
Asegurar que los datos fuente usen codificación UTF-8. Verificar si el separador CSV en los ajustes del módulo coincide con el delimitador esperado por su aplicación de hoja de cálculo.
Las filas que contienen celdas bloqueadas no pueden reordenarse. Eliminar el ajuste lock_values o asegurar que la fila no tenga celdas bloqueadas para habilitar arrastrar y soltar.
La funcionalidad de importación requiere tanto el permiso 'import tablefield' como el ajuste de campo restrict_import correctamente configurados. Otorgar el permiso a los roles apropiados.
Seleccionar el separador de columnas correcto que coincida con sus datos fuente. Los datos copiados desde Excel típicamente usan separadores TAB.
Verificar los ajustes de empty_rules. Si 'ignore_table_structure' está desmarcado, una tabla con dimensiones diferentes a las predeterminadas se considera no vacía incluso sin contenido en las celdas.
Security Notes 3
- El módulo sanitiza el contenido de las celdas a través del sistema de formato de texto de Drupal cuando cell_processing está habilitado
- La exportación CSV requiere tanto el ajuste 'export' a nivel de campo como el permiso 'export tablefield'
- Las operaciones de importación y reconstrucción pueden restringirse a permisos específicos para prevenir modificación de datos no autorizada