Voici une explication très basique du fonctionnement des formulaires HTML avec SPIP.
Les formulaires HTML
En HTML un formulaire est une zone de l’écran,encadrée par la balise <form action="
url-action
"...
, comprenant des champs de saisie nommés <input name="..
: ces noms de champs permettent d’identifier et transmettre les valeurs au programme serveur.
Quand l’utilisateur, après avoir saisi toutes ses valeurs, clique sur le bouton de soumission submit, son navigateur transmet la main au serveur à l’url-action [1] pour traiter les données saisies dans les champs. Bien sûr le traitement doit intégrer le contrôle des valeurs saisies, ce qui implique un dialogue interactif entre le serveur et l’utilisateur.
La modélisation SPIP CVT
Sur SPIP le formulaire est intégré comme noisette à une page de squelette du site : cette noisette s’exprime par une paire de fichiers en ./squelettes/formulaires
:
- un squelette HTML d’affichage écran
- un fichier PHP contenant les seules fonctions de test des valeurs,
et le traitement à appliquer après vérification.
Dans la fonction de vérification, chaque contrôle sur un des champs nommés de saisie, permet de retourner un message d’erreur associé au nom du champ : si des erreurs sont détectées, SPIP assure le ré-affichage du formulaire en lui transmettant les messages d’erreurs (sous ue forme normalisée), et attend ou nouvelle saisie, jusqu’à validation...
Quand tous les contrôles sont corrects, le serveur applique directement la fonction de traitement prévue, et assure ensuite l’appel du squelette de retour spécifié par une URL de SPIP...
- diagramme CVT
Le fichier de traitement .php contient trois fonctions prénommées C.V.T (Charger Vérifier Traiter) qui vont envoyer des informations au squelette de même nom.
- Charger : calcule la préparation du squelette en pré-remplissant au besoin les champs
- Vérifier : valide les entrées et renvoie au besoin les erreurs dans l’écran de saisie à corriger,
- Traiter : opère les enregistrements, en appelant éventuellement des URL d’actions complémentaires.
Cette architecture limite beaucoup les besoins de programmation PHP, permet de se simplifier la vie et de s’assurer d’un traitement sécurisé (sans Javascript) ; noter que des plugins (Saisies) permettent même de se passer du PHP : un article plus détaillé introduira Les formulaires CVT .
De plus, la mise en traitement Ajax [2], -qui améliore la réactivité- est immédiate, sans aucune modification de vos squelettes.
Toute l’interface privée de SPIP 3 est désormais conçue et développée avec cette technologie : vous trouverez l’ensemble des formulaires dans ./prive/formulaires
, ce qui vous permet :
d’utiliser directement ces formulaires dans votre interface publique,
de personnaliser votre interface d’édition (en surchargeant dans ./squelettes/prive/formulaires/
...
Article publié le 14 mai 2015, et actualisé en mai 2015 .
Répondre à cet article