Présentation dynamique des libellés des champs jalios:field

Julien Mellerin · le 26/08/16 à 18:56

Bonjour,

Pour répondre à un besoin spécifique, il est souhaité que les libellés des champs d'un contenu change fonction de certaines règles de gestion bien que la donnée reste la même (ex.: un champs 'application' peut s'appeler comme tel pour une partie du métier mais 'service' pour une autre). Cette règle doit s'appliquer partout dans l'application et dépend d'une nature d'un membre.

Existe t'il donc un moyen d'étendre la construction de la présentation des jalios:field de manière à débrancher la construction du libellé et ce, que ce soit en back-office ou en front office.

Nous souhaiterions également éviter d'avoir à modifier les gabarits des contenus pour toujours pouvoir profiter des gabarits d'édition pré-générés tout en implémentant cet aspect.

Merci.

Mots-clés field
5 pts
Jérémy Biron · le 30/08/16 à 12:19

Bonjour Julien,

Il y a dans le fichier jcms.prop les propriétés suivantes : 

# Fields
jcms.resource.include.field: jcore/field/doFieldGrid.jsp
jcms.resource.include.field-inline: jcore/field/doFieldInline.jsp
jcms.resource.include.field-vertical: jcore/field/doFieldVertical.jsp
jcms.resource.include.field-horizontal: jcore/field/doFieldHorizontal.jsp
jcms.resource.include.field-light: jcore/field/doFieldLight.jsp

Ces propriétés sont les templates des fields. Pour rappel le fichier jcms.prop ne doit jamais être modifié, il est préférable d'y apporter les modifications dans le fichier custom.prop .

Le principe est de surcharger le comportement des fields selon le besoin, en créant un nouveau fichier .jsp dans un module. Puis d'y apporter les modifications nécessaires, et de déclarer le nouveau fichier pour la ressource, dans le fichier custom.prop .

Cordialement,

1 pt
Julien Mellerin · le 30/08/16 à 21:20

Bonjour Jérémy,

Merci pour cette réponse, c'est une très bonne nouvelle qui va nous faire gagner beaucoup de temps. Je regrette toutefois que nous devions passer par une surcharge de gabarit. J'avoue que j'aurai préféré passer par des points de débranchement décidant ou non si le comportement doit être surchargé fonction de règles de gestions (mais je suis difficile ;)). Ceci permettrait d'éviter des contrôles de compatibilité plus importants en cas de migration. Je vais voir à faire les choses intelligemment à partir des éléments tirés de doFieldGrid.jsp et éventuellement voir à intervenir avant l'emploi de la ligne "String label = getIncludeString("WIDGET_LABEL", getIncludeString("label", null));" sans pour autant toucher à la couche présentation HTML en tant que tel.

Par ailleurs, partant de ce constat, ne serait t'il pas plus pertinent que les JSP doFieldInline.jsp, doFieldVertical.jsp, doFieldHorizontal.jsp et doFieldLight.jsp inclue la valeur de la propriété 'jcms.resource.include.field' au lieu de 'jcore/field/doFieldGrid.jsp' directement ?

Merci pour cet élément très utile dans notre investigation !

0 pt