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.
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.
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 :
Elles sont définies dans un fichier XML nommé tags.xml est placé dans le dossier cms/skins/[skinName]/conf/
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.
Une étiquette comporte plusieurs éléments :
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.
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.
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.
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.
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.
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>
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>