Premiers pas avec SCENARIbuilderHelloUniverse > Mise en place > Publication Web
page précédentepage suivante

Publication Web

Introduction

Nous avons modifié la structure du modèle, mais les transformeurs utilisent toujours les anciennes données : résultat, le générateur ne fonctionne plus du tout ou ne publie presque rien. Il faut donc aussi modifier les transformeurs, les "réparer" pour que les publications fonctionnent à nouveau.

Universe.transf

Que ce soit en HTML ou en OD, le transformeur est toujours partiellement exact, avec juste une différence : le titre est intégré dans les metas du sous modèle, et non intégré à la part.

Placez vous dans le transformer web universe.transf contenu dans l'espace web,

La règles for peut s’appliquer à toutes les parts si on lui met comme codes le jocker *

Le titre présent dans chacune des parties n’est plus un partTitle, mais un subModelTitle

En effet le titre n’est plus définit directement sous le sm:part mais dans la composition accessible via le allowedModel (qu’on appelle « sous-modèle »)

Les commentaires

Comme dans SCENARIchain, il est possible de désactiver des lignes en les passant en commentaire par clic droit -> passer en commentaire. Les lignes en commentaire sont alors affichées en vert dans l'éditeur.

Navigation vs Content

Mode "navigation" et mode "content"

Lorsque vous créez un transformer (universe.transf) pour faire de l'HTML, il y a 2 possibilités principales de contexte :

  • Navigation : vous n'avez pas encore créé la page, vous définissez l'arborescence de votre site en folder et pages
  • Content : votre page existe et vous allez maintenant rajouter du contenu dans les transformeurs

universe.model (et helloworld.model) est notre item racine de la publication et nous devons commencer en mode navigation. Nous y avons défini une page, et n'en définirons aucune autre à l'avenir, donc dans les transformers des submodels, nous devons utiliser le mode content.

sm:page

sm:page permet de créer physiquement les fichiers html qui constitueront le site web.

astrobj.transf

astrobj.transf

Le transformer pour astrobj.model pourrait être réalisé de manière très simple :

for code="*" > WHeadingBlock > (title > subModelTitle) | callSubModel

Mais nous voulons que chaque partie "Atmosphère", "Surface"... ait un titre par défaut si l'auteur ne le précise pas.

créez ce nouveau transformer en faisant un clic droit dans l'atelier helloworld sur l'espace web puis choisissez Ajouter un item et sélectionnez l'item de type Publication -> Générateurs 'web' -> Transformers Web -> compositionXhtmlTransf que vous nommerez astrobj.transf.

Faites ensuite les modifications suivantes :

On sélectionne avec plusieurs for chaque part une par une grâce au code. Lorsque vous précisez plusieurs title à la suite l'un de l'autre, c'est le premier existant qui est choisi : si le subModelTitle existe, le titre de l'auteur sera utilisé. Pour les parties libres nous ne leur donnons pas de titre si l'auteur ne le spécifie pas.

part.transf et déclarations de transforemers

Cette fois-ci, c'est plus simple : il s'agit juste de transférer le travail de transformation à la primitive texte : for code="*" > callSubModel :

Écran de contrôle
Mettez à jour les transflists

Mettez à jour le fichier .transflist du générateur HTML, ajoutez-y les 2 nouveaux transformers.

Écran de contrôle

Il n’y a plus d’erreur…

En cas d'erreur...

checklist

En cas d'erreur, pensez toujours à vérifier :

  • Les écrans de contrôles ;
  • La correspondance entre les codes des .model et .transf ;
  • Que les codes des parts et les codes des .models sont uniques ;
  • Que vos TransfList sont complètes ;
  • Que vous n'avez pas mis de transformers OD dans un générateur HTML ou inversement ;
  • Que vous avez fait les bons choix entre navigation ou content dans les XhtmlTransf (l'écran de contrôle peut vous aider sur ce point) ;
  • Que vous n'avez pas mélangé les appels : entre callSubModelTitle et callPartTitle par exemple ;
  • Que vous n'avez pas d'accent dans les noms de fichier : les accents sont nuisibles et sources d'incompatibilité entre les plateformes (conseil valable pour toutes les applications Scenari 3.7) ;
  • Que votre modèle ne comporte pas de nom de code, de fichier ou d'axis anormalement long : si la longueur totale du chemin d'un fichier dépasse 255 caractères, cela peut créer des problèmes sous Windows. SCENARIbuilder crée des sous répertoires de travail avec les codes que vous utilisez dans votre modèle, restez donc raisonnable ;
  • Que vous n'avez pas oublié d'enregistrer vos modifications avant de lancer vos nouvelles compilations.
page précédentepage suivante
A propos...© scenari-platform.org 2011Réalisé avec Scenari