Hola, Comunidad de Discourse Meta.
Nos complace presentar una nueva función experimental: plantillas de formularios. Con ella, puedes aplicar un formulario estructurado con validación de datos como parte del flujo de creación de temas.

Habilitar la función
La función está oculta tras un indicador experimental para todo el sitio. Para habilitarla, simplemente activa el ajuste del sitio experimental_form_templates en
Administrador ▸ Ajustes.
Gestionar las plantillas
Las plantillas de formularios se pueden crear, editar y eliminar en
Administrador ▸ Personalizar ▸ Plantillas (/admin/customize/form-templates/).
Allí verás una tabla con una lista de las plantillas existentes en el foro. Puedes editar, eliminar y previsualizar cualquier plantilla existente o crear nuevas. La tabla también muestra las categorías en las que cada plantilla está actualmente activa.
Las plantillas se definen en una estructura YAML. Puedes escribirla manualmente o utilizar los botones “Añadir” de la parte superior, que añadirán un fragmento de código YAML de ejemplo al final, definiendo un tipo de entrada determinado.
Aquí tienes un ejemplo completo de YAML, con todos los tipos de campo:
- type: input
id: name
attributes:
label: "Nombre completo"
placeholder: "ej. Juan Pérez"
description: "¿Cuál es tu nombre completo?"
validations:
required: true
minimum: 2
maximum: 100
- type: textarea
id: introduction
attributes:
label: "Introducción"
placeholder: "Una breve introducción"
description: "Escribe una breve introducción sobre ti"
validations:
required: true
minimum: 10
maximum: 500
- type: dropdown
id: fav-animal
attributes:
label: "Animal favorito"
description: "Selecciona tu animal favorito"
none_label: "Selecciona una opción"
choices:
- "Perro"
- "Gato"
- "Otro"
validations:
required: true
- type: multi-select
id: comm-channel
attributes:
label: "Canales de comunicación:"
description: "Selecciona tus canales de comunicación preferidos:"
none_label: "Selecciona una opción"
choices:
- "Correo electrónico"
- "Teléfono"
- "Mensajero"
- type: upload
id: cat-photo
attributes:
label: "Foto de gato"
description: "Envía una foto de tu gato (o de cualquier gato)"
file_types: ".jpg, .png"
allow_multiple: false
- type: checkbox
id: accept-terms
attributes:
label: "He leído y acepto los términos"
description: "Debes aceptar los términos para continuar"
validations:
required: true
Validaciones
Para cada campo, puedes añadir opciones de validación que deben cumplirse antes de poder crear el formulario. Para ver una lista de las validaciones disponibles, haz clic en el botón Validaciones encima del editor de código. Esto te mostrará la sintaxis de cada opción de validación y describirá su uso previsto.
Opciones de validación
| Clave | Tipo | Descripción |
|---|---|---|
| required | booleano | Requiere que el campo se complete para enviar el formulario |
| minimum | entero | Para campos de texto, especifica el número mínimo de caracteres permitidos |
| maximum | entero | Para campos de texto, especifica el número máximo de caracteres permitidos |
| pattern | cadena regex | Para campos de texto, una expresión regular que especifica la entrada permitida |
| type | cadena | Para campos de entrada, puedes especificar el tipo de entrada que se espera (text|email|date|number|url|tel|color) |
Aplicar una plantilla a una categoría
Una vez que hayas creado una plantilla de formulario, querrás aplicarla a una categoría. Para ello, dirígete a los ajustes de la categoría a la que deseas aplicar la plantilla.
Selecciona el menú Plantilla y, a continuación, a la derecha, utiliza el interruptor para activar las plantillas de formularios. Una vez activado, puedes usar el desplegable para añadir una o más plantillas a una categoría.
Rellenar el formulario
Una vez que se ha aplicado una plantilla a una categoría, el formulario de la plantilla aparecerá automáticamente al crear un tema y seleccionar la categoría que tiene la plantilla. Si la categoría tiene más de una plantilla asignada, también verás un selector para cambiar entre las plantillas disponibles.
Al rellenar el formulario, se respetarán las validaciones especificadas en la definición de la plantilla del formulario, y solo después de que sea válido podrás pulsar
Crear Tema y se generará el contenido del tema a partir de todos los campos de entrada.
Finalmente, después de enviar, el contenido del tema se compone de todos los campos rellenados:
Pre-rellenar valores del formulario
También puedes pre-rellenar los valores del formulario llamando a /new-topic con parámetros que coincidan con los IDs de campo definidos en la plantilla del formulario. Por ejemplo, para la plantilla utilizada anteriormente como ejemplo:
/new-topic?name=Juan%20Pérez&favorite-animal=Gato
Hoja de ruta
- Almacenar la salida JSON en los datos del tema cuando se crea un tema
- Opción para poder seguir seleccionando y utilizando el compositor de formato libre en categorías con plantillas de formulario
Cómo puedes ayudarnos
Nos encantaría conocer tu opinión sobre esta nueva función. Si eres administrador y quieres probarla en tu foro, puedes activar el ajuste experimental_form_templates y empezar a usarlas de inmediato.
Por favor, crea nuevos temas etiquetados con form-templates para compartir tus experiencias, informar de cualquier error o proporcionar sugerencias.
¡Gracias por ayudarnos a mejorar Discourse!









