Eric MILLOZ © 2001-2013
Fonctionnement du générateur de formulaire
Le but de cette fonctionnalité est d'aider la création de formulaire. Les formulaires sont décrit par vous à l'aide d'un fichier, puis le logiciel construit le formulaire guidé par la description.
Il y a 2 moyens de générer un formulaire, par un fichier descriptif texte et/ou à partir de la base de données, soit un mixe des 2 :
- La fonction génère le formulaire à partir d'une table de la base de données.
- La fonction génère les formulaires à partir d'un fichier texte qui décrit les champs.
Le plus souvent, le besoin d'un formulaire provient de l'utilisation d'une table de la base de donnes. Cette fonctionnalité va permettre de générer du code php pour réaliser les formulaires se basant sur les informations provenant d'une table MySql nommée.
Le fichier peut décrire aussi des champs pour contituer un formulaire dans un fichier Php.
On peut mixer les 2, indiquer une table pour faire le formulaire et surchargé les champs pour obtenir plus de souplesse dans la création.
Le fichier descriptif d'un formulaire est toujours un fichier texte.
Vous pouvez télécharger cet exemple en bas de cette page, ou en cliquant ici.
Formulaire partir d'un fichier :
Vous allez créer un fichier descriptif qui va décrire chaque champs de votre formulaire. La description terminée, IntegSite va convertir le fichier texte en fichier php au format HTML 5 et avec du code permettant de faire fonctionner le formulaire.
Un fichier de log vous décrira les éventuels problèmes rencontrés lors de la création. Le fichier de log aura le même nom que le nom de votre fichier descriptif.
Exemple du fichier descriptif :
# FICHIER (sans extension) omise alors ERREUR
FICHIER=client.php
#
# ***************************************************************
#
# CHAMP donné technique pour Php
CHAMP=nom
# Type de champ
INPUTTAG=input
# Exemple qui apparaitra dans le champ avant saisie.
INDICE=Votre nom
# LIBELLE apparaissant dans le formulaire
LIBELLE=Nom
# TYPE du champs
TYPE=TEXT
# LONGUEUR du champ(DEFAUT 20)
LONGUEUR=20
# OBLIGATOIRE (O/N) (Controle en Php)
OBLIGATOIRE=N
FINDEF
# champ suivant
CHAMP=Prenom
# Type de champ
INPUTTAG=input
# Exemple qui apparaitra dans le champ avant saisie.
INDICE=Votre Prenom
LIBELLE=Prénom
TYPE=TEXT
LONGUEUR=20
OBLIGATOIRE=N
FINDEF
#
CHAMP=civS
LIBELLE=Civilité SELECT
TYPE=SELECT
ELEMENTS=M.,Monsieur;
ELEMENTS=*Mme,Madame;
ELEMENTS=Melle,Mademoiselle;
LONGUEUR=20
OBLIGATOIRE=N
FINDEF
#
CHAMP=civRADIO
LIBELLE=Civilité RADIO
TYPE=RADIO
ELEMENTS=Radio1,radio1;
ELEMENTS=*Radio2,case radio 2;
ELEMENTS=RAdio3,case radio3;
LONGUEUR=20
OBLIGATOIRE=N
FINDEF
Les lignes commençant par # sont des commentaires.
CHAMP désigne le nom technique du champ du formulaire.
INPUTTAG désigne le type d'input du champ (text, textarea, ..)
INDICE permet de faire afficher dans le champ un indice de contenu.
LIBELLE est le texte qui s'affichera dans le formulaire.
TYPE est le type de champ, par défaut c'est TEXT
LONGUEUR est la longueur par défaut, cette caractéristique ne sera pas utilisé si non mentionné
ELEMENTS, c'est les éléments d'un champ multi-entrée, RADIO, SELECT, ...
OBLIGATOIRE demande un contrôle PHP pour valider que le champ doit être obligatoire.
FINDEF indique que le descriptif du champ est terminé, les infos suivante concerne le champ suivant s'il existe.Les diffèrentes valeurs pour le type de champs (TYPE) sont : TEXT, PASSWORD,FILE,CHECKBOX,RADIO,SELECT.
Les type suivants seront implémentés bientôt ,TIME(HH:MM),DATE(JJ/MM/AAAA
Formulaire à partir de la base de donnes :
Vous avez une base de données et vous aimeriez qu'une table soit traduite en formulaire.
Le fichier descriptif doit être un peu diffèrent.
# FICHIER (sans extension) omise alors ERREUR
FICHIER=client.php
# TABLE formulaire basé sur cette table
TABLE=TEST
#
# ***************************************************************
#
# CHAMP donné technique pour Php
CHAMP=nom
# LIBELLE apparaissant dans le formulaire sinon précisé, cela sera le commentaire du champ
LIBELLE=Nom
# TYPE du champs sera la longueur du champ de la table
# LONGUEUR du champ sera la longueur du champ de la table
OBLIGATOIRE=N
VISIBLE=O
FINDEF
# champ suivant
CHAMP=Prenom
LIBELLE=Prénom
TYPE=TEXT
LONGUEUR=20
OBLIGATOIRE=N
VISIBLE=O
FINDEF
Si l'étiquette LIBELLE n'est pas présente, c'est le commentaire du champs dans MySql qui sera affiché. (j'ai choisi de me servir de l'attribut commentaire de la base MySql pour y stocker le libellé. Exemple : pour le champ nom, le commentaire du champ sera "Nom:")
Le paramètre VISIBLE, permet d'afficher ce champ dans le formulaire. Avec la valeur N (Non) le champ ne s'affichera pas (Champ Id par exemple).
Le paramétre LONGUEUR sera extrait de la base de données pour que le champ de saisie soit de la longueur de champ de la base de données.
le paramètre FINDEF permet d'indiquer que l'on change de champ.
Il suffit d'indiquer à IntegSite la table utilisée pour construire le formulaire. La table entière sera traduite avec tous ses champs sauf indication contraire.
Les descriptifs contenus dans le fichier texte vont modifier la façon dont le logiciel va traiter le formulaire. Les précisions permettent de rajouter ou faire disparaître des champs. on peut surcharger les attributs des champs de la base de données.
Vous pouvez utiliser aussi un fichier descriptif qui va indiquer IntegSite les champs que vous voulez rajouter, enlever ou modifier dans le formulaire. Vous pouvez modifier le libellé du champ, sa longueur, le type de champ, les éléments qui le compose (pour les boutons radio).
Exemple :
La table Test définie comme telle :
Champs Type de champs Commentaire Id BigInt (Primary) Identifiant nom varchar(50) Nom : prenom varchar(50) Prénom :En indiquant cette table, IntegSite va créer un formulaire pour permetre la création, suppression et modification d'un enregistrement de cette table.
Le champ Id n'est pas visible dans le formulaire car c'est une clé primaire, il sera (hidden pour modification), mais on peut le rendre VISIBLE à l'aide du fichier descriptif.
Le fichier php généré contiendra, les instructions php de récupération POST des champs, la gestion de l'action de création, suppression et modification d'un enregistrement et le formulaire HTML.
Important : Quand on mixe les deux techniques, (table et surcharge) le nom du champ contenu dans le fichier descriptif doit être le même que celui de la base de données pour que le rapporchement puisse avoir lieu. (sinon, cela fera un chamlp supplémentaire.)
Il faudra intégrer et adapter ce formulaire en fonction de votre utilisation.
Commande
Dans le fichier de commande :
C:\Program Files\IntegSite\Integsite.exe -c Chemin_du_fichier_de_configuration -form Chemin_du_fichier_descriptif_du_formulaire
La commande '-form' permet de générer la construction du formulaire suivant le descriptif donné dans le fichier de configuration..Exemple de formulaire généré (fichier descriptif texte) :
Le script Php, pour la gestion de ce formulaire, sera généré automatiquement pour permettre de gagner du temps et diminuer le nombre d'erreur à la création. Les créations sont ainsi standardisés et industrialisés, il reste encore du travail de mise en page.
Exemple make
Fichier exemple site monsite.zip
Pour télécharger l'exemple monsite.zip veuillez cliquer ici.