Documentation
Certains articles des la documentation sont en cours de rédaction.
Form Builder
Form Builder - Formulaires Dynamiques
Vue d'ensemble
Le système de Form Builder permet de créer et gérer des formulaires dynamiques pour les utilisateurs/adhérents. Tous les champs sont configurables via l'interface d'administration.
Types de formulaires
Formulaire Inscription
Utilisé pour l'inscription des nouveaux utilisateurs. Champs de base requis pour créer un compte.
- Civilité, Nom, Prénom
- Email, Adresse, Code postal, Ville
- Date de naissance
- Mot de passe
Formulaire Adhérent
Utilisé par les administrateurs pour créer/modifier des adhérents. Inclut des champs supplémentaires.
- Tous les champs d'inscription
- + Rôles personnalisés
- + Statut, Grade, Fonction
- + Photo
Fonctionnalités
Gestion des champs
- Ordre : Réorganisez les champs par glisser-déposer
- Fieldsets : Regroupez les champs par sections (ex: "Informations personnelles", "Coordonnées")
- Colonnes : Affichez les champs sur 1 ou 2 colonnes
- Visibilité : Activez/désactivez les champs
- Obligatoire : Définissez les champs requis
- Label personnalisé : Modifiez les libellés (pour certains champs)
- Placeholder : Ajoutez un texte d'aide
- Classes CSS : Personnalisez l'apparence
Types de champs supportés
text: Texte simpleemail: Emailpassword: Mot de passedate: Datetel: Téléphone
textarea: Texte longchoice: Liste déroulantecheckbox: Case à cocherfile: Upload de fichiernumber: Nombre
Configuration
1. Accéder à l'interface
Allez dans Gestion → Form Builder → User
2. Choisir le type de formulaire
Sélectionnez "Formulaire Inscription" ou "Formulaire Adhérent" dans le menu
3. Configurer les champs
- Glissez-déposez pour réorganiser
- Cliquez sur un champ pour l'éditer
- Modifiez le label, placeholder, etc.
- Cochez/décochez "Actif" et "Obligatoire"
4. Organiser en fieldsets
Assignez un nom de fieldset pour regrouper les champs (ex: "Identité", "Coordonnées", "Association")
5. Sauvegarder
Cliquez sur "Enregistrer" pour appliquer les changements
Initialisation
Pour initialiser ou réinitialiser les formulaires :
Initialiser (première fois)
php bin/console app:user-form:init
Réinitialiser (supprimer et recréer)
php bin/console app:user-form:init --drop
--drop supprime toutes vos personnalisations. À utiliser avec précaution !
Champs protégés
Certains champs sont non supprimables car essentiels au fonctionnement :
email: Identifiant de connexionnom,prenom: IdentitéplainPassword: Mot de passe (inscription uniquement)
Ces champs peuvent être désactivés mais pas supprimés.
Personnalisation avancée
Ajouter un champ personnalisé
Vous pouvez ajouter des champs avec le préfixe custom_ qui ne seront pas mappés à l'entité User :
custom_newsletter: Checkbox pour newslettercustom_commentaire: Zone de texte librecustom_motivation: Motivation d'adhésion
Modifier les options d'un dropdown
Pour les champs de type choice (Région, Grade, Fonction), éditez directement les options dans la configuration du champ.
Template d'affichage
Le template templates/user/_form.html.twig gère l'affichage dynamique :
- Fieldsets avec titres
- Affichage en 1 ou 2 colonnes
- Classes Bootstrap automatiques
- Textes d'aide et placeholders
Utilisation dans le code
Dans un contrôleur
use App\Form\FormBuilder\DynamicUserFormType;
use App\Services\FormBuilder\UserFormBuilderService;
public function register(
Request $request,
UserFormBuilderService $formBuilderService
): Response {
$user = new User();
$form = $this->createForm(DynamicUserFormType::class, $user, [
'form_type' => 'registration' // ou 'adherent'
]);
// ... gestion du formulaire ...
return $this->render('registration/register.html.twig', [
'registrationForm' => $form,
'form_fields' => $formBuilderService->loadUserFormConfig('registration'),
'form_config' => $formBuilderService->getFormConfiguration('registration'),
]);
}
Dans un template Twig
{% include 'user/_form.html.twig' with {
'form': registrationForm,
'button_label': 'Créer mon compte',
'form_fields': form_fields,
'form_config': form_config
} %}