Routages
Routages
Introduction
Le routage sert à définir l’enchainement des pages dans un projet Voozanoo 4.
Il s’appuie sur un XML où sont déclarées les pages dans leur ordre d’affichage. Il s’agit d’une navigation linéaire (il n’est pas possible de décrire un arbre de navigation).
Par ailleurs on peut indiquer une condition pour l’affichage de la page. Dans le cas où la condition renvoi faux, le système passe à la page suivante.
Détail de l’algorithme
Exemple d’une liste de page décrite dans la ressource:
- Page 1
- Page 2
- Page 3 (si sexe = f)
- Page 4
Si l’utilisateur est sur la page 1, il sera redirigé vers la page 2
Si l’utilisateur est sur la page 2, il sera redirigé vers la page 3 si sexe = f
Si l’utilisateur est sur la page 2, il sera redirigé vers la page 4 si sexe != f
Usage
Etape 1
XML de routage:
<sequence>
<page sid="<sid_du_formulaire_1>"/>
<page sid="<sid_du_formulaire_2>">
<condition>
<dataquery id="query" table_name="<nom_table>" varset_name="<nom_varset>" table_alias="t">
<column sql="<condition>" type="boolean" alias="result">
<field table_name="t" field_name="<nom_champ>" alias="<alias_champ>"/>
</column>
<condition sql="{t.id_data}={p.id_data}">
<field field_name="id_data" table_name="t" alias="t.id_data"/>
<variable default="NULL" alias="p.id_data">
<entry type="param" name="id_data"/>
</variable>
</condition>
</dataquery>
</condition>
</page>
</sequence>
👍 Le retour du dataquery est toujours de type boolean et son alias est toujours result
Etape 2
Pour déterminer la page suivante à afficher, il faut créer un bouton qui redirige vers le module rooter de Voozanoo 4.
Il faut lui passer en paramètre l’identifiant du XML de routage, et l’identifiant de la page courante.
<button action="save" label="Enregistrer et changer de page">
<redirection url="router/index/index/id/<sid_ressource_routage>/src_page/<sid_formulaire_source>/id_data/{<nom_varset>.id_data}" type="frame"/>
</button>
👍 sid_ressource_routage, sid_formulaire_source : se trouvent dans l’url de l’Epicraft.
Format URL d’Epicraft : **
Exemple : https://editeur_repo.preprod.voozanoo.net/client/#/edit-gui/norwivgeuy1488292448561/gjmtjlyvzb1496824683989?_k=uqk6jr
sid : gjmtjlyvzb1496824683989