Etiquettes de charte

Les étiquettes permettent de marquer des contenus et/ou des pages afin de les retrouver facilement dans d'autres contextes ou bien de les traiter différemment. Il existe plusieurs types d'étiquettes qui ne sont pas utilisées de la même manière.

  1. Types d'étiquette
    1. Applicatives
    2. Charte graphique
    3. Personnalisées
  2. Comment définir une étiquette ?
  3. Comment utiliser une étiquette ?
    1. Étiquettes de page
    2. Étiquettes de contenu

Types d'étiquette

Applicatives

Ces étiquettes sont apportées par le point d'extension org.ametys.web.tags.TagProviderExtensionPoint dans les fichiers plugin.xml. Elles sont généralement utilisées par les services. Par exemple, le plugin Glossaire apporte une étiquette de page qui permet de déterminer la page qui contient le glossaire afin de rediriger chaque définition vers celle-ci.

Charte graphique

Les étiquettes de charte graphique sont principalement utilisées pour influer sur la charte selon l’étiquetage d'une page ou d'un contenu. Par exemple :

  • pour rendre invisible une page dans les menus ou plan du site,
  • pour construire les menus et sous-menus,
  • pour sélectionner les pages qui doivent apparaitre dans le pied de page,
  • pour affecter une déclinaison de couleur à une page,
  • pour mettre en valeur un contenu en particulier,
  • pour ne pas afficher le titre d'un contenu,
  • etc ...

Elles sont définies dans un fichier XML nommé tags.xml est placé dans le dossier cms/skins/[skinName]/conf/

Personnalisées

Les étiquettes personnalisées sont définies par le contributeur. Ainsi, il peut classer des contenus ou des pages selon son choix et créer des remontées de contenus ou de pages sur ces données. Ces étiquettes sont créées via l'outil Étiquettes.

Comment définir une étiquette ?

Une étiquette comporte plusieurs éléments :

  • Identifiant

Nom : id
Type :
attribut
Valeurs possibles : Caractères majuscules sans espace.
Description : L'identifiant permet d'identifier l'étiquette de façon unique. Deux catégories ou étiquettes ne peuvent pas porter le même identifiant.

  • Libellé

Nom : label
Type :
nœud
Valeurs possibles : clefs i18n avec ou sans catalogue ou directement un texte
A noter : Le nœud label peut contenir l'attribut i18n="true/false" pour indiquer s'il s'agit d'un libellé i18n ou d'un texte.
Description : Le libellé s'affichera dans la liste des étiquettes disponibles.

  • Description

Nom : description
Type : nœud
Valeurs possibles : clefs i18n avec ou sans catalogue ou directement un texte
A noter : Le nœud label peut contenir l'attribut i18n="true/false" pour indiquer s'il s'agit d'un libellé i18n ou d'un texte.
Description :
La description correspond au tooltip de l'étiquette dans la liste des étiquettes disponibles.

  • Portée

Nom : target
Type :
attribut
Valeurs possibles :
page, content
Description :
Une étiquette peut être appliquée sur un contenu ou une page, afin d'en définir sa portée, il faut donc affecter la bonne valeur à l'attribut target.

  • Visibilité

Nom : private
Type :
attribut
Valeurs possibles :
true, false
Valeur par défaut :
false
Description :
Il existe plusieurs droits dont celui d'affecter des étiquettes privées. Un contributeur qui ne possède pas ce droit ne pourra pas affecter une étiquette de ce type. Par contre, il a la possibilité de la voir notamment pour créer des remontées.

Exemple :

<tag id="FOOTER_LINKS" target="PAGE" private="true">
    <label i18n="true">SKIN_BO_TAGS_CAT_SPECIALPAGES_TAG_FOOTERLINK_LABEL</label>
    <description i18n="true">SKIN_BO_TAGS_CAT_SPECIALPAGES_TAG_FOOTERLINK_DESCRIPTION</description>
</tag>

Les étiquettes peuvent être hierarchisées: une étiquette peut contenir une ou plusieurs autres étiquettes filles.

Pour plus de détails sur la définition d'un étiquette de charte graphique, consulter tags.xml.

Comment utiliser une étiquette ?

Étiquettes de page

Les étiquettes de page peuvent être utilisées dans les filtres, définis dans cms/skins/[skinName]/templates/[templateName]/filters/default.xml. Dans ce cas, les données renvoyées sont déjà triées selon les étiquettes sélectionnées.

Il est également possible de lire les étiquettes de page dans le plan du site, par exemple, pour créer le menu. C'est alors l'étiquette SECTION (identifiant de l'étiquette) qui est recherchée dans les pages du plan du site. Elles représentent les menus. Dans le plan du site, toutes les étiquettes sont préfixées par PLUGINS_TAGS_.

Par exemple :

<ul>
    <xsl:for-each select="/cms/sitemap//page[@PLUGIN_TAGS_SECTION]">
        <li><a href="{$site-uri-prefix}/{$lang}/{@sitemap:path}.html"><xsl:value-of select="@sitemap:title"/></a></li>
    </xsl:for-each>
</ul>

Il est également possible de récupérer une étiquette sur la page en cours sans passer par le plan du site, via la balise tags de la page. Ainsi, il est par exemple possible de cacher le sous-menu de la page en cours comme suit :

<xsl:if test="not(/cms/page/tags/NO_MENU)">
    <!-- Création du sous-menu -->
</xsl:if>

Étiquettes de contenu

Les étiquettes de contenu remontent à chaque fois qu'un contenu est généré quelque soit la vue sélectionnée. Les étiquettes se retrouvent dans la balise tags du contenu. Pour récupérer un contenu étiqueté, procéder comme suit :

<xsl:if test="not(tags/WITHOUT_TITLE)">
    <h1><xsl:value-of select="title"/></h1>
</xsl:if>