Il y a deux manières de faire des formulaires : soit de manière classique, "à la
main", soit en utilisant le système de formulaire jForms. jForms
s'occupe à la fois des traitements coté serveur des données reçues d'un
formulaire (HTML ou service web) : création, sauvegarde, vérification des
saisies, etc, et à la fois de la génération des formulaires HTML dans les
templates.
Dans ce chapitre, on va utiliser la méthode "traditionnelle", histoire de se
familiariser avec les enchaînements d'actions et autres concepts de base de
Jelix. Plus loin dans le tutoriel, nous vous montrerons comment utiliser jForms.
Le but de ce chapitre, va être de créer un simple formulaire afin d'enregistrer
de nouvelles news.
===== Le template et les URLs =====
En premier lieu, nous allons faire le template, très simplifié, que l'on stocke
dans le fichier @@F@actu.org/modules/news/template/newsform.tpl@@ :
Création d'une news
Rien de très complexe, au niveau HTML. Toutefois vous remarquerez l'usage de
nouveaux tags : @@{formurl}@@, @@{formurlparam}@@ et @@{jurl}@@. Quelques explications...
Dans Jelix, vous éviterez de mettre des URLs en dur dans les templates ou les
actions, pour des raisons de facilité de maintenance et d'évolution. Le système
d'URL de Jelix vous permet de centraliser toutes les URLs dans un fichier
@@var/config/urls.xml@@ (qui peut faire référence à d'autres fichiers urls.xml présent
dans les modules).
Ainsi l'objet @@C@jUrl@@ et le tag @@{jurl}@@ vous permettent d'obtenir une URL en
donnant uniquement le nom de l'action et des éventuels paramètres.
Pour le lien "Annuler", l'URL générée sera
"/index.php/news/default/index". Si vous changez l'emplacement de
index.php, ou si vous modifier l'url de l'action dans urls.xml (en mappant
@@news/list@@ sur l'action @@news~default:index@@), vous n'aurez pas à modifier
vos templates.
On aurait pu utiliser le tag @@{jurl}@@ aussi sur la balise @@E@