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
2,060 sites
38
drupal.org

Instalar

Drupal 11, 10, 9 v8.x-1.4
composer require 'drupal/key_value_field:8.x-1.4'
Drupal 8 v8.x-1.3
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
El módulo no aparece en la lista de módulos

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.

Error de validación del campo de clave al guardar

El campo de clave es requerido cuando se ingresa un valor. Completa ambos campos o deja ambos vacíos.

Error de clave que excede la longitud máxima

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).