Comment intégrer un glossaire dans le flux du texte?
On peut permettre à l'auteur de transformer un mot - qu'il aura sélectionné dans un champ de type texte - en lien vers une page web externe ou vers du contenu Scenari. Pour cela il faut utiliser l'attribut uLinkTag de la primitive texte.
Tout d'abord, il faudra copier l'item text.model de la bibliothèque utc, pour pouvoir le modifier à notre manière. Cela implique que tous les modèles utilisant text.model devront être modifiés en conséquence: copie de flowAll.model par exemple.
uLinkTag
Cette balise inline (en ligne, c'est à dire dans le flux du texte) permet de créer des liens web (choisir comme type de contenu sm:externalUrl ) ou vers un item Scenari de type compositionPrim. Pour cela il faut choisir comme type de contenu sm:refItem et définir dans la liste des model autorisés ceux ou celui que l'on souhaite.
Concernant les attributs de uLinkTag: name sera le nom qui s'affichera dans le menu déroulant côté auteur.
role permet de styler l'éditeur XED (sous la balise sm:authoring):
<sm:htmlStyle tag="uLink" role="monRole"> <sm:entryStyle key="text-decoration" value="underline"/> <sm:entryStyle key="color" value="green"/> </sm:htmlStyle>
Mais cet attribut permet aussi de définir un comportement particulier lors de la génération de contenu.
uLinkTag dans un transformer de type xhtml
Je vous conseille de copier le transformer de la bibliothèque utc, mettre ce nouveau transformer dans votre atelier. Il faut changer le model pointé et s'occuper des uLinkTag ensuite.
Dans le transformer associé à notre text.model, nous allons définir les actions à suivre lorsque l'on rencontre une balise uLinkTag:
- définir quel uLinkTag cela concerne en renseignant le role (monRole)
- spécifier que nous avons à faire à un contenu de type refItem
- donner le nom du lien sm:label par exemple le texte sélectionné en utilisant sm:link. Mais on peut aussi accoler le titre de l'item pointé ou encore une chaîne de caractères prédéfinie.
Le comportement en vogue nous incite à utiliser les ... tooltip:
- trigger: le contenu a afficher s'afficher quand la souris passe sur le lien, ou uniquement lorsque l'on clique dessus.
- displayOption: STICKY:true ... histoire de permettre à l'utilisateur d'avoir le temps de lire ce qu'on a à afficher, sans que le tooltip ne disparaisse trop vite.
- ttTitle: nom du cadre, en général on utilisera subModelTitle avec pourquoi pas un préfixe.
- ttContent: classiquement callSubModel axis=uLinkTag.
On n'est pas obligé de préciser un axis. Pour ma part je préfère, cela permet de modifier l'affichage d'un item selon qu'il est appelé depuis un lien dans le flux du texte ou ailleurs:
exemple: J'ai créé un model de glossaire pour mes définitions. Je veux voir apparaître une définition courte quand je clique sur un mot que j'aurais précédemment lié à un item de type glossaire. Par ailleurs, j'ai créé une liste des mots contenus dans mon glossaire, je veux que lorsque cette liste est publiée on puisse lire une définition plus conséquente du même mot (j'ai prévu de pouvoir intégrer des images, du son ou de la vidéo).
Etapes importantes
- dupliquer text.model et text_xhtml.transf
- dupliquer les transformers associés aux model pointés si l'on utilise un axis. Ces modèles sont de type sm:content
- bien déclarer tous les nouveaux transformers
- vérifier qu'il n'y a pas d'erreur dans l' écran de contrôle.
Exemple du Modèle www.scenari-platform.org/report
Attachments
-
text.png
(17.8 KB) -
added by juw 6 years ago.
text.model
-
text_transf.png
(23.6 KB) -
added by juw 6 years ago.
text_xhtml.transf
-
glossaryMeta_uLT.png
(10.0 KB) -
added by juw 6 years ago.
glossaryMeta
-
glossary_uLT_transf.png
(7.1 KB) -
added by juw 6 years ago.
glossary
-
glossary.png
(15.0 KB) -
added by juw 6 years ago.
DIA file
