We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Troncature HTML, tag <jalios:wiki> et <jalios:truncate>

Technique

Présentation

Une nouvelle API de troncature du HTML est disponible depuis JCMS 7.1 SP1.
Cette nouvelle API permet de garantir l'intégrité du code HTML et autorise l'ajout d'un suffixe à l'endroit le plus approprié pour l'affichage.

  • La méthode HtmlUtil.truncate() fait son apparition : elle effectue une troncature du HTML après un parsing JSoup en assurant l'intégrité du HTML et en permettant l'intégration d'un suffixe de façon intelligente, dans le tag dernier tag HTML le plus approprié à cela (cf JavaDoc)
  • Le tag <jalios:truncate> dispose maintenant d'un attribut advancedHtml permettant de déclencher un comportement de troncature.
    Il s'agit volontairement d'une option supplémentaire, et pas du comportement standard. En effet ce nouveau traitement n'est pas compatible avec les usages existant qui étaient fait du tag truncate avant JCMS 7.1 SP1.
  • Le tag <jalios:wiki> dispose maintenant de 2 attributs truncateLength et truncateSuffix qui permettent de se passer du tag jalios:truncate et de simplifier leur utilisation. L'utilisation de ces attributs déclenche le nouveau comportement de troncature avancée.

Ces évolutions ont été mise en oeuvre afin de corriger un comportement incorrect de troncature du HTML, bug enregistré sous la référence JCMS-2743.

Mise en oeuvre 

Pour garantir l'intégrité du HTML lors d'une troncature du HTML, les gabarits doivent être développés en respectant les règles suivantes.

Pour les champs Wiki :

Dans les gabarits où sont affichés des textes wiki, il faut appliquer la troncature des textes wiki directement dans le tag jalios:wiki comme suit :

<jalios:wiki truncateLength="123" truncateSuffix="..."><%= wiki %></jalios:wiki>

Il ne faut plus utiliser le tag jalios:truncate pour les champs wiki. Voici le code qui pouvait être présent dans les gabarits de JCMS avant la version JCMS 7.1 SP1 : 

NE PAS FAIRE
<jalios:wiki><jalios:truncate length="123" suffix="..."><%= wiki %></jalios:wiki></jalios:truncate>

Pour les champs Texte Riche (Wysiwyg / HTML) :

Dans les gabarits où sont affichés des textes riches, il faut appliquer la troncature des valeurs via le tag jalios:truncate en spécifiant l'attribut advancedHtml à true.

<jalios:truncate advancedHtml="<%= true %>" length="123" suffix="..."><%= html %></jalios:truncate>

Il ne faut plus utiliser le tag jalios:truncate sans spécifier ce paramètre sans quoi le comportement de troncature du HTML risque de provoquer l'affichage de HTML invalide. Voici le code qui pouvait être présent dans les gabarits de JCMS avant la version JCMS 7.1 SP1 : 

NE PAS FAIRE
<jalios:truncate length="123" suffix="..."><%= html %></jalios:truncate>

Utilisation simultanée avec d'autres tags ou méthodes 

En cas d'utilisation simultanée d'autres tags ou méthode modifiant le texte riche, comme par exemple le tag jalios:wysiwyg, le tag jalios:truncate doit toujours être invoqué en dernier.
Par exemple : 

<jalios:truncate advancedHtml="<%= true %>" length="123" suffix="...">
<jalios:wysiwyg><%= html %></jalios:wysiwyg>
</jalios:truncate>

Vous pourrez retrouver ici les dernières nouvelles et les retours d'expérience de l'équipe technique Jalios :

  • Points techniques
  • Retours d'expérience
  • Bonnes pratiques
  • Sécurité
  • Méthodologie Etc.

Ainsi que les principales actualités Jalios.

Recent posts