Bonjour, communauté Discourse Meta !
Nous sommes ravis de vous présenter une nouvelle fonctionnalité expérimentale, les modèles de formulaire. Ils vous permettent d’imposer un formulaire structuré avec validation des données dans le flux de création de sujets.

Activation de la fonctionnalité
La fonctionnalité est masquée derrière un indicateur expérimental global. Pour l’activer, il suffit d’activer le paramètre de site experimental_form_templates dans
Admin ▸ Paramètres.
Gestion des modèles
Les modèles de formulaire peuvent être créés, modifiés et supprimés dans
Admin ▸ Personnaliser ▸ Modèles (/admin/customize/form-templates/).
Vous y trouverez un tableau listant les modèles existants sur le forum. Vous pouvez modifier, supprimer et prévisualiser n’importe quel modèle existant, ou en créer de nouveaux. Le tableau indique également les catégories dans lesquelles chaque modèle est actuellement actif.
Les modèles sont définis dans une structure YAML. Vous pouvez les saisir manuellement, ou utiliser les boutons “Ajouter” en haut, qui ajouteront un extrait de code YAML à la fin, définissant un certain type d’entrée.
Voici un exemple YAML complet, avec tous les types de champs :
- type: input
id: name
attributes:
label: "Nom complet"
placeholder: "ex. Jean Dupont"
description: "Quel est votre nom complet ?"
validations:
required: true
minimum: 2
maximum: 100
- type: textarea
id: introduction
attributes:
label: "Introduction"
placeholder: "Une courte introduction"
description: "Écrivez une courte introduction sur vous-même"
validations:
required: true
minimum: 10
maximum: 500
- type: dropdown
id: fav-animal
attributes:
label: "Animal préféré"
description: "Sélectionnez votre animal préféré"
none_label: "Sélectionnez une option"
choices:
- "Chien"
- "Chat"
- "Autre"
validations:
required: true
- type: multi-select
id: comm-channel
attributes:
label: "Canaux de communication :"
description: "Sélectionnez vos canaux de communication préférés :"
none_label: "Sélectionnez une option"
choices:
- "Email"
- "Téléphone"
- "Messagerie"
- type: upload
id: cat-photo
attributes:
label: "Photo de chat"
description: "Envoyez une photo de votre chat (ou de n'importe quel chat)"
file_types: ".jpg, .png"
allow_multiple: false
- type: checkbox
id: accept-terms
attributes:
label: "J'ai lu et j'accepte les conditions"
description: "Vous devez accepter les conditions pour continuer"
validations:
required: true
Validations
Pour chaque champ, vous pouvez ajouter des options de validation qui doivent être satisfaites avant de pouvoir créer le formulaire. Pour une liste des validations disponibles, cliquez sur le bouton :kbd:Validations au-dessus de l’éditeur de code. Cela vous montrera la syntaxe de chaque option de validation et décrira son utilisation prévue.
Options de validation
| Clé | Type | Description |
|---|---|---|
| required | boolean | Oblige à remplir le champ pour soumettre le formulaire |
| minimum | integer | Pour les champs de texte, spécifie le nombre minimum de caractères autorisés |
| maximum | integer | Pour les champs de texte, spécifie le nombre maximum de caractères autorisés |
| pattern | regex string | Pour les champs de texte, une expression régulière spécifiant l’entrée autorisée |
| type | string | Pour les champs de saisie, vous pouvez spécifier le type d’entrée attendu (text|email|date|number|url|tel|color) |
Application d’un modèle à une catégorie
Une fois que vous avez créé un modèle de formulaire, vous voudrez l’appliquer à une catégorie. Pour ce faire, rendez-vous dans les paramètres de la catégorie à laquelle vous souhaitez appliquer le modèle.
Sélectionnez le menu :kbd:Modèle, puis sur la droite, utilisez le commutateur pour activer les modèles de formulaire. Une fois activé, vous pouvez utiliser le menu déroulant pour ajouter un ou plusieurs modèles à une catégorie.
Remplissage du formulaire
Une fois qu’un modèle a été appliqué à une catégorie, le formulaire du modèle apparaîtra automatiquement lorsque vous créerez un sujet et sélectionnerez la catégorie qui a le modèle. Si la catégorie a plus d’un modèle attribué, vous verrez également un sélecteur pour basculer entre les modèles disponibles.
Lors du remplissage du formulaire, il respectera les validations spécifiées dans la définition du modèle de formulaire, et ce n’est qu’après qu’il sera valide que vous pourrez cliquer sur
Créer un sujet, et cela générera le contenu du sujet à partir de tous les champs saisis.
Enfin, après la soumission, le contenu du sujet est composé de tous les champs remplis :
Pré-remplissage des valeurs du formulaire
Vous pouvez également pré-remplir les valeurs du formulaire en appelant /new-topic avec des paramètres correspondant aux identifiants de champ définis dans le modèle de formulaire. Par exemple, pour le modèle utilisé précédemment comme exemple :
/new-topic?name=Jean%20Dupont&favorite-animal=Chat
Feuille de route
- Stocker la sortie JSON dans les données du sujet lors de la création d’un sujet
- Option pour pouvoir toujours sélectionner et utiliser le compositeur libre sur les catégories avec des modèles de formulaire
Comment vous pouvez nous aider
Nous aimerions connaître votre avis sur cette nouvelle fonctionnalité. Si vous êtes administrateur et que vous souhaitez l’essayer sur votre forum, vous pouvez activer le paramètre experimental_form_templates et commencer à les utiliser immédiatement !
Veuillez créer de nouveaux sujets tagués form-templates pour partager vos expériences, signaler tout bug ou faire des suggestions.
Merci de nous aider à améliorer Discourse !









