Ajout d’un attribut personnalisé à Clientlibs via Sling Transformers

Que sont les transformateurs Sling ?
Les Sling Transformers sont essentiellement des services OSGi utilisés dans le framework Sling Rewriter pour modifier ou transformer le contenu HTML ou XML avant qu’il ne soit rendu ou livré au client. Ils sont puissants lorsque nous devons manipuler le contenu de sortie sans modifier la structure du contenu d’origine.
Concepts clés des transformateurs Sling
- Pipeline de réécriture de Sling : Un Sling Transformer fait partie du pipeline Sling Rewriter, qui traite le contenu de la ressource demandée. Le pipeline se compose d’une série de composants, tels que des générateurs, des transformateurs et des sérialiseurs.
- Générateurs : Les générateurs génèrent le contenu initial (généralement HTML ou XML).
- Transformateurs : Les transformateurs modifient le contenu de diverses manières (par exemple, en ajoutant des attributs, en filtrant le contenu).
- Sérialiseurs : Ceux-ci génèrent le contenu transformé (généralement au format HTML ou XML).
Ajout d’attributs personnalisés aux bibliothèques client via Sling Transformers :
Tout en incluant les bibliothèques clientes, nous pouvons également inclure certains attributs si cela est nécessaire.
Ces attributs sont :
- asynchrone = vrai | FAUX
- origine croisée = anonyme | utiliser les informations d’identification
- différer = vrai | FAUX
- intégrité = {chaîne}
- nomodule = vrai | FAUX
async=true,type=’module’}”/>
Mais que se passe-t-il si nous devons ajouter des attributs personnalisés tout en appelant les bibliothèques clientes comme des attributs de données ?
Cas d’utilisation courants
- Ajouter ou modifier des attributs HTML (par exemple, ajouter un attribut de données).
- Modification dynamique du contenu en fonction de certaines conditions (par exemple, modification du contenu en fonction des paramètres régionaux).
- Injecter des balises d’analyse, des scripts ou d’autres métadonnées dans HTML.
- Désinfection du contenu (par exemple, suppression des éléments indésirables).
Énoncé du problème
Nous avons un cas d’utilisation dans lequel nous devons ajouter un attribut personnalisé (consentement aux cookies de données) pour toutes les bibliothèques clientes.
Solution:
- Puisque seul un certain ensemble d’attributs est autorisé par défaut, que nous pouvons ajouter directement, donc ajouter consentement aux cookies de données, nous avons utilisé Sling Transformer.
- Nous avons créé un Transformer qui implémente essentiellement l’interface Transformer et TransformerFactory.
- Nous devons également définir le type de pipeline qui est essentiellement utilisé pour identifier de manière unique le transformateur référencé par la configuration du pipeline.
- L’implémentation de Transformer fournit une certaine méthode qui nous aide à modifier le HTML avant de le restituer au client sans apporter de modifications au balisage réel.
- Nous devons également configurer un pipeline de réécriture HTML.
Mesures:
- Création d’un transformateur personnalisé : Un transformateur personnalisé doit être créé pour implémenter TransformerFactory. Nous devons définir le pipeline. tapez également qui est utilisé dans le pipeline de réécriture HTML.
Transformateur
- Implémentation des méthodes TransformerFactory : Nous obtiendrons plusieurs méthodes de TransformerFactory. À partir de cela, nous devons écrire la logique de transformation dans la méthode startElement. Dans cette méthode, nous utilisons ContentHandler pour modifier les attributs.
Méthode de remplacement
Sortir:

Résultat final
Conclusion
Nous pouvons ajouter des attributs lors de l’appel des bibliothèques clientes mais la liste de ces attributs est limitée. Par conséquent, si nous souhaitons ajouter un attribut personnalisé aux bibliothèques clientes, nous pouvons utiliser les Sling Transformers qui nous aideront à modifier le HTML avant de le livrer au client.
Références
https://sling.apache.org/documentation/bundles/output-rewriting-pipelines-org-apache-sling-rewriter.html
https://wcm.io/wcm/ui/clientlibs/usage.html
Source link