S'lt
Je suis en train de jouer avec les formulaire et je constate que nous
avons diverses manières de gérer les formulaires.
Le problème c'est que je n'ai pas trouvé de doc globale.
Si je ne m'abuse nous avons au moins 3 gestions :
- formulaires statique
non, il ya des balises statiques (comme #CHARSET, #URL_ARTICLE ...) qui sont transposées lors de la compilation, mais ne permette justement pas de faire des formulaires
- formulaire dynamique
je préfererai dires des balises dynamiques (comme #LOGIN, #FORMULAIRE_ADMIN, #FORMULAIRE_FORUM ...) qui servent en général à réaliser des formulaires, car le contenu peut changer à chaque hit, et une partie de php est executee à chaque chargement de la page (d'où le nom 'dynamique').
Le mode d'implémentation des balises dynamiques est assez ardu, et dans la pratique, peu de monde développe des formulaires avec à cause de la complexité à laquelle il faut faire face.
- formulaire CVT
Charger/Verifier/Traiter est une surcouche des balises dynamiques qui facilite l'écriture et le dev de formulaires, en séparant bien le code propre à chaque étape, et son moment d'execution.
CVT a vocation a rendre rapide et facile l'implémentation de formulaires dans une application web.
Pour être franc, je suis largué concernant les formulaires statiques.
Je crois que c'est une variante des formulaires dynamique. Mais je ne
sais pas où ça varie.
ca ne sont pas des formulaires, mais des balises #TRUC
Pour les formulaires dynamiques, je crois que nous avons :
- une page qui appelle un #FORMULAIRE_MONFORMULAIRE{arg}
- un squelette dans formulaires/monformulaire.html
-- <form id="monformulaire" method="post"
action="#ENV{self}#formulaire_monformulaire">
-- [(#ENV*{message}?{'',' '}) pour les erreurs ?
-- (#ENV*{commentaire}) pour ?
non, il n'y a aucune convention, chaque balise utilise les siennes.
- un script de traitement dans balises/formulaire_monformulaire.php
-- exploite calculer_balise_dynamique()
-- déclare :
---- balise_FORMULAIRE_MONFORMULAIRE()
---- balise_FORMULAIRE_MONFORMULAIRE_stat()
---- balise_FORMULAIRE_MONFORMULAIRE_dyn()
oui, les deux premieres sont utilisées lors de la compilation, la troisieme est executée à chaque chargement de la balise.
Dans le cas des formulaires implémentés sur ce mode, tout le code est dans cette fonction, aussi bien pour le chargement, la verification, et le traitement.
Le corrolaire est que le traitement du formulaire n'est réalisés qu'à l'affichage de ce formulaire, rendant impossible une redirection apres traitement.
Les formulaires de forum qui nécessitaient cette redirection bénéficiaient d'un traitement exceptionnel en dur dans le core, rendant cela encore plus confus.
Pour les formulaire CVT, il y a un début de doc sur spip.net
que je vais compléter d'ici la sortie pour traiter tous les cas
Nous avons :
- une page qui appelle #FORMULAIRE_MONFORMULAIRE
- un squelette dans formulaires/monformulaire.html
-- exploite
--- #ENV*{editable} pour ?
--- #ACTION_FORMULAIRE{#SELF} pour ?
--- #ENV**{erreurs} pour retourner un message d'erreur global
--- #ENV**{erreurs}|table_valeur{nom} pour extraire un message
d'erreur spécifique
- un répertoire dans formulaires/monformulaire/ contenant
-- charger.php
--- precharge l'ensemble des #ENV
-- verifier.php
--- remplit #ENV**{erreurs}
-- traiter.php
Autre point concernant le formalisme des formulaire. Sommes nous
d'accord pour migrer l'ensemble des formulaire à la sauce formfx c'est
à dire :
- http://romy.tetue.net/spip.php?article523
- Prettier Accessible Forms – A List Apart
trois fois OUI car c'est d'expérience le meilleur modele pour faire varier l'habilage sans forker le html source,
mais il vaut peut etre mieux rester au plus proche de cmxforms en gardant le nom notamment qui permet de retrouver les references biblio
Cédric