Définition des étiquettes de charte (tags.xml)


Le fichier tags.xml se trouvant dans le dossier cms/skins/[skinName]/conf permet de définir les étiquettes de charte.

Pour plus d'information concernant l'utilisation de ces étiquettes, consulter la page Étiquettes de chartes

Les étiquettes définies dans ce fichier apparaissent sous la catégorie Charte graphique du panneau étiquettes du CMS.

La structure de base du fichier tags.xml est :

tags.xml

<?xml version="1.0" encoding="UTF-8"?>  
<tags>  
<!-- Liste des étiquettes de charte -->  
</tags>  

Étiquettes

Chaque étiquette est définie par :

  • un identifiant unique (caractères majuscules sans espace),
  • un libellé (internationalisé),
  • une description (internationalisée),
  • une portée (attribut target) : "PAGE" pour une étiquette de page ou "CONTENT" pour une étiquette de contenu
  • une visibilité : l'attribut private permet de privatiser l'étiquette (valurs "true" ou "false"). Les étiquettes privées ne peuvent être affectées que par des "super" utilisateurs ayant le droit adéquat
  • une priorité (à partir d'Ametys 4.8) : facultative, elle permet d'ordonner les étiquettes entre elles. La valeur par défaut est 0. Plus l'entier utilisé est élevé, plus l'étiquette apparaîtra en haut de la liste. Les entiers négatifs sont autorisés pour faire baisser la priorité d'une étiquette par rapport à la valeur par défaut.

Chaque étiquette peut contenir des sous-étiquettes afin de les hiérarchiser.

Exemple de fichier tags.xml

<?xml version="1.0" encoding="UTF-8"?>  
<tags>  
    <tag id="SPECIAL_PAGES" target="PAGE">  
        <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_LABEL</label>  
        <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_DESCRIPTION</description>  
         
        <tag id="FOOTER_LINKS" target="PAGE">  
            <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_FOOTERLINK_LABEL</label>  
            <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_FOOTERLINK_DESCRIPTION</description>  
        </tag>  
        <tag id="INVISIBLE" target="PAGE" private="true">  
            <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_HIDDEN_LABEL</label>  
            <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_HIDDEN_DESCRIPTION</description>  
        </tag>                         
        <tag id="SEARCH" target="PAGE" private="true">  
            <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_SEARCH_LABEL</label>  
            <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_SEARCH_DESCRIPTION</description>
            <priority>1</priority>  
        </tag>  
        <tag id="NEWSLETTER_MAIN" target="PAGE" private="true">  
            <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_NEWSLETTER_MAIN_LABEL</label>  
            <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_NEWSLETTER_MAIN_DESCRIPTION</description>  
        </tag>  
        <tag id="DIRECTACCESS" target="PAGE" private="true">  
            <label i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_DIRECTACCESS_LABEL</label>  
            <description i18n="true">SKIN_BO_TAG_SPECIALPAGES_TAG_DIRECTACCESS_DESCRIPTION</description>  
        </tag>
        <priority>-1</priority> 
    </tag>  
    <tag id="SECTION" target="PAGE">  
        <label i18n="true">SKIN_BO_TAGS_TAG_MAINSECTION_LABEL</label>  
        <description i18n="true">SKIN_BO_TAGS_TAG_MAINSECTION_DESCRIPTION</description>  
    </tag>  
    <tag id="SUBSECTION" target="PAGE">  
        <label i18n="true">SKIN_BO_TAGS_TAG_SUBSECTION_LABEL</label>  
        <description i18n="true">SKIN_BO_TAGS_TAG_SUBSECTION_DESCRIPTION</description>  
    </tag>     
</tags>  

L'exemple ci-dessus définit 8 étiquettes de charte graphique. Toutes les étiquettes définies sont des étiquettes de page.
L'étiquette "Pages spéciales" est une "super" étiquette possédant 5 sous-étiquettes (Page cachée, Page de recherche, ...). Elle a une priorité négative pour apparaître à la fin des étiquettes de charte graphique.
L'étiquette "Page de recherche" a une priorité de 1 pour apparaître avant les autres sous-étiquettes de "Pages spéciales".

Cette définition utilise l'internationalisation. Pour plus d'information, consulter la page Internationalisation (i18n).

Héritage de charte

A partir de Ametys 4.3.0

Fichier absent

Comme la règle d'héritage générique l'indique, si le fichier est absent, c'est le fichier de la charte parente qui est utilisé.

Héritage

Si le fichier est présent il va être mélangé au fichier de la charte parente selon les règles suivantes :

  • Balise <tag> avec un identifiant existant dans la charte parente :
    • On peut retirer l'étiquette en utilisant l'attribut remove="true".
    • On peut changer la valeur de l'attribut private
    • On peut remplacer les balise <label> et <description>
    • On peut ajouter des sous-étiquettes <tag> à la liste existante des sous-étiquettes.
  • Balise <tag> avec un nouvel identifiant, l'étiquette est ajoutée.
<tags> 
    <tag id="SPECIAL_PAGES" target="PAGE"> <!-- référence une étiquette existante --> 
        <!-- label/description non retouché --> 

        <tag id="FOOTER_LINKS" target="PAGE" private="true"> <!-- référence une étiquette existante mais changement de la valeur de private --> 
            <label i18n="false">Nouveau label pour footer links</label> 
            <description i18n="false">Nouvelle description pour footer links</label> 
        </tag> 

        <tag id="SEARCH" target="PAGE"> <!-- référence une étiquette existante --> 
            <tag id="SUBSEARCH" target="PAGE"> <!-- nouvelle sous-étiquette --> 
                <label>label</label> 
                <description>description</description> 
            <tag> 
        </tag> 
    </tag> 
    <tag id="SUBSECTION" target="PAGE" remove="true"/> <!-- suppression d'une étiquette héritée --> 
    <tag id="MYTAG> <!-- nouvelle étiquette racine --> 
        <label>label</label> 
        <description>description</description> 
    </tag> 
</tags> 

Bloquer l'héritage

Par défaut, l'héritage s'applique, mais si le fichier possède l'attribut inherit="false", alors c'est uniquement le fichier local qui est utilisé.

<?xml version="1.0" encoding="UTF-8"?> 
<tags inherit="false"> 
    ... 
</tags> 
Retour en haut