Extensiones de AEM

Similar a las Extensiones de Apache Sling de la especificación de HTL, AEM ofrece algunas opciones de expresión adicionales que hacen que trabajar con conceptos de AEM sea un poco más fácil directamente en los scripts HTL.

i18n

Las mismas tres opciones adicionales que en Apache Sling pueden usarse junto con i18n:

  • locale
  • hint
  • basename

Sin embargo, en AEM, la compatibilidad con la internacionalización para HTL se implementa con la ayuda de la API desde el paquete com.day.cq.i18n.

data-sly-include

En AEM, data-sly-include puede tomar una opción adicional wcmmode que controla el Modo WCM para el script incluido. Los valores permitidos son los nombres de las constantes de enumeración disponibles.

data-sly-resource

Además de las rutas y los Resources, el elemento de bloque data-sly-resource también puede funcionar con Maps o Records. Con ambos enfoques, se debe proporcionar la propiedad de cadena resourceName. Su valor se utiliza para crear un Recurso sintético que se incluye en el contexto de procesamiento. El resto de las propiedades del Record o Map que se pasó a data-sly-resource se utilizará como propiedades Resource normales. Si falta la propiedad sling:resourceType en este mapa, se asumirá que el tipo de recurso es el valor de la opción de expresión resourceType o el tipo de recurso del recurso actual que administra el procesamiento.

Dadas las siguientes propiedades de mapa/registro disponibles en el ámbito del script como map:

{
    resourceName: "myText",
    "sling:resourceType": "core/wcm/components/text/v2/text",
    "text": "Hello World!"
}

Y dado el siguiente marcado:

<div class="outer" data-sly-resource="${map}"></div>

Se espera el siguiente resultado:

<div class="outer">
    <div class="myText">
        <div data-cmp-data-layer="{&quot;text-e58d65c472&quot;:{&quot;@type&quot;:&quot;core/wcm/components/text/v2/text&quot;,&quot;xdm:text&quot;:&quot;<p>Hello world!</p>&quot;}}" id="text-e58d65c472" class="cmp-text">
            <p>Hello world!</p>
        </div>
  </div>
</div>

En esta página