Archetipo progetto AEM
L’Archetipo progetto AEM crea un progetto Adobe Experience Manager minimo come punto di partenza per i tuoi progetti, incluso un esempio di componente HTL personalizzato con i modelli Sling per la logica e la corretta implementazione dei Componenti core con il modello proxy consigliato.
Modelli di personalizzazione
Personalizzazione delle finestre di dialogo
Potrebbe risultare conveniente personalizzare le opzioni di configurazione disponibili nella finestra di dialogo di un Componente core, che si tratti della finestra di dialogo per progettazione o della finestra di dialogo per modifica.
Ogni finestra di dialogo ha una struttura di nodi coerente. Si consiglia di replicare questa struttura in un componente ereditante, in modo che le opzioni Sling Resource Merger e Nascondi condizioni possano essere utilizzate per nascondere, sostituire o riordinare le sezioni della finestra di dialogo originale. La struttura da replicare è definita fino al livello del nodo dell’elemento Scheda.
Per essere pienamente compatibile con qualsiasi modifica apportata a una finestra di dialogo nella sua versione corrente, è molto importante che le strutture al di sotto del livello dell’elemento Scheda non vengano toccate (nascoste, aggiunte, sostituite, riordinate, ecc.). Al contrario, un elemento Scheda derivato dall’elemento padre deve essere nascosto tramite la proprietà sling:hideResource
(vedi Proprietà di Sling Resource Merger) e devono essere aggiunti nuovi elementi Scheda contenenti i campi di configurazione personalizzati. La proprietà sling:orderBefore
può essere utilizzata per riordinare gli elementi Scheda, se necessario.
La finestra di dialogo che segue illustra la struttura consigliata e come nascondere e sostituire una scheda ereditata come descritto in precedenza:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="https://sling.apache.org/jcr/sling/1.0"
xmlns:jcr="https://www.jcp.org/jcr/1.0"
xmlns:nt="https://www.jcp.org/jcr/nt/1.0"
xmlns:granite="https://www.adobe.com/jcr/granite/1.0"
jcr:primaryType="nt:unstructured">
<content jcr:primaryType="nt:unstructured">
<items jcr:primaryType="nt:unstructured">
<tabs jcr:primaryType="nt:unstructured">
<items jcr:primaryType="nt:unstructured">
<originalTab
jcr:primaryType="nt:unstructured"
sling:hideResource="true"/>
<myTab
jcr:primaryType="nt:unstructured"
jcr:title="My Tab"
sling:resourceType="granite/ui/components/coral/foundation/container">
<!-- myTab content -->
</myTab>
</items>
</tabs>
</items>
</content>
</jcr:root>