AEM-Erweiterungen aem-extensions
Ähnlich wie die Apache Sling-Erweiterungen der HTL-Spezifikation bietet AEM einige zusätzliche Ausdrucksoptionen, die das Arbeiten mit AEM-Konzepten direkt in den HTL-Skripten etwas erleichtern.
i18n i18n
Die gleichen drei zusätzlichen Optionen wie in Apache Sling können zusammen mit i18n
verwendet werden:
locale
hint
basename
In AEM wird die Internationalisierungsunterstützung für HTL jedoch mit Hilfe der API aus dem com.day.cq.i18n
-Paket implementiert.
data-sly-include
data-sly-include
In AEM kann data-sly-include
eine zusätzliche Option wcmmode
annehmen, die den WCM-Modus für das enthaltene Skript steuert. Die zulässigen Werte sind die Namen der verfügbaren Aufzählungskonstanten.
data-sly-resource
data-sly-resource
Zusätzlich zu Pfaden und Resources
kann das data-sly-resource
-Blockelement auch mit Maps
oder Records
arbeiten. Bei beiden Ansätzen muss die Eigenschaft resourceName
als Zeichenfolge angegeben werden. Ihr Wert wird verwendet, um eine synthetische Ressource zu erstellen, die in den Rendering-Kontext aufgenommen wird. Die restlichen Eigenschaften von Record
oder Map
, die an data-sly-resource
übergeben wurden, werden als normale Resource
-Eigenschaften verwendet. Wenn die Eigenschaft sling:resourceType
in dieser Zuordnung fehlt, wird als Ressourcentyp entweder der Wert der resourceType
-Ausdrucksoption oder der Ressourcentyp der aktuellen Ressource, die das Rendering steuert, angenommen.
Unter Berücksichtigung der folgenden Zuordnungs-/Datensatz-Eigenschaften, die im Skriptbereich als map
verfügbar sind:
{
resourceName: "myText",
"sling:resourceType": "core/wcm/components/text/v2/text",
"text": "Hello World!"
}
Und bei der folgenden Aufschlüsselung:
<div class="outer" data-sly-resource="${map}"></div>
Folgende Ausgabe wird erwartet:
<div class="outer">
<div class="myText">
<div data-cmp-data-layer="{"text-e58d65c472":{"@type":"core/wcm/components/text/v2/text","xdm:text":"<p>Hello world!</p>"}}" id="text-e58d65c472" class="cmp-text">
<p>Hello world!</p>
</div>
</div>
</div>