Modelli di pagina - Static

Un modello viene utilizzato per creare una pagina e definisce quali componenti possono essere utilizzati all’interno dell’ambito selezionato. Un modello è una gerarchia di nodi con la stessa struttura della pagina da creare, ma senza alcun contenuto effettivo.

Ogni modello vi presenta una selezione di componenti disponibili per l’uso.

  • I modelli sono composti di Componenti;
  • I componenti utilizzano e consentono l'accesso ai Widget e questi vengono utilizzati per il rendering del contenuto.
NOTA

Sono inoltre disponibili modelli modificabili che rappresentano il tipo consigliato di modelli per la maggior flessibilità e per le funzioni più recenti.

Proprietà e nodi secondari di un modello

Un modello è un nodo di tipo cq:Template con le seguenti proprietà e nodi secondari:

Nome
Tipo
Descrizione
.
cq:Template Modello corrente. Un modello è di tipo nodo cq:Template.
allowChildren Stringa[] Percorso di un modello che può essere un elemento secondario di questo modello.
allowParents Stringa[] Percorso di un modello che può essere un elemento padre del modello.
allowPaths Stringa[] Percorso di una pagina che può essere basata su questo modello.
jcr:created Data Data di creazione del modello.
jcr:description Stringa Descrizione del modello.
jcr:title Stringa Titolo del modello.
classifica Lungo Classifica del modello. Utilizzato per visualizzare il modello nell'interfaccia utente.
jcr:content cq:PageContent Nodo contenente il contenuto del modello.
thumbnail.png nt:file Miniatura del modello.
icon.png nt:file Icona del modello.

Un modello è la base di una pagina.

Per creare una pagina, il modello deve essere copiato (struttura ad albero nodo /apps/<myapp>/template/<mytemplate>) nella posizione corrispondente nella struttura ad albero del sito: questo è ciò che accade se una pagina viene creata utilizzando la scheda Siti Web.

Questa azione di copia assegna alla pagina anche il contenuto iniziale (in genere Contenuto di livello principale) e la proprietà sling:resourceType, il percorso del componente della pagina utilizzato per eseguire il rendering della pagina (tutto nel nodo figlio jcr:content).

Struttura dei modelli

Occorre considerare due aspetti:

  • la struttura del modello stesso
  • la struttura del contenuto prodotto quando viene utilizzato un modello

Struttura di un modello

Un modello viene creato sotto un nodo di tipo cq:Template.

screen_shot_2012-02-13at63646pm

È possibile impostare diverse proprietà, in particolare:

  • jcr:title - title per il modello; viene visualizzata nella finestra di dialogo durante la creazione di una pagina.
  • jcr:description - descrizione del modello; viene visualizzata nella finestra di dialogo durante la creazione di una pagina.

Questo nodo contiene un nodo jcr:content (cq:PageContent) da utilizzare come base per il nodo di contenuto delle pagine risultanti; questo fa riferimento, utilizzando sling:resourceType, al componente da utilizzare per il rendering del contenuto effettivo di una nuova pagina.

screen_shot_2012-02-13at64010pm

Questo componente viene utilizzato per definire la struttura e la progettazione del contenuto al momento della creazione di una nuova pagina.

screen_shot_2012-02-13at64137pm

Contenuto prodotto da un modello

I modelli vengono utilizzati per creare pagine di tipo cq:Page (come indicato in precedenza, una pagina è un tipo speciale di componente). Ogni pagina AEM ha un nodo strutturato jcr:content. Tale comportamento:

  • è di tipo cq:PageContent
  • è un tipo di nodo strutturato che contiene una definizione del contenuto definita
  • dispone di una proprietà sling:resourceType per fare riferimento al componente che contiene gli script sling utilizzati per il rendering del contenuto

Modelli predefiniti

AEM viene fornito con una serie di modelli predefiniti disponibili. In alcuni casi, potrebbe essere utile utilizzare i modelli così come sono. In tal caso, è necessario assicurarsi che il modello sia disponibile per il sito Web.

Ad esempio, AEM sono disponibili diversi modelli, tra cui una pagina di contenuto e una home page.

Titolo Componente Posizione Scopo
Home page homepage geometrixx Modello della home page di Geometrixx.
Pagina contenuto contentpage geometrixx Modello della pagina di contenuto di Geometrixx.

Visualizzazione dei modelli predefiniti

Per visualizzare un elenco di tutti i modelli nella directory archivio, procedere come segue:

  1. In CRXDE Lite, aprite il menu Strumenti e fate clic su Query.

  2. Nella scheda Query

  3. Per Tipo selezionate XPath.

  4. Nel campo di inserimento Query immettete la stringa seguente:

    //element(&ast;, cq:Template)

  5. Fate clic su Esegui. Nella casella dei risultati viene visualizzato l’elenco di modelli disponibili.

Nella maggior parte dei casi, si prende un modello esistente e ne si sviluppa uno nuovo per uso personale. Per ulteriori informazioni, vedere Sviluppo di modelli di pagina.

Per abilitare un modello esistente per il sito Web e visualizzarlo nella finestra di dialogo Crea pagina quando si crea una pagina all'interno di Siti Web dalla console Siti Web, impostare la proprietà allowPaths del nodo del modello su: /content(/.&ast;?lang=it)?

Modalità di applicazione delle strutture dei modelli

Quando gli stili vengono definiti nell'interfaccia utente utilizzando la modalità Progettazione, la progettazione viene mantenuta nel percorso esatto del nodo di contenuto per il quale è definito lo stile.

ATTENZIONE

Adobe consiglia di applicare le progettazioni solo tramite Modalità progettazione.

Ad esempio, la modifica dei progetti in CRX DE non è consigliata e l’applicazione di tali progetti può variare da un comportamento all’altro.

Se le progettazioni vengono applicate solo in modalità Progettazione, non sono applicabili le sezioni seguenti, Risoluzione percorso progettazione, Albero decisionale e Esempio.

NOTA

In questa sezione viene descritto il comportamento per la risoluzione dei percorsi di progettazione AEM 6.4.2.0.

Risoluzione percorso progettazione

Quando eseguite il rendering del contenuto basato su un modello statico, AEM tenterà di applicare al contenuto gli stili e la struttura più rilevanti in base a un passaggio della gerarchia dei contenuti.

AEM determina lo stile più rilevante per un nodo di contenuto nell'ordine seguente:

  • Se è presente una progettazione per il percorso completo ed esatto del nodo di contenuto (come quando la progettazione viene definita in modalità Progettazione), utilizzate tale progettazione.
  • Se è presente una progettazione per il nodo di contenuto dell'elemento padre, utilizzatela.
  • Se esiste una progettazione per qualsiasi nodo sul percorso del nodo di contenuto, utilizzate tale progettazione.

Negli ultimi due casi, se è presente più di una progettazione applicabile, utilizzate quella più vicina al nodo del contenuto.

Albero decisionale

Si tratta di una rappresentazione grafica della logica Risoluzione percorso progettazione.

design_path_resolution

Esempio

Considerate la struttura di contenuto semplice come segue, in cui una progettazione può essere applicata a uno qualsiasi dei nodi:

/root/branch/leaf

Nella tabella seguente viene descritto come AEM scegliere una progettazione.

Ricerca Di Design Per
Esistono Designer Per
Progettazione scelta
Commento
leaf

root

branch

leaf

leaf La corrispondenza più esatta viene sempre presa.
leaf

root

branch

branch Tornate alla corrispondenza più vicina nella parte inferiore della struttura.
leaf root root Se tutto il resto non riesce, prendere il resto.
branch branch branch
branch

branch

leaf

branch
branch

root

branch

branch
branch

root

leaf

root

Se non c'è una corrispondenza esatta, prendete quella più in basso nell'albero.

Il presupposto è che questo sarà sempre applicabile, ma più in alto la struttura ad albero può essere troppo specifica.

Sviluppo di modelli di pagina

AEM modelli di pagina sono semplicemente modelli utilizzati per creare nuove pagine. Possono contenere il contenuto iniziale, o il numero di contenuto, necessario, il cui ruolo consiste nel creare le strutture di nodi iniziali corrette, con le proprietà richieste (principalmente sling:resourceType) impostate per consentire la modifica e il rendering.

Creazione di un nuovo modello (basato su un modello esistente)

È inutile dire che un nuovo modello può essere creato completamente da zero, ma spesso un modello esistente verrà copiato e aggiornato per risparmiare tempo e fatica. Ad esempio, i modelli all'interno di Geometrixx possono essere utilizzati per iniziare a utilizzarli.

Per creare un nuovo modello basato su un modello esistente:

  1. Copiare un modello esistente (preferibilmente con una definizione il più vicino possibile a quello che si desidera ottenere) in un nuovo nodo.

    I modelli sono generalmente memorizzati in /apps/<nome-sito>/templates/<nome-modello>.

    NOTA

    L’elenco dei modelli disponibili dipende dalla posizione della nuova pagina e dalle limitazioni alla posizione specificate in ciascun modello. Vedere Disponibilità dei modelli.

  2. Modificate il jcr:title del nuovo nodo del modello in modo che rifletta il nuovo ruolo. È inoltre possibile aggiornare jcr:description, se appropriato. Assicuratevi di modificare la disponibilità del modello della pagina nel modo appropriato.

    NOTA

    Se desiderate che il modello venga visualizzato nella finestra di dialogo Crea pagina quando create una pagina all'interno di Siti Web dalla console Siti Web, impostate la proprietà allowedPaths del nodo del modello su: /content(/.*)?

    chlimage_1-251

  3. Copiate il componente su cui si basa il modello (indicato dalla proprietà sling:resourceType del nodo jcr:content all'interno del modello) per creare una nuova istanza.

    I componenti sono generalmente memorizzati in /apps/<nome-sito>/components/<nome-componente>.

  4. Aggiornare jcr:title e jcr:description del nuovo componente.

  5. Sostituite thumbnail.png per visualizzare una nuova immagine in miniatura nell’elenco di selezione del modello (dimensione 128 x 98 px).

  6. Aggiornate il nodo sling:resourceType del modello jcr:content per fare riferimento al nuovo componente.

  7. Apportate ulteriori modifiche alla funzionalità o alla progettazione del modello e/o del componente sottostante.

    NOTA

    Le modifiche apportate al nodo /apps/<sito Web>/templates/<nome-modello> interesseranno l'istanza del modello (come nell'elenco di selezione).
    Le modifiche apportate al nodo /apps/<sito Web>/components/<nome-componente> influiranno sulla pagina del contenuto creata quando viene utilizzato il modello.

    Ora potete creare una pagina all’interno del sito Web utilizzando il nuovo modello.

NOTA

La libreria client dell'editor presuppone la presenza dello spazio dei nomi cq.shared nelle pagine di contenuto, e se è assente, si verificherà l'errore JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined.
Tutte le pagine di contenuto di esempio contengono cq.shared, pertanto qualsiasi contenuto basato su di esse include automaticamente cq.shared. Tuttavia, se decidete di creare da zero pagine di contenuto personalizzate senza basarle su contenuti di esempio, dovete includere lo spazio dei nomi cq.shared.
Per ulteriori informazioni, vedere Utilizzo di librerie lato client.

Come rendere disponibile un modello esistente

Questo esempio illustra come consentire l'utilizzo di un modello per determinati percorsi di contenuto. I modelli disponibili per l'autore della pagina durante la creazione di nuove pagine sono determinati dalla logica definita in Disponibilità dei modelli.

  1. In CRXDE Lite , andate al modello da usare per la pagina, ad esempio il modello Newsletter.

  2. Modificare la proprietà allowedPaths e altre proprietà utilizzate per la disponibilità del modello. Ad esempio, allowedPaths: /content/geometrixx-outdoors/[^/]+(/.*)? indica che questo modello è consentito in qualsiasi percorso in /content/geometrixx-outdoors.

    chlimage_1-252

In questa pagina