Faire coexister plusieurs actions dans un même formulairePlusieurs actions peuvent coexister dans le même formulaire, que ce soit des <action>, des <interaction>, des <test>, des <mail> ou des <record>. On peut les distinguer en placant une ancre différente sur chacune d'elles (attribut ancre="..."). Pour déclencher une action particulière, via un bouton ou un lien, on mentionnera l'ancre de celle-ci. Si on ne mentionne pas d'ancre, seule l'action qui ne possède pas d'ancre sera déclenchée. On peut également créer un groupe d'actions en placant une ancre identique sur les actions concernées. Si elles sont déclenchées en mentionnant l'ancre en question, ces actions seront exécutées les unes après les autres, dans l'ordre de leur définition. De même, toutes les actions qui ne possèdent pas d'ancres constituent un groupe d'actions. Si on déclenche le formulaire via un bouton ou un lien sans mentionner d'ancre, toutes les actions de ce groupe seront exécutées. Déclencher une action ou un groupe d'actions à l'aide d'un boutonsi l'élément <bouton> ne possède pas d'attribut action="xxxx", ce bouton déclenchera l'action ou le groupe d'actions qui ne possède pas d'ancre (c'est le mode de fonctionnement standard). Les actions qui possèdent une ancre ne seront pas prises en compte. Par contre, si l'élément <bouton> possède un attribut action="xxxx", le bouton déclenchera l'action ou le groupe d'actions possèdant une ancre égale à xxxx. Les actions possèdant une ancre différente ainsi que celles qui ne possèdent pas d'ancre ne seront pas prises en compte. |
Dans cet exemple, deux actions sont définies avec chacune une ancre différente: ancre1 et ancre2 (la première action enverra les données en post, la deuxième en get). Deux boutons sont créés dans le formulaire, le premier pointant vers la première action (action="ancre1") et le deuxième pointant vers la deuxième action (action="ancre2"). Exemple <formulaire ancre="f1" style="voile" bords="arrondis"> <action ancre="ancre1" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="post"/> <action ancre="ancre2" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="get"/> <input> <nom>lastname</nom> <libellé>nom</libellé> </input> <input> <nom>firstname</nom> <libellé>prénom</libellé> </input> <bouton action="ancre1"> <nom>go</nom> <libellé>Envoyer en post</libellé> </bouton> <bouton action="ancre2"> <nom>go</nom> <libellé>Envoyer en get</libellé> </bouton> </formulaire> |
Déclencher une action ou un groupe d'actions à l'aide d'un lienIl est possible également d'utiliser un lien hypertexte pour déclencher une action d'un formulaire. Pour cela, le lien hypertexte doit utiliser un attribut cible contenant l'action envoyer:xxxx:yyyy où xxxx est l'ancre du formulaire et yyyy l'ancre de l'action ou du groupe d'actions en question. Pour déclencher l'action ou le groupe d'actions qui ne possède pas d'ancre, on utilisera l'action envoyer:xxxx où xxxx est l'ancre du formulaire. |
Dans cet exemple, deux liens sont utilisés pour envoyer les données récoltées dans le formulaire, à l'aide des actions envoyer:f2:a1 et envoyer:f2:a2 (f2 est l'ancre du formulaire, a1 et a2 sont les ancres des actions). Exemple <formulaire style="voile" bords="arrondis" ancre="f2"> <action ancre="a1" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="post"/> <action ancre="a2" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="get"/> <input> <nom>lastname</nom> <libellé>nom</libellé> <obligatoire/> </input> <input> <nom>firstname</nom> <libellé>prénom</libellé> <obligatoire/> </input> </formulaire> <p> Envoyer le formulaire en <a cible="envoyer:f2:a2">get</a> ou <a cible="envoyer:f2:a1">post</a>. </p> |
Dans le cas ou le lien hypertexte se trouve dans le formulaire, il n'est pas nécessaire de mentionner l'ancre du formulaire, seule l'ancre de l'action est nécessaire. On utilisera alors les actions envoyer:yyyy (pour les actions avec une ancre yyyy) ou envoyer (pour les actions sans ancres). Exemple <formulaire> <action ancre="b1" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="post"/> <action ancre="b2" href="http://www.ulb.ac.be/sitemanagerapps/samples/dumpform.php" méthode="get"/> <input> <nom>lastname</nom> <libellé>nom</libellé> <obligatoire/> </input> <input> <nom>firstname</nom> <libellé>prénom</libellé> <obligatoire/> </input> <p> Envoyer le formulaire en <a cible="envoyer:b2">get</a> ou <a cible="envoyer:b1">post</a>. </p> </formulaire> |
Groupe d'actionsToutes les actions qui possèdent une ancre identique forment un groupe d'actions. De même, si plusieurs actions sans ancre existent, elles forment également un groupe d'actions. Si ce groupe est déclenché, via un bouton ou un lien, les actions qui le constituent vont s'exécuter les unes après les autres, dans l'ordre de leur définition. Toutefois, l'exécution va se terminer si:
|
Dans cet exemple, trois actions seront exécutées lorsque vous cliquerez sur le bouton:
L'application appelée par ces trois actions exécute l'action ok ou nok pour indiquer que l'opération s'est bien ou mal passée. On se sert de cet état pour procéder à la suite (si:fin) ou pour faire disparaître le formulaire (masquer:form1), afficher un bloc contenant un message d'érreur (montrer:erreur) et arrêter l'exécution (arrêter) en cas d'erreur. Exemple <formulaire style="colorBar1" bords="arrondis" ancre="form1" set="set1"> <mail> <to>{intranet:email}</to> <subject>inscription {form:lastname} {form:firstname} - {intranet:matri}</subject> <paramètre nom="séance">{form:inscription/option}</paramètre> <actions exécuter="après">si:fin,masquer:form1,montrer:erreur,arrêter</actions> </mail> <record id="formluc"> <actions exécuter="après">si:fin,masquer:form1,montrer:erreur,arrêter</actions> </record> <mail> <to>{intranet:email}</to> <subject>votre inscription à la séance d'information</subject> <body> Bonjour {form:firstname}, Nous avons bien reçu votre inscription à la séance {form:inscription/option}. Excellente journée. </body> <actions exécuter="après"> si:ok,masquer:form1,montrer:erreur,arrêter label:ok,masquer:form1,montrer:msgok </actions> </mail> <input> <nom>lastname</nom> <libellé>nom</libellé> <valeur>{intranet:nom}</valeur> <obligatoire/> </input> <input> <nom>firstname</nom> <libellé>prénom</libellé> <valeur>{intranet:prénom}</valeur> <obligatoire/> </input> <input type="radio"> <nom>inscription</nom> <libellé>je m'inscrit à la séance</libellé> <obligatoire/> <option valeur="solbosch">du 31/10 à 14h au Solbosch</option> <option valeur="plaine">du 12/11 à 14h à la Plaine</option> <option valeur="erasme">du 24/11 à 10h à Erasme</option> </input> <bouton> <libellé>envoyer</libellé> </bouton> </formulaire> <bloc ancre="erreur" état="masqué" style="important" bords="arrondis"> <p>Une erreur est survenue lors du traitement de vos données.</p> </bloc> <bloc ancre="msgok" état="masqué" style="colorBar2" bords="arrondis"> <p>Bonjour {set1:firstname},</p> <p>Nous avons bien enregistré votre inscription à la séance {set1:inscription/option}</p> </bloc> |