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).

graph LR; A-->B B-->D A["projet-editions"] B["mon-edition"] D("menu.xml")

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,

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.