Überlagerungen overlays

CAUTION
AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.

AEM (und davor, CQ) verwendet seit langem das Prinzip von Überlagerungen, um Ihnen zu ermöglichen, die Konsolen und anderen Funktionen (z. B. Seitenbearbeitung).

Der Begriff „Überlagerung“ kann in unterschiedlichen Zusammenhängen verwendet werden. In diesem Kontext (Erweiterung der AEM) bedeutet eine Überlagerung, die vordefinierten Funktionen zu übernehmen und eigene Definitionen darüber aufzuzwingen (um die Standardfunktionalität anzupassen).

In einer Standardinstanz befindet sich die vordefinierte Funktion unter /libs und es empfiehlt sich, die Überlagerung (Anpassungen) unter der Verzweigung /apps zu definieren. AEM verwendet einen Suchpfad, um eine Ressource zu finden, wobei zuerst die Verzweigung /apps und dann die Verzweigung /libs durchsucht wird (der Suchpfad kann konfiguriert werden). Durch diesen Mechanismus hat Ihre Überlagerung (und die dort definierten Anpassungen) Priorität.

Seit AEM 6.0 wurden Änderungen an der Implementierung und Verwendung von Überlagerungen vorgenommen:

  • Ab AEM 6.0 – für Granite-bezogene Überlagerungen (d. h. Touch-optimierte Benutzeroberfläche)

    • Methode

      • Rekonstruieren Sie die entsprechende /libs-Struktur unter /apps.

        Dies erfordert keine 1:1-Kopie, der Sling Resource Merger wird verwendet, um die erforderlichen Originaldefinitionen zu vergleichen. Der Sling Resource Merger stellt Services für den Zugriff auf und die Zusammenführung von Ressourcen mittels Vergleichsmechanismen bereit.

      • Nehmen Sie beliebige Änderungen unter /apps vor.

    • Vorteile

      • Robuster gegenüber Änderungen unter /libs.
      • Nur die erforderlichen Aspekte müssen neu definiert werden.
  • Überlagerungen, die nicht aus Granite stammen, und Überlagerungen in Versionen vor AEM 6.0

    • Methode

      • Kopieren der Inhalte von /libs nach /apps

        Sie müssen die gesamte Unterverzweigung einschließlich der Eigenschaften kopieren.

      • Nehmen Sie beliebige Änderungen unter /apps vor.

    • Nachteile

      • Obwohl Ihre Änderungen nicht verloren gehen, wenn sich etwas unter /libs ändert, müssen Sie möglicherweise bestimmte Änderungen in Ihrer Überlagerung unter /apps neu erstellen.
CAUTION
Der Sling Resource Merger und die zugehörigen Methoden können nur mit Granite verwendet werden. Das bedeutet, dass die Erstellung einer Überlagerung mit einem Strukturgerüst nur für die standardmäßige Touch-optimierte Benutzeroberfläche geeignet ist.
Überlagerungen für andere Bereiche (einschließlich der klassischen Benutzeroberfläche) umfassen das Kopieren des entsprechenden Knotens und der gesamten Unterstruktur und dann die erforderlichen Änderungen.

Überlagerungen sind die empfohlene Methode für viele Änderungen, z. B. Konfigurieren der Konsolen oder Erstellen der Auswahlkategorie für den Asset-Browser im Seitenbereich (wird beim Erstellen von Seiten verwendet). Sie sind aus folgenden Gründen erforderlich:

  • Sie dürfen keine Änderungen in der Verzweigung /libs vornehmen. ​Jegliche Änderungen, die Sie vornehmen, können verloren gehen, da diese Verzweigung in den folgenden Fällen Änderungen unterliegt:

    • Aktualisierung auf Ihrer Instanz
    • Hotfix anwenden
    • Feature Pack installieren
  • Überlagerungen bündeln Ihre Änderungen an zentraler Stelle und erleichtern es Ihnen, Ihre Änderungen zu verfolgen, zu migrieren, zu sichern und/oder zu debuggen.

Konfigurieren der Suchpfade configuring-the-search-paths

Bei Überlagerungen handelt es sich bei der bereitgestellten Ressource um ein Aggregat der abgerufenen Ressourcen und Eigenschaften, je nach den zu definierenden Suchpfaden:

  • Der Suchpfad des Ressourcen-Resolvers wie in der OSGi-Konfiguration für die Apache Sling-Resource Resolver Factory definiert

    • Die von oben nach unten sortierte Reihenfolge der Suchpfade gibt die jeweiligen Prioritäten an.
    • In einer Standardinstallation sind die primären Standardwerte /apps, /libs – der Inhalt von /apps hat also eine höhere Priorität als der von /libs, (d. h. er überlagert diesen).
  • Zwei Dienstbenutzer benötigen JCR:READ-Zugriff auf den Speicherort der Skripte. Diese Benutzer sind: „components-search-service“ (verwendet von den com.day.cq.wcm.coreto access/cache-Komponenten) und „sling-scripting“ (verwendet von „org.apache.sling.servlets.resolver“, um Servlets zu finden).

  • Die folgende Konfiguration muss außerdem so konfiguriert werden, dass sie dem Speicherort für Ihre Skripte entspricht (in diesem Beispiel unter /etc, /libs oder /apps).

    code language-none
    PID = org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl
    resource.resolver.searchpath=["/etc","/apps","/libs"]
    resource.resolver.vanitypath.whitelist=["/etc/","/apps/","/libs/","/content/"]
    
  • Schließlich muss noch der Servlet Resolver konfiguriert werden (in diesem Beispiel auch, um /etc hinzuzufügen).

    code language-none
    PID = org.apache.sling.servlets.resolver.SlingServletResolver
    servletresolver.paths=["/bin/","/libs/","/apps/","/etc/","/system/","/index.servlet","/login.servlet","/services/"]
    

Anwendungsbeispiel example-of-usage

Einige Beispiele werden behandelt, wenn:

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e