docbook2html.xsl

La XSL docbook2html permet de transformer le docbook en HTML. Le format docbook est le format stocké par le CMS, tous les textes riches sont concernés. Noter que docbook2htmleditor.xsl est très similaire à docbook2html.xsl. Il n'est pas toujours surchargé lorsque docbook2html.xsl est étendu puisque cette deuxième XSL permet le rendu dans l'éditeur riche du CMS uniquement.

Surcharger docbook2html.xsl permet de modifier quelques comportements. Cette XSL se trouve dans cms/skins/[skinName]/stylesheets/io. Elle permet, par exemple, de changer le niveau des titres ou bien d'ouvrir un lien dans un nouvel onglet lors de l'application d'un style particulier. Il est également possible de réaliser des comportements plus avancées comme par exemple ajouter une action à chaque fois qu'un formulaire est validé. Pour ce dernier exemple, des compétences de programmation sont nécessaires.

En raison de l'appel à cette XSL par le noyau, il est parfois nécessaire de mettre une priorité à tous les éléments docbook à surcharger.

<xsl:template match="docbook:link" priority="10">
	<!-- Surcharge -->
</xsl:template>
De plus si vous ne souhaitez pas tout modifier, pensez à importer la XSL par défaut que vous souhaitez étendre, en ajoutant ceci dans votre en-tête:
<xsl:import href="plugin:web://stylesheets/io/docbook2html.xsl"/>

Eléments surchargeables

Par défaut

De base, dans le CMS, il est possible de surcharger les éléments suivants :

  • Paragraphes
    • docbook:article (Balise racine)
    • docbook:section (Balise par niveau de titre)
    • docbook:para (Paragraphe)
    • docbook:phrase[@role='linebreak'] (Saut de ligne)
  • Textes
    • docbook:subscript (Indice)
    • docbook:supscript (Exposant)
    • docbook:emphasis (Gras ou italique)
    • docbook:abbrev (Abréviation)
    • docbook:acronym (Acronyme)
    • docbook:quote (Citation)
    • docbook:foreignphrase (Citation dans une autre langue)
  • Listes
    • docbook:itemizedlist (Liste)
    • docbook:orderedlist (Liste numérotée)
    • docbook:listitem (Item de liste)
    • docbook:para en mode listitem (Contenu de l'item)
  • Tableaux
    • docbook:table (Tableau)
    • docbook:tbody (Corps du tableau)
    • docbook:tr (Ligne)
    • docbook:td ou docbook:th (Cellule ou cellule d'entête)
  • Liens
    • docbook:link (Lien)
    • link-title-attribute (Attribut titre du lien - Surchargé par le plugin Web s'il est présent)
    • link-class-attribute (Attribut classe du lien - Surchargé par le plugin Web s'il est présent)
  • Images
    • docbook:mediaobject (Contenant d'un objet média : image, vidéo, autre)
    • docbook:mediaobject/docbook:alt (Attribut de l'objet média)
    • docbook:mediaobject/docbook:caption (Attribut de l'objet média)
    • docbook:imageobject (Objet image)
    • image-wrapper (Rendu du contenant de l'image)
    • image-wrapper-link-attributes (Attribut lien du contenant de l'image - Surchargé par le plugin Web s'il est présent)
    • image (Rendu de l'image)
    • get-image-src (Attribut source de l'image - Surchargé par le plugin Web s'il est présent)
    • image-title-attribute (Attribut titre de l'image - Surchargé par le plugin Web s'il est présent)
  • Autres
    • html:htmlexpert (Bloc HTML expert)
    • html:toc (Table des matières)
    • docbook:para[html:toc] (Table des matières)
  • Communs
    • get-styles (Récupération des attributs classe, alignement et style)
    • get-style (Récupération des attributs alignement et style)
Avec le plugin Forms
  • Formulaire
    • html:form (Formulaire)
    • html:label (Libellé)
    • html:form//docbook:para (Paragraphe dans le formulaire)
    • html:input[@type='submit' or @type='reset'] (Bouton de validation et bouton d'annulation)
    • html:input (Texte simple, bouton radio, case à cocher, mot de passe, fichier)
    • html:textarea (Espace de texte)
    • html:select (Liste déroulante)
    • html:option (Option d'une liste déroulante)
    • html:fieldset (Ensemble d'éléments de formulaire)
    • html:legend (Légende de l'ensemble)
    • html:captcha (Captcha pour éviter les robots)
  • Contrôles Javascript
    • html:input[@type='text'] en mode form-check (Contrôle d'un texte simple)
    • html:input[@type='password'] en mode form-check (Contrôle d'un mot de passe)
    • html:input[@type='checkbox'] en mode form-check (Contrôle d'une case à cocher)
    • html:input[@type='radio'] en mode form-check (Contrôle d'un bouton à choix)
    • html:input[@type='file'] en mode form-check (Contrôle d'un champ fichier)
    • html:textarea en mode form-check (Contrôle d'un espace de texte)
    • html:select en mode form-check (Contrôle d'une liste déroulante)
    • html:captcha en mode form-check (Contrôle d'un captcha)
    • node() en mode form-check (Contrôle de tout autre noeud)
    • form-check-file-buildextensions (Contrôle de l'extension d'un fichier)
Avec le plugin InlineMedia
  • Eléments médias
    • docbook:videoobject[docbook:videodata/@type = 'youtube'] (Vidéo YouTube)
    • docbook:videoobject[docbook:videodata/@type = 'dailymotion'] (Vidéo DailyMotion)
    • docbook:videoobject (Autres types de vidéo)
Avec le plugin DataInclusion
  • ametys:dataquery (Requête dans les données)