Modelli di pagina page-templates
Durante la creazione di una pagina è necessario selezionare un modello. Il modello di pagina viene utilizzato come base per la nuova pagina. Il modello definisce la struttura della pagina risultante, eventuali contenuti iniziali e i componenti che possono essere utilizzati (proprietà di progettazione). Questo offre diversi vantaggi:
-
I modelli di pagina consentono agli autori specializzati di creare e modificare modelli.
- Tali autori specializzati sono chiamati autori di modelli
- Gli autori dei modelli devono essere membri di
template-authors
gruppo.
-
I modelli di pagina mantengono una connessione dinamica a tutte le pagine create da essi. In questo modo, eventuali modifiche al modello verranno applicate anche alle pagine.
-
I modelli di pagina rendono il componente Pagina più generico, in modo che il componente Pagina principale possa essere utilizzato senza personalizzazione.
Con Modelli di pagina, i pezzi che compongono una pagina sono isolati all’interno dei componenti. Puoi configurare le combinazioni necessarie di componenti in un’interfaccia utente, eliminando in tal modo la necessità di sviluppare un nuovo componente pagina per ogni variante di pagina.
Questo documento:
- Panoramica sulla creazione di un modello di pagina
- Descrive le attività di amministrazione/sviluppatore necessarie per creare modelli modificabili
- Descrive le basi tecniche dei modelli modificabili
- Descrive come AEM valuta la disponibilità di un modello
Creazione di un nuovo modello creating-a-new-template
La creazione di modelli di pagina viene eseguita principalmente con console modelli ed editor modelli da un autore di modelli. Questa sezione offre una panoramica di questo processo e segue con una descrizione di ciò che accade a livello tecnico.
Quando crei un modello modificabile:
-
Creare un cartella per i modelli. Questo non è obbligatorio, ma è una best practice consigliata.
-
Seleziona un tipo di modello. Viene copiato per creare definizione modello.
note note NOTE È disponibile una selezione di tipi di modello pronti all’uso. È inoltre possibile creare tipi di modello specifici per il sito se necessario. -
Configura la struttura, i criteri per i contenuti, il contenuto iniziale e il layout del nuovo modello.
Struttura
- La struttura ti consente di definire componenti e contenuti per il modello.
- I componenti definiti nella struttura del modello non possono essere spostati in una pagina risultante né eliminati dalle pagine risultanti.
- Se desideri che gli autori delle pagine possano aggiungere e rimuovere componenti, aggiungi un sistema di paragrafi al modello.
- I componenti possono essere sbloccati e bloccati di nuovo per consentire di definire il contenuto iniziale.
Per informazioni dettagliate su come un autore di modelli definisce la struttura, consulta Creazione di modelli di pagina.
Per i dettagli tecnici della struttura, vedi Struttura in questo documento.
Criteri
-
I criteri per contenuto definiscono le proprietà di progettazione di un componente.
- Ad esempio, i componenti disponibili o le dimensioni minima/massima.
-
Sono applicabili al modello (e alle pagine create con il modello).
Per informazioni dettagliate su come un autore di modelli definisce i criteri, consulta Creazione di modelli di pagina.
Per informazioni tecniche sui criteri, consulta Criteri per contenuto in questo documento.
Contenuto iniziale
- Il contenuto iniziale definisce il contenuto che verrà visualizzato quando una pagina viene creata per la prima volta in base al modello.
- Il contenuto iniziale può quindi essere modificato dagli autori di pagine.
Per informazioni dettagliate su come un autore di modelli definisce la struttura, consulta Creazione di modelli di pagina.
Per informazioni tecniche sul contenuto iniziale, vedi Contenuto iniziale in questo documento.
Layout
- Puoi definire il layout del modello per una serie di dispositivi.
- Il layout reattivo per i modelli funziona come per la creazione delle pagine.
Per informazioni dettagliate su come un autore di modelli definisce il layout di un modello, consulta Creazione di modelli di pagina.
Per informazioni tecniche sul layout dei modelli, consulta Layout in questo documento.
-
Abilita il modello, quindi consenti la creazione di strutture di contenuto specifiche.
- Un modello può essere abilitato o disabilitato per renderlo disponibile o non disponibile agli autori di pagine.
- Un modello può essere reso disponibile o non disponibile per alcuni rami di pagina.
Per informazioni dettagliate su come un autore di modelli abilita un modello, consulta Creazione di modelli di pagina.
Per informazioni tecniche sull’abilitazione di un modello, consulta Abilitazione e autorizzazione di un modello per l’utentee nel presente documento
-
Utilizzala per creare pagine di contenuto.
- Quando si utilizza un modello per creare una pagina, non vi è alcuna differenza visibile né indicazione tra modelli statici e modificabili.
- Per l’autore della pagina, il processo è trasparente.
Per informazioni dettagliate su come un autore di pagine utilizza i modelli per creare una pagina, consulta Creazione e organizzazione delle pagine.
Per informazioni tecniche sulla creazione di pagine con modelli modificabili, consulta Pagine di contenuto risultanti in questo documento.
cq.shared
nelle pagine di contenuto e, se è assente, l’errore JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
risulterà.cq.shared
, pertanto qualsiasi contenuto basato su di essi include automaticamente cq.shared
. Tuttavia, se decidi di creare pagine di contenuto personalizzate da zero senza basarle su contenuti di esempio, devi assicurarti di includere cq.shared
spazio dei nomi.Cartelle modelli template-folders
Per organizzare i modelli è possibile utilizzare le cartelle seguenti:
global
- Specifico del sito
In un caso di AEM standard, la global
La cartella esiste già nella console dei modelli. Questa contiene i modelli predefiniti e funge da fallback se nella cartella corrente non sono presenti criteri e/o tipi di modello. Puoi aggiungere i modelli predefiniti a questa cartella o crearne una (scelta consigliata).
global
cartella.admin
diritti.I tipi di modello e i criteri vengono ereditati in tutte le cartelle in base al seguente ordine di precedenza:
- La cartella corrente
- Elementi padre della cartella corrente
/conf/global
/apps
/libs
Viene creato un elenco di tutte le voci consentite. Se le configurazioni si sovrappongono ( path
/ label
), viene presentata all’utente solo l’istanza più vicina alla cartella corrente.
Per creare una cartella, puoi effettuare le seguenti operazioni:
- A livello di programmazione o con CRXDE Liti
- Utilizzo di Browser configurazioni
Utilizzo di CRXDE Lite using-crxde-lite
-
È possibile creare una nuova cartella (in /conf) per l’istanza a livello di programmazione o con CRXDE Liti.
Deve essere utilizzata la seguente struttura:
code language-xml /conf <your-folder-name> [sling:Folder] settings [sling:Folder] wcm [cq:Page] templates [cq:Page] policies [cq:Page]
-
Puoi quindi definire le seguenti proprietà sul nodo principale della cartella:
<your-folder-name> [sling:Folder]
- Nome:
jcr:title
- Tipo:
String
- Valore: il titolo (per la cartella) che desideri visualizzare nel Modelli console.
- Nome:
-
Oltre alle autorizzazioni e ai privilegi di authoring standard (ad esempio,
content-authors
) ora devi assegnare i gruppi e definire i diritti di accesso (ACL) necessari affinché gli autori possano creare modelli nella nuova cartella.Il
template-authors
gruppo è il gruppo predefinito che deve essere assegnato. Consulta la sezione ACL e gruppi per i dettagli.
Utilizzo del browser configurazioni using-the-configuration-browser
-
Vai a Navigazione globale > Strumenti > Browser configurazioni.
Le cartelle esistenti sono elencate a sinistra, incluso
global
cartella. -
Fai clic su Crea.
-
In Crea configurazione finestra di dialogo è necessario configurare i seguenti campi:
- Titolo: specifica un titolo per la cartella di configurazione
- Modelli modificabili: seleziona per consentire i modelli modificabili all’interno di questa cartella
-
Clic Crea
ACL e gruppi acls-and-groups
Una volta create le cartelle di modelli (tramite CRXDE o con il Browser configurazioni), per garantire la corretta protezione è necessario definire gli ACL per i gruppi appropriati per le cartelle di modelli.
Le cartelle dei modelli per Esercitazione WKND può essere utilizzato come esempio.
Gruppo di autori di modelli the-template-authors-group
Il template-authors
group è il gruppo utilizzato per gestire l’accesso ai modelli e viene fornito come standard con AEM, ma è vuoto. Gli utenti devono essere aggiunti al gruppo per il progetto/sito.
template-authors
Il gruppo è solo per gli utenti che devono essere in grado di creare nuovi modelli.La tabella seguente descrive le autorizzazioni necessarie per la modifica dei modelli.
Questa impostazione predefinita template-authors
il gruppo copre solo le impostazioni del progetto, in cui tutte template-authors
ai membri è consentito accedere a tutti i modelli e crearli. Per impostazioni più complesse, in cui sono necessari più gruppi di autori di modelli per separare l’accesso ai modelli, è necessario creare più gruppi di autori di modelli personalizzati. Tuttavia, le autorizzazioni per i gruppi di autori di modelli continuerebbero a essere le stesse.
Tipo di modello template-type
Durante la creazione di un modello è necessario specificare un tipo di modello:
-
I tipi di modello forniscono in modo efficace i modelli per un modello. Durante la creazione di un modello, per creare il nuovo modello vengono utilizzati la struttura e il contenuto iniziale del tipo di modello selezionato.
- Il tipo di modello viene copiato per creare il modello.
- Una volta eseguita la copia, l'unica connessione tra il modello e il tipo di modello è un riferimento statico a scopo informativo.
-
I tipi di modello consentono di definire:
- Tipo di risorsa del componente Pagina.
- Il criterio del nodo principale, che definisce i componenti consentiti nell’editor di modelli.
- È consigliabile definire i punti di interruzione per la griglia reattiva e la configurazione dell’emulatore mobile in sul tipo di modello.
-
AEM fornisce una piccola selezione di tipi di modelli predefiniti, ad esempio Pagina di HTML5 e Pagina modulo adattivo.
- Ulteriori esempi sono forniti come parte del Esercitazione WKND.
-
I tipi di modello vengono in genere definiti dagli sviluppatori.
I tipi di modello preconfigurati sono memorizzati in:
/libs/settings/wcm/template-types
/libs
percorso. Questo perché il contenuto di /libs
può essere sovrascritto in qualsiasi momento da un aggiornamento dell’AEM.I tipi di modello specifici per il sito devono essere memorizzati nella posizione simile di:
/apps/settings/wcm/template-types
Le definizioni per i tipi di modelli personalizzati devono essere memorizzate in cartelle definite dall'utente (scelta consigliata) o in alternativa in global
. Ad esempio:
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
/conf/<my-folder>/settings/wcm/template-types
/conf/global/settings/wcm/template-types
/settings/wcm/...
), altrimenti i tipi di modello non vengono trovati.Creazione di tipi di modello creating-template-types
Se è stato creato un modello che può fungere da base per altri modelli, è possibile copiarlo come tipo di modello.
- Crea un modello come faresti con un modello pagina come documentato qui, che fungerà da base per il tipo di modello.
- Utilizzando CRXDE Liti, copia il modello creato da
templates
nodo atemplate-types
nodo sotto cartella modelli. - Elimina il modello da
templates
nodo sotto cartella modelli. - Nella copia del modello che si trova in
template-types
nodo, elimina tuttocq:template
ecq:templateType
proprietà da tuttijcr:content
nodi.
Puoi anche sviluppare un tipo di modello personalizzato utilizzando come base un modello modificabile di esempio, disponibile su GitHub.
CODICE SU GITHUB
Puoi trovare il codice di questa pagina su GitHub
- Apri progetto aem-sites-example-custom-template-type su GitHub
- Scarica il progetto come un file ZIP
Definizioni dei modelli template-definitions
Vengono memorizzate le definizioni per i modelli modificabili cartelle definite dall'utente (consigliato) o in alternativa in global
. Ad esempio:
/conf/<my-folder>/settings/wcm/templates
/conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
/conf/global/settings/wcm/templates
Il nodo principale del modello è di tipo cq:Template
con una struttura di ossatura di:
<template-name>
initial
jcr:content
root
<component>
...
<component>
jcr:content
@property status
policies
jcr:content
root
@property cq:policy
<component>
@property cq:policy
...
<component>
@property cq:policy
structure
jcr:content
root
<component>
...
<component>
cq:responsive
breakpoints
thumbnail.png
Gli elementi principali sono i seguenti:
-
<template-name>
[initial](#initial-content)
jcr:content
[structure](#structure)
[policies](#policies)
thumbnail.png
jcr:content jcr-content
Questo nodo contiene le proprietà per il modello:
-
Nome:
jcr:title
-
Nome:
status
- "Tipo:
String
- Valore:
draft
,enabled
odisabled
- "Tipo:
Struttura structure
Definisce la struttura della pagina risultante:
-
Viene unito al contenuto iniziale (
/initial
) durante la creazione di una pagina. -
Le modifiche apportate alla struttura vengono applicate a tutte le pagine create con il modello.
-
Il
root
(structure/jcr:content/root
) definisce l’elenco dei componenti disponibili nella pagina risultante.- I componenti definiti nella struttura del modello non possono essere spostati o eliminati dalle pagine risultanti.
- Dopo aver sbloccato un componente,
editable
proprietà impostata sutrue
. - Dopo aver sbloccato un componente che contiene già contenuto, questo viene spostato nel
initial
filiale.
-
Il
cq:responsive
Il nodo contiene le definizioni per il layout reattivo.
Contenuto iniziale initial-content
Definisce il contenuto iniziale di una nuova pagina al momento della creazione:
- Contiene un
jcr:content
che viene copiato in qualsiasi nuova pagina. - Viene unito alla struttura (
/structure
) durante la creazione di una pagina. - Le pagine esistenti non verranno aggiornate se il contenuto iniziale viene modificato dopo la creazione.
- Il
root
node contiene un elenco di componenti per definire ciò che è disponibile nella pagina risultante. - Se il contenuto viene aggiunto a un componente in modalità struttura e successivamente viene sbloccato (o viceversa), tale contenuto viene utilizzato come contenuto iniziale.
Layout layout
Quando modifica di un modello è possibile definire il layout, utilizza layout responsivo standard.
Criteri per contenuto content-policies
I criteri per contenuto definiscono le proprietà di progettazione di un componente. Ad esempio, i componenti disponibili o le dimensioni minime/massime. Sono applicabili al modello (e alle pagine create con il modello). I criteri per i contenuti possono essere creati e selezionati nell’editor modelli.
-
La proprietà
cq:policy
, sullaroot
nodo/conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root
Fornisce un riferimento relativo al criterio del contenuto per il sistema paragrafo della pagina. -
La proprietà
cq:policy
, sui nodi espliciti dei componenti inroot
, fornisce collegamenti ai criteri per i singoli componenti. -
Le definizioni effettive dei criteri sono memorizzate in:
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
cq:policy
contiene un riferimento relativo alla configurazione stessa.Criteri di pagina page-policies
I criteri di pagina ti consentono di definire criterio contenuto per la pagina (parsys principale), nel modello o nelle pagine risultanti.
Abilitazione e autorizzazione di un modello per l’utilizzo enabling-and-allowing-a-template-for-use
-
Abilita il modello
Prima di poter utilizzare un modello, è necessario abilitarlo in uno dei modi seguenti:
-
Abilitazione del modello dal Modelli console.
-
Impostazione della proprietà status su
jcr:content
nodo.-
Ad esempio, su:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
-
Definisci la proprietà:
- Nome: stato
- Tipo: String
- Valore:
enabled
-
-
-
Modelli consentiti
-
Definisci i percorsi dei modelli consentiti in Proprietà pagina della pagina o della pagina principale appropriata di un ramo secondario.
-
Imposta la proprietà:
cq:allowedTemplates
Il giornojcr:content
nodo del ramo richiesto.
Ad esempio, con un valore di:
/conf/<your-folder>/settings/wcm/templates/.*
-
Pagine di contenuto risultanti resultant-content-pages
Pagine create da modelli modificabili:
-
Sono create con una sottostruttura unita da
structure
einitial
nel modello -
Includere riferimenti alle informazioni contenute nel modello e nel tipo di modello. Ciò si ottiene con una
jcr:content
con le proprietà:-
cq:template
- Fornisce il riferimento dinamico al modello effettivo; consente di riflettere le modifiche al modello sulle pagine effettive. -
cq:templateType
- Fornisce un riferimento al tipo di modello.
-
Il diagramma precedente mostra l’interrelazione tra modelli, contenuto e componenti:
- Controller -
/content/<my-site>/<my-page>
: pagina risultante che fa riferimento al modello. Il contenuto controlla l'intero processo. In base alle definizioni, accede al modello e ai componenti appropriati. - Configurazione -
/conf/<my-folder>/settings/wcm/templates/<my-template>
- Il modelli e criteri per contenuti correlati definisci la configurazione della pagina. - Modello - Pacchetti OSGi - La Bundle OSGi implementa la funzionalità.
- Visualizza -
/apps/<my-site>/components
: i componenti eseguono il rendering del contenuto negli ambienti di authoring e di pubblicazione.
Durante il rendering di una pagina:
-
Modelli:
- Il
cq:template
proprietà del suojcr:content
Per accedere al modello corrispondente alla pagina, viene fatto riferimento al nodo.
- Il
-
Componenti:
-
Il componente Pagina unirà il
structure/jcr:content
struttura del modello conjcr:content
della pagina.- Il componente Pagina consente all’autore di modificare solo i nodi della struttura del modello contrassegnati come modificabili (e gli eventuali elementi secondari).
- Quando si esegue il rendering di un componente su una pagina, il relativo percorso di tale componente viene ricavato da
jcr:content
nodo; lo stesso percorso sottopolicies/jcr:content
Verrà quindi eseguita una ricerca nel nodo del modello.- Il
cq:policy
proprietà di questo nodo punta al criterio del contenuto effettivo, ovvero contiene la configurazione di progettazione per quel componente.- In questo modo è possibile disporre di più modelli che riutilizzano le stesse configurazioni dei criteri per i contenuti.
- Il
-
Disponibilità dei modelli template-availability
Durante la creazione di una pagina nell’interfaccia di amministrazione del sito, l’elenco dei modelli disponibili dipende dalla posizione della nuova pagina e dalle restrizioni sul posizionamento specificate in ciascun modello.
Le seguenti proprietà determinano se un modello T
può essere utilizzata per inserire una nuova pagina come pagina figlia di P
. Ciascuna di queste proprietà è una stringa con più valori contenente zero o più espressioni regolari utilizzate per la corrispondenza con i percorsi:
-
Il
cq:allowedTemplates
proprietà deljcr:content
sottonodo diP
o un predecessore diP
. -
Il
allowedPaths
proprietà diT
. -
Il
allowedParents
proprietà diT
. -
Il
allowedChildren
proprietà del modello diP
.
La valutazione funziona come segue:
-
Il primo non vuoto
cq:allowedTemplates
è stata trovata una proprietà durante l’ascensione della gerarchia delle pagine che inizia conP
corrisponde al percorso diT
. Se nessuno dei valori corrisponde,T
è stato rifiutato. -
Se
T
ha un valore non vuotoallowedPaths
, ma nessuno dei valori corrisponde al percorso diP
,T
è stato rifiutato. -
Se entrambe le proprietà di cui sopra sono vuote o inesistenti,
T
viene rifiutato a meno che non appartenga alla stessa applicazione diP
.T
appartiene alla stessa applicazione diP
se e solo se il nome del secondo livello del percorso diT
è uguale al nome del secondo livello del percorso diP
. Ad esempio, il modello/apps/wknd/templates/foo
appartiene alla stessa applicazione della pagina/content/wknd
. -
Se
T
ha un valore non vuotoallowedParents
, ma nessuno dei valori corrisponde al percorso diP
,T
è stato rifiutato. -
Se il modello di
P
ha un valore non vuotoallowedChildren
, ma nessuno dei valori corrisponde al percorso diT
,T
è stato rifiutato. -
In tutti gli altri casi:
T
è consentito.
Il diagramma seguente illustra il processo di valutazione del modello:
-
solo il
cq:allowedTemplates
proprietà -
solo nella directory principale del sito
/content/wknd/jcr:content
allowedPaths
, allowedParents
, e allowedChildren
può essere posizionato anche sui modelli per definire regole più sofisticate. Tuttavia, quando possibile, è molto definizione più semplice cq:allowedTemplates
proprietà nelle sottosezioni del sito, se è necessario limitare ulteriormente i modelli consentiti.cq:allowedTemplates
Le proprietà possono essere aggiornate da un autore in Avanzate scheda di Proprietà pagina. Le altre proprietà del modello non possono essere aggiornate utilizzando l’interfaccia utente (standard), pertanto avrebbe bisogno di uno sviluppatore per mantenere le regole e una distribuzione del codice per ogni modifica.Limitazione dei modelli utilizzati nelle pagine figlie limiting-templates-used-in-child-pages
Per limitare i modelli utilizzabili per creare pagine figlie in una determinata pagina, utilizza cq:allowedTemplates
proprietà di jcr:content
nodo della pagina per specificare l’elenco di modelli consentiti come pagine figlie. Ogni valore nell’elenco deve essere il percorso assoluto di un modello per una pagina figlia consentita, ad esempio, /apps/wknd/templates/page-content
.
È possibile utilizzare cq:allowedTemplates
proprietà del modello jcr:content
per applicare questa configurazione a tutte le pagine create che utilizzano questo modello.
Per aggiungere altri vincoli, ad esempio relativi alla gerarchia dei modelli, è possibile utilizzare allowedParents/allowedChildren
proprietà nel modello. È quindi possibile specificare esplicitamente che le pagine create da un modello devono essere padri/figli di pagine create da un modello T.