Menu
Le fichier menu.xml
Les différents onglets et sous-onglets d’une édition se configurent dans le fichier menu.xml qui est généré, dès la création d’une édition avec l’outil max.sh, dans le dossier [projet-]editions/[edition] (cf. Déploiement d’une nouvelle édition).
Ce fichier menu.xml permet d’ajouter autant d’onglets et sous-onglets qu’il est nécessaire.
Ce fichier, dont l’élément racine est <menu>
, contient un ou plusieurs éléments <entry>
, correspondant à autant d’onglets ou de sous-onglets.
L’élément <entry>
contient un élément <id>
pour indiquer l’identifiant et un élément <target>
pour mentionner la cible, à savoir la fin de l’URL nom.html
. Il peut contenir l’attribut @type
avec la valeur main
, pour désigner chaque entrée principale.
L’élément <id>
peut être spécifié dans le fichier i18n.
L’élément <target>
permet tout aussi bien de pointer vers :
- une page HTML statique (voir Pages statiques),
- une URL de consultation spécifique, appelée également route*, qui déclenche une fonction Xquery (voir Fonctionnement),
- un lien externe.
Dans l’exemple ci-dessous, le menu contient deux entrées principales (attribut @type="main"
) : accueil et sommaire.
- accueil.html pointe (généralement) vers le fragment HTML statique accueil.frag.html (cf. supra) ;
- sommaire.html pointe vers la route qui permet de générer le sommaire d’un document (cf. supra).
<menu>
<entry type="main">
<id>accueil</id>
<target>accueil.html</target>
</entry>
<entry type="main">
<id>sommaire</id>
<target>sommaire.html</target>
</entry>
</menu>
Pour créer des sous-entrées (sous-menus) au sein de l’élément <entry type="main">
, un ou plusieurs éléments <entry>
sont ajoutés : chacun possède un identifiant – élément <id>
– ainsi qu’une cible – élément <target>
.
Dans l’exemple ci-contre, le menu contient deux entrées principales accueil et sommaire. L’entrée accueil pointe vers l’URL http://[host]:[port]/[edition]/accueil.html
et contient deux sous-entrées introduction_oeuvre et presentation_oeuvre dont les URL sont respectivement :
http://[host]:[port]/[edition]/introduction_oeuvre.html
,http://[host]:[port]/[edition]/presentation_oeuvre.html
.
Ces pages HTML (introduction_oeuvre.html
et presentation_oeuvre.html
) pourront être créées en suivant la documentation Pages statiques.
L’entrée sommaire pointe vers l’URL http://[host]:[port]/[edition]/sommaire.html
.
<menu>
<entry type="main" default="true">
<id>home</id>
<target>accueil.html</target>
<!--Sous-entrées pour accueil-->
<entry>
<id>introduction_oeuvre</id>
<target>introduction_oeuvre.html</target>
</entry>
<entry>
<id>presentation_oeuvre</id>
<target>presentation_oeuvre.html</target>
</entry>
<!--Fin Sous-entrées pour accueil-->
</entry>
<entry type="main">
<id>sommaire</id>
<target>sommaire.html</target>
</entry>
</menu>
L’affichage du texte du menu est géré par un fichier de ressources d’internationalisation (appelé i18n*), qui permettra à termes de gérer l’adaptation de l’interface à des langues différentes. Voir le fichier i18n.
Ce fichier par défaut se trouve dans [projet-]MaX/ui/i18n/i18n.xml. Il peut être surchargé (cf. infra).
Modification de la mise en forme du menu
Le menu HTML est le résultat de la transformation du fichier [projet-]edition/menu.xml par la feuille XSL par défaut placée dans [projet-]MaX/ui/xsl/core/menu.xsl.
Une feuille de transformation, placée dans le dossier mon-edition/ui/xsl/core/menu.xsl, peut remplacer celle disponible par défaut.
Trois paramètres sont disponibles dans cette XSL :
- baseURI : baseURI du projet,
- selectedTarget : entrée de menu courante (valeur d’un des attributs @target).`
- projectId : identifiant de l’édition,
Menu à gauche
Pour configurer un menu à gauche dans la version de démonstration max_tei_demo, il est nécessaire d’activer la surcharge de transformation du menu en renommant le fichier editions/max_tei_demo/ui/xsl/core/menu_left.xsl en editions/max_tei_demo/ui/xsl/core/menu.xsl.
Faire de même avec le template HTML, en renommant le fichier editions/max_tei_demo/ui/templates/template_left.html en editions/max_tei_demo/ui/templates/template.html.
Lire la section surcharges.