Ajouter des étiquettes statiques

Le point d'extension org.ametys.web.tags.TagProviderExtensionPoint permet de définit un nouveau "fournisseur" d'étiquettes.

Il s'agit d'un point d'extension multiple: c'est à dire que plusieurs implémentations de ce point d'extension peuvent être actives au même moment.

A ce jour il existe 3 implémentations de ce point d'extension qui définissent 3 types d'étiquettes:

  • org.ametys.web.tags.StaticTagProvider: pour les étiquettes statiques. Il s'agit du fournisseur détaillé ici.

  • org.ametys.web.tags.SkinTagProvider: pour les étiquettes de charte graphique. Voir Etiquettes de charte
  • org.ametys.web.tags.jcr.JCRTagProvider : pour les étiquettes personnalisées, définies par le contributeur. Voir Etiquettes

Comment créer des étiquettes statiques ?

La création d'étiquettes statiques est utile dans les cas suivants:

  • avoir des étiquettes partagées communes à tous les sites et tous les chartes graphique
  • avoir des étiquettes non modifiables par les contributeurs

Les étiquettes statiques doivent être définies dans le fichier plugin.xml d'un plugin Ametys. Au besoin, vous serez amené à créer un nouveau plugin, suivez alors les instructions de la page Architecture d'un plugin Ametys.

Voici ci-dessous un exemple de déclaration:

Exemple de déclaration

<extension point="org.ametys.web.tags.TagProviderExtensionPoint" 
           id="mytagprovrider" 
           class="org.ametys.web.tags.StaticTagProvider">
	<label i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_EVENTS</label>
    <description i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_EVENTS_DESC</description>
    <tag id="PROFESSIONAL_EVENTS" target="CONTENT>
		<label i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_PROFESSIONAL_EVENTS</label>
		<description i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_PROFESSIONAL_EVENTS</description>
		<tag id="EVENT_CONFERENCE" target="CONTENT">
        	<label i18n="true">PLUGINS_MYPLUGIN_TAG_CONFERENCE</label>
    		<description i18n="true">PLUGINS_MYPLUGIN_TAG_CONFERENCE_DESC</description>
    	</tag>
		<tag id="EVENT_SHOW" target="CONTENT" private="true">
        	<label i18n="true">PLUGINS_MYPLUGIN_TAG_SHOW</label>
    		<description i18n="true">PLUGINS_MYPLUGIN_TAG_SHOW_DESC</description>
    	</tag>
	</tag>
	<tag id="SPORT_EVENTS" target="CONTENT">
		<label i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_SPORT_EVENTS</label>
		<description i18n="true">PLUGINS_MYPLUGIN_TAG_CATEGORY_SPORT_EVENTS</description>
		<tag id="EVENT_TOURNAMENT" target="CONTENT">
        	<label i18n="true">PLUGINS_MYPLUGIN_TAG_TOURNAMENT</label>
    		<description i18n="true">PLUGINS_MYPLUGIN_TAG_TOURNAMENT_DESC</description>
    	</tag>
		<tag id="EVENT_EXHIBITION" target="CONTENT">
        	<label i18n="true">PLUGINS_MYPLUGIN_TAG_EXHIBITION</label>
    		<description i18n="true">PLUGINS_MYPLUGIN_TAG_EXHIBITION_DESC</description>
    	</tag>
	</tag>
</extension>

 

Une étiquette ("tag") est définit par :

  • un identifiant unique (attribut "id")
  • une portée : "CONTENT" pour une étiquette de contenu, "PAGE" pour une étiquette de page (attribut "target")
  • une visibilité. L'attribut "private" permet de privatiser l'étiquette. Les étiquettes privées ne peuvent être affectées que par des "super" utilisateurs ayant le droit adéquat
  • un libellé (élément "<label>")
  • une description (élément "<description >")

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