Créer un groupe de propriétés du site
Objectif
L'objectif de cette fonctionnalité est qu'un plugin puisse fournir des propriétés à renseigner qui s'ajoutent automatiquement dans l'interface de gestion des propriétés du site. Par exemple, le plugin gtools (Google Tools) propose la saisie du code Google Analytics dans les propriétés du site.
Fonctionnement
Les clés des propriétés sont stockées dans le Datastore. Par convention, elles doivent être préfixées par le nom du plugin suivi de site_property.
Pour qu'un groupe de propriétés s'affiche dans l'interface du back office "Gestion des propriétés du site", il faut déclarer un bean dans le fichier context du plugin de la manière suivante :
<bean id="myplugin.sitePropertiesGroup" class="fr.paris.lutece.portal.service.site.properties.SitePropertiesGroup" > <property name="nameKey"> <value>myplugin.site_properties.name</value> </property> <property name="descriptionKey"> <value>myplugin.site_properties.description</value> </property> <property name="keysPrefix"> <value>myplugin.site_property.</value> </property> </bean>
Les clés du nom et de la description du groupe sont des clés i18n à créer dans le fichiers myplugin_messages_<locale>.properties. Les propriétés elles-mêmes doivent être créés dans le Datastore, soit par un script sql d'initialisation, soit par API.
De la même manière, le libellé (label) et le texte d'aide de chaque propriété est à saisir dans le ou les fichiers de ressources i18n en respectant les règles suivantes :
- La clé i18n du label doit avoir le même nom que la clé de la propriété dans le datastore
- La clé i18n du texte d'aide est la clé du label suffixée par ".help".
Voici un exemple de myplugin_messages_en.properties :
site_properties.name=My plugin\'s properties site_properties.description=Specific editable properties of my plugin site_property.myproperty1=My property 1 site_property.myproperty1.help=Help text for my property 1 site_property.myproperty2.textbloc=My property 2 site_property.myproperty2.textbloc.help=Help text for my property 2 site_property.myproperty3.htmlbloc=My property 3 site_property.myproperty3.htmlbloc.help=Help text for my property 3 ...