Mettre en place un RewriterTransformerFactory personnalisé

Problème

Les liens dans les balises "IMG" et "FORM" ne sont pas réorganisés (en opposition aux liens dans les balises "A")

Résolution

Afin d'améliorer le pipeline de correction, vous pouvez le faire en mettant en œuvre un RewriterTransformerFactory personnalisé [1]. Il s’agit d’un composant facultatif utilisé pour étendre le mécanisme de correction existant. Un tel RewriterTransformerFactory doit fournir la mise en place d'un [2] transformer par laquelle les fichiers HTML à corriger passent comme des événements SAX. Pour accélérer la mise en place des transformeurs personnalisés pour la correction, une classe AbstractContentHandler [3] est disponible pour l'extension contenant des mises en place par défaut de méthodes définies par l'interface org.xml.sax.ContentHandler.

Voici un exemple de squelette :

package x.y.z;
import com.day.cq.rewriter.pipeline.AbstractContentHandler;
import com.day.cq.rewriter.pipeline.RewriterTransformerFactory;
import com.day.cq.rewriter.pipeline.Transformer;
/*
*
* @scr.component metatype="no"
* @scr.service
* @scr.property name="service.ranking" value="-100" type="Integer"
*/
public class MyRewriterTransformer extends AbstractContentHandler
               implements RewriterTransformerFactory, Transformer {

  // override startElement method
  public void startElement(String uri, String loc, String raw, Attributes a)
               throws SAXException {

      // implement your custom link rewriting here
  }

  public Transformer createTransformer() {
      return new MyRewriterTransformer();
  }
}

Notez que la valeur de la propriété de classement des services influence l'ordre lorsque ce transformateur de correction sera déclenché. Voir [1] pour plus de détails.

S'applique à

CQ5.2.x

[1] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/RewriterTransformerFactory.html


[2] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/Transformer.html


[3] http://dev.day.com/content/docs/v5_2/cq-wcm-javadoc/index.html?com/day/cq/rewriter/pipeline/AbstractContentHandler.html

Logo Adobe

Accéder à votre compte