Premiers pas avec SCENARIbuilderHelloUniverse > Les données de type "formulaire" > Publication HTML
page précédentepage suivante

Publication HTML

Il est courant de vouloir afficher une séries d’informations de types formulaire sous la forme d’un tableau synthétique. C’est pourquoi nous allons utiliser cette approche pour le tutoriel.

Préparez sur papier une maquette du tableau qui va afficher toutes les informations d’un astre.

Cela vous permettra de mieux visualiser comment paramétrer le transformer.

faites un clic droit sur votre espace où vous avez rangés les transformers web (hellouniverse/gen/_web )

sélectionnez Ajouter un nouvel item et choisissez Publication -> Générateurs 'web' -> dataFormXhtmlTransf nommé comme le .model de notre dataform : astrobjM.transf (ou astrobjMeta.transf)

Utiliser les widgets WTable, WTableRow et WTableCell pour construire un tableau

Le WTable est un tableau "libre", le modélisateur va créer des lignes + des colonnes et les remplir. Il est adapté à des tableaux à contenus variés ou à des tableaux en largeur. Nous allons créer un tableau à 2 cellules : à gauche, la photo et à droite, les autres informations de la dataform. Un WTable contient des WTableRow puis des WTableCell.

Pour afficher le contenu d’un champ (field), utilisez forField, avec le code du champ à récupérer, et à l’intérieur fieldValueXXX selon que le champ à afficher est du type String, Date, RefItem.

Vous pouvez aussi utiliser W2ColsFreeRow pour créer un tableau pré paramétré

Compléments
W2Cols

Le W2Cols est un tableau à 2 colonnes, couramment utilisé pour publier des lignes "nom / valeur" des champs d'un formulaire. Pour le remplir, utilisez un W2ColsFreeRow à l'intérieur d'un forField, il en résultera 2 points d'entrée pour le contenu : les labelCell et les valueCell.

Modélisation avancée

Les conditions d'existance : Choose / When

Dans ce tutoriel, nous voulons, si une planète a un ou des satellites, ajouter un bloc avec pour titre "satellites" dans notre publication HTML, mais que cette partie n'apparaisse pas dans le cas contraire.

Nous utilisons pour cela l'ensemble choose / when / otherwise. La condition est déterminée dans le when : elle peut être l'existence d'un code dans les données (donc, qu'une part, qu'un field ou qu'un group existe), avec l'attribut codes, si les codes existent ce qui est dans le when est appliqué, dans le cas contraire ce qui est dans le otherwise est appliqué. When ne sélectionne pas les données, il faut donc refaire un for après. Si nous réécrivons le transformer de la même manière sans choose / when, le titre "satellites" sera publié même pour les parties n'en ayant pas.

Des conditions plus complexes avec xpath

À l'aide d'expressions xpath, nous avons plus de liberté pour poser des conditions sur le contenu des champs, sur le nombre d'éléments... Exemple de condition XPATH sur la valeur d'un champ enum.

Conserver la structure et la hiérarchie

Pour publier la liste des satellites, nous avons 3 balises de structure dans le dataform.model :

  • Le groupe sat
  • En sous niveau de sat, le champ name (nom du satellite)
  • En sous niveau de sat, le champ dist (distance)

Il est très important de conserver la même hiérarchie : commencer par un forGroup puis des forField. Pour cette partie, au lieu de tableaux, nous utilisons des WBlock qui se traduisent dans le HTML par des div ou des span.

« Appel des métas »

Depuis le transformer astrobj.transf, faites un appel au transformer de ses métadonnées (callCompositionMeta) afin d’exécuter la règle qui affiche les métadonnées sous forme de tableau.

Pensez à déclarer ce nouveau transformer.

Écran de contrôle

N’oubliez pas de passer par l’écran de contrôle pour vérifier votre paramétrage.

Ici nous voyons que nous avons oublié de déclarer les transformers d’images.

page précédentepage suivante
A propos...© scenari-platform.org 2011Réalisé avec Scenari