Pour importer des XSL à partir d'autres XSL,  utiliser la balise :

<xsl:import href="..." />

Il est bien sûr possible d'y mettre un chemin relatif tel que [maXslVoisine].xsl afin de récupérer les fichiers à proximité.

Cependant, il est recommandé pour une partie des fichiers d'utiliser des protocoles afin de récupérer simplement les XSL et éventuellement de pouvoir les récupérer à plusieurs endroits possibles

Pas de protocole

Quand il n'y a aucun protocole, le chemin du fichier est donc relatif.

<xsl:import href="commons/menus.xsl" />

skin

En ajoutant le protocole skin, il est possible d'aller chercher n'importe quel fichier dans la charte graphique courante en utilisant un chemin relatif à la racine du dossier cms/skins/[skinName]/.

<xsl:import href="skin://stylesheets/menus.xsl" />

template

Le protocole template permet de récupérer un fichier dans un gabarit donné dans la charte graphique courante. Le chemin doit correspondre au chemin du dossier cms/skins/[skinName]/templates/[templateName]/.

Sous cette forme, le protocole template renvoie le fichier du gabarit courant dans la charte graphique courante :

<xsl:import href="template://stylesheets/menus.xsl" />

Ici, comme précédemment sauf que s'il n'y a pas de gabarit courant, c'est le fichier du gabarit page qui sera automatiquement renvoyé :

<xsl:import href="template:#page://stylesheets/menus.xsl" />

Enfin, cet exemple force le gabarit qu'il faut utiliser, cela peut notamment être utile pour faire hériter un nouveau gabarit d'un autre gabarit et y ajouter quelques subtilités :

<xsl:import href="template:page://stylesheets/menus.xsl" />

plugin

Le protocole plugin permet de récupérer une XSL dans un plugin donné. Si le plugin n'existe pas ou n'est pas présent, une erreur surviendra. Le chemin attendu doit partir de la racine du plugin.

<xsl:import href="plugin:web://stylesheets/utils.xsl"/>

service

Lors de l'utilisation du protocole service, le CMS cherche le fichier dans l'ordre :

  1. dans le gabarit en cours d'utilisation soit dans le dossier cms/skins/[skinName]/templates/[templateName]/stylesheets/services/[pluginName]/,
  2. dans la charte graphique courante soit dans le dossier cms/skins/[skinName]/services/[pluginName]/,
  3. dans le plugin : plugin:PLUGIN://CHEMIN_VERS_LE_FICHIER.

view

Lors de l'utilisation du protocole view, le CMS cherche le fichier dans l'ordre :

  1. dans la charte graphique courante skin://,
  2. dans le plugin Web plugin:web://,
  3. dans les paramètres de configuration WEB-INF/param/view/
  4. avec l'utilisation de view:pluginName://, dans le plugin concerné
  5. dans le plugin CMS plugin:cms://

Si le plugin Web n'est pas présent, le protocole ne regarde pas au niveau de la charte graphique, ni du plugin Web.

docbookenhancement

Ce protocole n'est utilisé qu'à des fins de surcharge de quelques documents, l'idéal étant de prendre exemple sur la charte graphique de démonstration. Il est notamment utilisé pour surcharger docbook2html.xsl qui permet de transformer du contenu riche en HTML. Ce protocole est une concaténation de plusieurs fichiers selon les plugins activés dans le projet : CMS (avec l'ensemble des éléments classiques), forms (avec les éléments spécifiques aux formulaires), inlinemedia (avec les objets médias), etc. Lors de la surcharge de n'importe quel élément de docbook2html.xsl, il faut :

  • créer dans la charte graphique le fichier stylesheets/io/docbook2html.xsl
  • importer docbookenhancement://docbook2html.xsl
  • et il est fortement conseillé d'ajouter une priorité à chaque template surchargé pour éviter tout conflit.
Retour en haut