Premiers pas avec SCENARIbuilderHelloWorld > Générateur OD > Composants et paramétrage
page précédentepage suivante

Composants et paramétrages du générateur

Générateur

Générateur
.generator

Un générateur est un ensemble d'instances de primitives permettant de spécifier les règles de publication d'un support dans un format donné.

Pour chaque entrée souhaitée dans les vues Publication, on crée en un générateur .generator, du type de sortie que l’on souhaite avoir : web/xhtml ou openDocument.

Vous pouvez avoir 2 publications différentes dans le format de fichier de sortie, dans le stylage, dans l'agencement des parties. Vous pouvez avoir une publication avec des informations supplémentaires (corrigés d’exercices, balises Exemple) et une sans. À chaque fois cela donne lieu à la création d'un nouveau .generator, qui est le point de départ de toute nouvelle publication ou déclinaison d'une publication existante.

OD et HTML

Il existe au moins un générateur par support de publication: papier et web.

Plusieurs générateurs d'un même type peuvent partager leurs styles.

Les générateurs SCORM sont des générateurs issu du web, ils utilisent en général le même dossier de styles que la publication web.

Règles de publication :

  • transformer le contenu selon le canal de diffusion cible : FormeX -> FormeY
  • ré-ordonner le contenu;
  • sélectionner le contenu : synthèse, fiches, ...;
  • définir l'IHM.
Définir le générateur
  • Quel format ?
  • Quelle structure du support final ?
  • Quel contenu publier ?
  • Quelles règles appliquer ?
  • Quel rendu graphique ?
Définir le générateur : réponses
  • Format : OD : présentation papier, plaquette XHTML ; site web :CD-rom, ...
  • Structure : organisation du contenu dans la page et dans le document;
  • Contenu : fiche de synthèse, site d'information complet, ...
  • Règles ergonomique : table des matières, plan, synthèses, voir aussi, liste des définitions, ...
  • Rendu graphique : Définition de la charte graphique : couleurs, images, ...
Convention de nommage

Souvent, générateurs et conteneurs de styles ont le même "nom":

  • paper.generator -> paper.skin.odt
  • dossier.generator -> dossier.skin.odt
  • web.generator -> web.doss
  • epure.generator -> epure.doss

Ce n'est pas une règle.

Les noms peuvent être différents.

Compléter le générateur OD

Code : hwOd

Name : Générateur OpenDocument Text

modelRoot : pointer vers helloworld.model

modelRoot : Déclarez ici les modèles autorisés en tant que racine[1] dans le générateur. Vous n'êtes pas obligé de déclarer tous les .model s'ils sont utilisés en tant que sous-modèles.

Créer un transformer list par clic droit sur la référence d’item vide au niveau de sm:transformeList de nom hwOd.transflist

Cet item vous permettra de référencer toute les règles de publication.

Créer un template OD par clic droit sur la référence d’item vide au niveau de sm:odTemplate de nom hwOd.odtemplate.

Enregistrer

Il reste une croix rouge au niveau du Skin. Laissez la pour le moment.

Déclaration des règles

Completer le hwOd.transflist

Créer trois balises sm:transformer

Référencer pour les deux premières les deux transformers : /base/sTxt_od.transf et /base/sTitle_od.transf

Pour la troisième balise, créer par clic droit un item de type Publication -> Générateurs 'open document' -> Transformers OpenDocument -> compositionOdtTransf. Avec le nom helloworld.transf

Enregistrer

Transformer
Transf

Un transformer (.transf) est une règle de publication d'un modèle (.model) dans un format donné (html, odt, xml etc).

Ils sont utilisés pour traduire une donnée écrite par l'auteur en donnée à l'intérieur d'un document publié. Dans les cas les plus simples, on doit en créer un par .model et par générateur. Ils sont référencés par des listes de transformers (fichiers .transflist) pour pouvoir être exploité par le générateur.

Paramétrage des règles de publications

Les transformers de type « Composition » doivent systématiquement être liés à un .model de même type.

Se placer dans l’item.

Lier le transformer à son .model : helloworld.model

Dans la balise sm:content, créer une règle de détection sm:for codes="code_de_la_part".

Remplacer code_de_la_part par le code de la partie à publier. On le trouve dans le .model associé.

Dans notre cas, nous voulons publier la part de code « hello », nous allons donc mettre sm:for codes="hello"

Paramétrer l’action à faire : créer un titre structurant (qui peut apparaître dans une table des matières dans le futur). Utiliser sm:heading

Au niveau du paramétrage du titre du heading, on veut afficher, « appeler », le titre de la partie : sm:partTitle

Ce titre est défini par les métas de la part hello de helloworld.model et pointe vers sTitle.model.

L’« appel » du titre revient à cherche le contenu renvoyé par sTitle_od.transf contenu dans le modelet base, pointé par hwOd.transflist.

Afficher le contenu de la partie : sous sm:title, mais toujours dans sm:heading, utiliser sm:callSubModel

Le contenu est modélisé par sTxt.model (on le sait car sous la part hello, il y a un allowedModel qui pointe vers cet item).

L’appel au sous-modèle revient à chercher le contenu renvoyé par le transformer sTxt_od.transf.

Les transformeurs dans les modèles plus compliqués

Pour notre projet helloworld, le réseau de .transf correspond exactement au réseau .model et à notre unique sm:part de contenu. Ce n'est pas le cas pour tous les modèles plus complexes, vous pouvez avoir par exemple, des transformeurs qui ne vont pas détecter toutes les parts comme dans le diaporama d’OptimOffice où des commentaires pour l'orateur n'apparaissent pas dans les publications pour le lecteur. Vous pouvez les réorganiser, par exemple les champs d'état civil d'un CV ne seront pas forcément publiés dans le même ordre que celui de l'interface d'édition, en plaçant les for dans un ordre différent dans le transformeur.

Gabarit, Template

Template
odTemplate (Papier) uiTemplate (Web)

Le template permet de poser la structure des pages : en-têtes et pieds de page par exemple.

Pour les publications papier, il joue le rôle d'item transverse, alors que pour les publications web c'est l'uiFrame qui joue ce rôle.

Les templates définissent les propriétés du document publié (pour les publications OpenOffice) ou d'un type de page publiée (pour les publications HTML), et posent tous les blocs définis en dehors des transformeurs, à un niveau "au dessus" du contenu.

hwOd.odTemplate

Préoccupez vous maintenant de lier votre racine de contenu à une page. Nous allons faire au plus simple dans ce template de document :

  • un seul type de page ;
  • juste un appel au modèle racine du générateur callRootModel.
  1. Racine

    Une racine d'un modèle documentaire est un .model pointé par un générateur.

    La racine principale n'a pas de modèle "parent", elle porte la structure du document.

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