Campo de clave-valor
Proporciona tipos de campo para almacenar pares clave-valor con descripciones opcionales, soportando tanto valores de texto plano como texto formateado.
key_value_field
Instalar
composer require 'drupal/key_value_field:8.x-1.4'
composer require 'drupal/key_value_field:8.x-1.3'
Overview
Key Value Field es un módulo de campo para Drupal que permite a los editores de contenido almacenar datos estructurados en forma de pares clave-valor. Cada entrada de campo consta de tres componentes: una clave (identificador), un valor (contenido) y una descripción opcional (para notas administrativas o contexto).
El módulo proporciona dos variantes de tipo de campo: una versión de texto plano para valores de cadena simples, y una versión de texto largo que soporta formatos de texto (como Basic HTML, Filtered HTML, etc.) para contenido enriquecido. Ambas variantes incluyen indexación de base de datos en la columna de clave para búsquedas y consultas eficientes.
Este módulo es particularmente útil para almacenar metadatos, fragmentos de configuración, atributos personalizados, credenciales de API (no sensibles), o cualquier otro dato estructurado donde un valor etiquetado necesite asociarse con una entidad. El campo de descripción opcional proporciona una forma de documentar el propósito o uso de cada par clave-valor sin afectar la salida mostrada.
Features
- Dos tipos de campo: Key / Value (plain) para texto simple y Key / Value (long) para texto formateado con soporte de formato de texto
- Estructura de datos de tres columnas: clave (indexada), valor y descripción opcional para cada entrada de campo
- Longitud máxima configurable para el campo de clave (por defecto 255 caracteres) con validación a nivel de base de datos
- Etiquetas personalizables del widget para los campos Clave, Valor y Descripción para adaptarse a la terminología de tu modelo de contenido
- Soporte de texto de marcador de posición para todos los campos de entrada para guiar a los editores de contenido
- Opción para habilitar o deshabilitar el campo de descripción por configuración de widget
- Opción de formateador para mostrar solo el valor o el formato completo clave:valor
- Configuración de formato de texto predeterminado para la variante de texto largo
- Índice de base de datos en la columna de clave para consultas y búsquedas eficientes
- Soporte para campos multi-valor con configuración de cardinalidad estándar de Drupal
- Validación automática que requiere una clave cuando se ingresa un valor
- Compatible con Drupal 9.5, 10 y 11
Use Cases
Especificaciones de Productos
Usa campos Key/Value para almacenar especificaciones de productos como 'Peso: 2.5kg', 'Dimensiones: 10x20x5cm', 'Material: Aluminio'. Cada especificación se convierte en un par clave-valor, y el campo de descripción puede documentar la unidad de medida o la fuente de datos.
Almacenamiento de Configuración de API
Almacena configuraciones de endpoints de API con claves como 'endpoint_url', 'api_version', 'timeout_seconds' y sus valores correspondientes. El campo de descripción puede explicar qué hace cada configuración o enlazar a documentación.
Atributos de Metadatos Personalizados
Agrega metadatos personalizados al contenido que no encaja en campos estándar. Por ejemplo, almacena propiedades 'schema.org' como pares clave-valor para propósitos de SEO, con la descripción explicando el uso de cada propiedad.
Claves y Valores de Traducción
Almacena cadenas de traducción o etiquetas donde la clave es un identificador y el valor es el texto traducido. La variante de texto largo permite contenido formateado con formatos de texto.
Feature Flags o Configuraciones
Almacena nombres de feature toggles y sus valores (habilitado/deshabilitado, valores de configuración) para elementos de contenido, permitiendo almacenamiento de configuración por entidad.
Tips
- El campo de clave está indexado en la base de datos, lo que hace eficiente consultar entidades por valores de clave específicos usando Entity Query o Views
- Usa el campo de descripción para documentación interna sobre lo que representa cada par clave-valor - no aparecerá en la salida renderizada
- Personaliza las etiquetas del widget para que coincidan con tu modelo de contenido - por ejemplo, cambia 'Key' a 'Nombre de Propiedad' y 'Value' a 'Valor de Propiedad' para una mejor experiencia del editor
- Al usar la variante de texto largo, configura un formato de texto predeterminado para asegurar un formateo consistente en todas las entradas
- La clave es condicionalmente requerida - se vuelve requerida solo cuando se ingresa un valor, permitiendo entradas de campo vacías
- Para campos multi-valor, cada delta puede tener diferentes pares clave-valor, útil para almacenar múltiples atributos en una sola entidad
Technical Details
Hooks 3
hook_help
Proporciona texto de ayuda para el módulo en la página de ayuda
hook_theme
Declara implementaciones de tema (actualmente vacío, devuelve un array vacío)
hook_field_info_alter
Altera las definiciones de tipos de campo para compatibilidad con versiones de Drupal anteriores a 10.2. Establece la categoría para el tipo de campo key_value en versiones anteriores de Drupal.
Troubleshooting 3
Elimina la carpeta del módulo y vuelve a descargar/clonar, luego limpia todas las cachés usando 'drush cr' o a través de la interfaz de administración.
El campo de clave es requerido cuando se ingresa un valor. Completa ambos campos o deja ambos vacíos.
La longitud de la clave se valida a nivel de base de datos. Acorta la clave o aumenta la 'Longitud máxima de clave' en las configuraciones de almacenamiento del campo (solo es posible antes de que existan datos).