In alcuni casi può essere necessario creare un insieme di più pagine con la stessa struttura e contenuti diversi. Tramite l’interfaccia standard di AEM sarebbe necessario creare ogni singola pagina, trascinarvi i componenti appropriati e completarli uno a uno.
Con la funzione di scaffolding è invece possibile creare un modulo (scaffolding significa letteralmente impalcatura) con i campi necessari per creare la struttura desiderata per le pagine e quindi utilizzare il modulo per creare agevolmente pagine basate su tale struttura.
Lo Scaffolding (nell’interfaccia classica) rispetta l’ereditarietà MSM.
Le scaffolding sono memorizzate nella console Strumenti dell'amministratore del sito.
Apri la console Strumenti e fai clic su Scaffolding pagine predefinito.
Quindi fai clic su geometrixx.
In geometrixx è disponibile una pagina di scaffolding denominata News. Fai doppio clic sulla pagina per aprirla.
La pagina di scaffolding è costituita da un modulo con un campo per ogni elemento di contenuto che costituirà la pagina da creare e quattro parametri importanti a cui si accede tramite la pagina Proprietà pagina della pagina di scaffolding.
Le proprietà della pagina di scaffolding sono:
Testo titolo: nome della pagina di scaffolding stessa. In questo esempio è denominata “News”.
Descrizione: visualizzata sotto il titolo della pagina di scaffolding.
Modello di destinazione: modello che verrà utilizzato dalla pagina di scaffolding per creare una nuova pagina. In questo esempio il modello è Pagina contenuto Geometrixx.
Percorso di destinazione: percorso della pagina padre in cui la pagina di scaffolding dovrà creare le nuove pagine. In questo esempio il percorso è /content/geometrixx/en/news.
Il corpo della pagina di scaffolding è costituito dal modulo. Se un utente desidera creare una pagina tramite la pagina di scaffolding, deve compilare il modulo e fare clic su Crea in basso. Il modulo News dell’esempio precedente include i campi seguenti:
Titolo: nome della pagina da creare. Questo campo è presente in tutte le pagine di scaffolding.
Testo: questo campo corrisponde a un componente di testo nella pagina risultante.
Immagine: Questo campo corrisponde a un componente Immagine nella pagina risultante.
Immagine/Avanzato - Titolo: titolo dell’immagine.
Immagine/Avanzato - Testo Alt: testo alternativo dell’immagine.
Immagine/Avanzato: Descrizione: Descrizione dell’immagine.
Immagine/Avanzato: Dimensione: dimensione dell’immagine.
Tag/Parole chiave: metadati da assegnare alla pagina. Questo campo è presente in tutte le pagine di scaffolding.
Per creare una nuova pagina di scaffolding, passate alla console Strumenti, quindi Scaffolding pagina predefinito e create una nuova pagina. Sarà disponibile un singolo tipo di modello di pagina, il modello Scaffolding.
Passate alle proprietàpaginadella nuova pagina e impostate Testo titolo, Descrizione , Modello Target e Percorso Target, come descritto sopra.
*Occorre quindi definire la struttura della pagina che verrà creata dalla pagina di scaffolding. A questo scopo, passate alla modalità di progettazione nella pagina di scaffolding. Viene visualizzato un collegamento che consente di modificare la pagina di scaffolding nell’editor basato su finestra di dialogo.
Utilizzando l’editor basato su finestra di dialogo potete specificare le proprietà che verranno create ogni volta che viene creata una nuova pagina tramite questa pagina di scaffolding.
La definizione della finestra di dialogo per una pagina di scaffolding funziona in modo simile a quella di un componente (vedi Componenti). Esistono tuttavia alcune importanti differenze:
sling:resourceType
viene compilata automaticamente alla creazione del paragrafo. Per una pagina di scaffolding, la finestra di dialogo stessa deve includere tutte le informazioni che definiscono sia il contenuto che il componente assegnato per un determinato paragrafo. Nelle finestre di dialogo delle pagine di scaffolding tali informazioni devono essere fornite utilizzando campi nascosti, in modo da inviare le informazioni al momento della creazione della pagina.Per comprendere il funzionamento, è possibile osservare la finestra di dialogo della pagina di scaffolding News nell’esempio nell’editor basato su finestra di dialogo. Apri la pagina di scaffolding in modalità progettazione e fai clic sul collegamento per l’editor basato su finestra di dialogo.
Ora, fare clic sul campo della finestra di dialogo Finestra di dialogo > Pannello a schede > Testo > Testo, come segue:
Sul lato destro dell’editor basato su finestra di dialogo viene visualizzato l’elenco delle proprietà del campo:
Osserva la proprietà nome per questo campo, con valore
./jcr:content/par/text/text
Questo è il nome della proprietà in cui verrà scritto il contenuto del campo quando la pagina di scaffolding verrà utilizzata per creare una pagina. La proprietà è definita come percorso relativo rispetto al nodo che rappresenta la pagina da creare. Specifica la proprietà text, sotto il nodo text, che si trova sotto il nodo par, che a sua volta è un nodo figlio del nodo jcr:content sotto il nodo della pagina.
Tale valore definisce il percorso di memorizzazione del contenuto per il testo che dovrà essere inserito in questo campo. È tuttavia necessario specificare altre due caratteristiche per il contenuto, ovvero:
Nella finestra di dialogo di un componente normale, non sarebbe necessario specificare tali informazioni perché sono implicite, essendo la finestra di dialogo già associata a un componente specifico.
Per specificare queste due informazioni si utilizzano i campi nascosti. Fare clic sul primo campo nascosto Finestra di dialogo > Pannello a schede > Testo > Nascosto, come segue:
Le proprietà di questo campo nascosto sono le seguenti:
La proprietà nome del campo nascosto è
./jcr:content/par/text/textIsRich
Si tratta di una proprietà booleana utilizzata per interpretare la stringa di testo memorizzata in ./jcr:content/par/text/text.
Poiché il testo deve essere interpretato come testo RTF, è necessario specificare la proprietà value
di questo campo come true
.
L'editor basato su finestra di dialogo consente all'utente di modificare i valori delle proprietà esistenti nella definizione della finestra di dialogo. Per aggiungere una nuova proprietà, l’utente deve utilizzare CRXDE Lite. Ad esempio, i nuovi campi nascosti aggiunti alla definizione di una finestra di dialogo con l’editor basato su finestra di dialogo non dispongono della proprietà valore, ovvero una proprietà di nome "valore". Se per il campo nascosto in questione è necessario impostare una proprietà valore predefinita, quest’ultima dovrà essere aggiunta manualmente tramite uno degli strumenti CRX. Il valore non può essere aggiunto direttamente tramite l’editor basato su finestra di dialogo. Se tuttavia la proprietà è già presente, è possibile modificarne il valore tramite l’editor basato su finestra di dialogo.
Il secondo campo nascosto può essere visualizzato facendo clic su di esso, come mostrato nella figura:
Le proprietà di questo campo nascosto sono le seguenti:
La proprietà nome del campo nascosto è
./jcr:content/par/text/sling:resourceType
e il valore fisso specificato per tale proprietà è
foundation/components/textimage
``Tale valore indica che per rappresentare il contenuto di testo del paragrafo è necessario utilizzare il componente Testo e immagine. Utilizzando con il valore booleano isRichText
specificato nell'altro campo nascosto, il componente può eseguire il rendering della stringa di testo effettiva memorizzata in ./jcr:content/par/text/text
nel modo desiderato.
Nell’interfaccia classica, lo scaffolding è completamente integrato con l’ereditarietà MSM (se applicabile).
Quando apri una pagina nella modalità di scaffolding (utilizzando l’icona nella parte inferiore di supporto) tutti i componenti che sono soggetti a ereditarietà verranno visualizzati da:
Questi mostrano che il componente non può essere modificato finché l’ereditarietà non viene annullata.
È paragonabile ai componenti ereditati quando si modifica il contenuto della pagina.
Facendo clic sul simbolo del lucchetto o sull’icona dell’immagine è possibile interrompere l’ereditarietà:
Dopo lo sblocco è possibile ripristinare l’ereditarietà con un clic sul simbolo del lucchetto aperto; tutte le modifiche apportate andranno perdute.
Se l'ereditarietà viene annullata a livello di pagina (dalla scheda LiveCopy di Proprietà pagina), tutti i componenti saranno modificabili in modalità Scaffolding (verranno visualizzati in stato non bloccato).