Pagine e modelli pages-and-template
In questo capitolo, esaminiamo la relazione tra un componente della pagina base e i modelli modificabili. Scopri come creare un modello di articolo senza stili basato su alcuni modelli di Adobe XD. Durante la creazione del modello, sono trattati i Componenti core e le configurazioni avanzate dei criteri dei modelli modificabili.
Prerequisiti prerequisites
Revisione degli strumenti e delle istruzioni necessari per configurare un ambiente di sviluppo locale.
Progetto iniziale
Controlla il codice della riga di base su cui si fonda l’esercitazione:
-
Controlla il ramo
tutorial/pages-templates-startda GitHubcode language-shell $ cd ~/code/aem-guides-wknd $ git checkout tutorial/pages-templates-start -
Distribuisci la base di codice in un’istanza AEM locale utilizzando le abilità Maven:
code language-shell $ mvn clean install -PautoInstallSinglePackagenote note NOTE Se utilizzi AEM 6.5 o 6.4, aggiungi il profilo classica qualsiasi comando Maven.code language-shell $ mvn clean install -PautoInstallSinglePackage -Pclassic
Puoi sempre visualizzare il codice finito su GitHub o estrarlo localmente passando al ramo tutorial/pages-templates-solution.
Obiettivo
- Esamina la progettazione di una pagina creata in Adobe XD e mappala sui Componenti core.
- Scopri i dettagli dei modelli modificabili e come utilizzare i criteri per applicare un controllo granulare del contenuto della pagina.
- Scopri come vengono collegati modelli e pagine
Cosa stai per creare what-build
In questa parte dell’esercitazione, creerai un nuovo Modello per pagina di articolo che può essere utilizzato per creare pagine di articoli e allinearle con una struttura comune. Il modello per pagina di articolo si basa sulle progettazioni e su un kit di interfaccia utente prodotto in Adobe XD. Questo capitolo si concentra solo sulla creazione della struttura o dell’ossatura del modello. Non vengono implementati stili, ma il modello e le pagine funzionano.
Pianificazione dell’interfaccia utente con Adobe XD adobexd
Di solito, la pianificazione di un nuovo sito web inizia con modelli e progetti statici. Adobe XD è uno strumento di progettazione che crea l’esperienza utente. Ora sarà esaminato un kit di interfaccia utente e modelli che consentono di pianificare la struttura del modello per la pagina dell’articolo.
Scarica il file dell’articolo della progettazione WKND.
Creare il modello per la pagina dell’articolo
Quando crei una pagina, devi selezionare un modello che viene utilizzato come base per la creazione. Il modello definisce la struttura della pagina risultante, il contenuto iniziale e i componenti che possono essere utilizzati.
Sono disponibili tre aree principali di modelli modificabili:
- Struttura: definisce i componenti che fanno parte del modello. Non sono modificabili da chi crea il contenuto.
- Contenuto iniziale: definisce i componenti con cui inizia il modello, che possono essere modificati e/o eliminati dagli autori del contenuto
- Criteri: definisce le configurazioni sul comportamento dei componenti e sulle opzioni di cui gli autori dispongono.
Quindi, crea un modello in AEM che corrisponda alla struttura dei modelli. Ciò si verifica in un’istanza locale di AEM. Segui i passaggi descritti nel video seguente:
Passaggi principali per il video precedente:
Configurazioni della struttura
-
Crea un modello utilizzando il tipo di modello della pagina, denominato Pagina articolo.
-
Passa alla modalità Struttura.
-
Aggiungi un componente Frammento di esperienza che funga da intestazione nella parte superiore del modello.
- Configurare il componente in modo che punti a
/content/experience-fragments/wknd/us/en/site/header/master. - Imposta il criterio su Intestazione pagina e assicurati che l’elemento predefinito sia impostato su
header. L’elementoheaderha come destinazione CSS nel capitolo successivo.
- Configurare il componente in modo che punti a
-
Aggiungi un componente Frammento di esperienza che funga da piè di pagina nella parte inferiore del modello.
- Configurare il componente in modo che punti a
/content/experience-fragments/wknd/us/en/site/footer/master. - Imposta il criterio su Piè di pagina e assicurati che l’elemento predefinito sia impostato su
footer. L’elementofooterha come destinazione CSS nel capitolo successivo.
- Configurare il componente in modo che punti a
-
Blocca il contenitore principale incluso al momento della creazione iniziale del modello.
- Imposta il criterio su Pagina principale e assicurati che l’elemento predefinito sia impostato su
main. L’elementomainha come destinazione CSS nel capitolo successivo.
- Imposta il criterio su Pagina principale e assicurati che l’elemento predefinito sia impostato su
-
Aggiungi un componente immagine al contenitore principale.
- Sblocca il componente Immagine.
-
Aggiungi un componente Breadcrumb sotto il componente Immagine nel contenitore principale.
- Crea un criterio per il componente Breadcrumb denominato Pagina articolo: Breadcrumb. Imposta il livello iniziale di navigazione su 4.
-
Aggiungi un componente Contenitore sotto il componente Breadcrumb e all’interno del contenitore principale. Questo funge da contenitore del contenuto per il modello.
- Sblocca il contenitore del contenuto.
- Imposta il criterio su Contenuto della pagina.
-
Aggiungi un altro componente Contenitore sotto il contenitore del contenuto. Questo funge da contenitore della barra laterale per il modello.
- Sblocca il contenitore della barra laterale.
- Crea un criterio denominato Pagina articolo: barra laterale.
- Configura i componenti consentiti in Progetto WKND di Sites: contenuto per includere: Pulsante, Download, Immagine, Elenco, Separatore, Condivisione social media, Testo e Titolo.
-
Aggiorna il criterio del contenitore Pagina principale. Questo è il contenitore più esterno del modello. Imposta il criterio su Pagina principale.
- Nelle impostazioni del contenitore, imposta il layout su Griglia reattiva.
-
Integra la modalità layout per il contenitore di contenuti. Trascina la maniglia da destra a sinistra e riduci il contenitore in modo che abbia una larghezza di otto colonne.
-
Integra la modalità layout per il contenitore della barra laterale. Trascina la maniglia da destra a sinistra e riduci il contenitore in modo che abbia una larghezza di quattro colonne. Trascina quindi la maniglia sinistra da sinistra a destra di una colonna per rendere il contenitore largo 3 colonne e lascia uno spazio di 1 colonna tra il contenitore di contenuti.
-
Apri l’emulatore mobile e passa a un punto di interruzione mobile. Integra la modalità layout e imposta il contenitore di contenuti e il contenitore della barra laterale per l’intera larghezza della pagina. In questo modo i contenitori vengono impilati verticalmente nel punto di interruzione mobile.
-
Aggiorna il criterio del componente Testo nel contenitore di contenuti.
- Imposta il criterio su Testo contenuto.
- In Plug-in > Stili paragrafo, seleziona Abilita stili paragrafo e assicurati che il blocco citazione sia abilitato.
Configurazioni del contenuto iniziale
-
Passa alla modalità Contenuto iniziale.
-
Aggiungi un componente Titolo al contenitore di contenuti. Questo funge da titolo dell’articolo. Quando viene lasciato vuoto, visualizza automaticamente il Titolo della pagina corrente.
-
Aggiungi un secondo componente Titolo sotto il primo componente Titolo.
- Configura il componente con il testo: "Per autore". È il segnaposto per il testo.
- Imposta il tipo su
H4.
-
Aggiungi un componente Testo sotto il componente Titolo Autore.
-
Aggiungi un componente Titolo al Contenitore barra laterale.
- Configura il componente con il testo: "Condividi questa storia".
- Imposta il tipo su
H5.
-
Aggiungi un componente Condivisione social media sotto il componente titolo Condividi questa storia.
-
Aggiungi un componente Separatore sotto il componente Condivisione social media.
-
Aggiungi un componente Scarica sotto il componente Separatore.
-
Aggiungi un componente Elenco sotto il componente Scarica.
-
Aggiorna le Proprietà pagina iniziale per il modello.
- In Social Media > Condivisione social media, seleziona Facebook e Pinterest
Abilitare il modello e aggiungere una miniatura
-
Visualizza il modello nella console Modelli passando a http://localhost:4502/libs/wcm/core/content/sites/templates.html/conf/wknd
-
Abilita il modello della pagina dell'articolo.
-
Modifica le proprietà del modello Pagina articolo e carica la miniatura seguente per identificare rapidamente le pagine create utilizzando il modello Pagina articolo:
Aggiornare intestazione e piè di pagina con frammenti di esperienza experience-fragments
Per la creazione di un contenuto globale, ad esempio un'intestazione o un piè di pagina, è in genere consigliabile utilizzare un Frammento di esperienza. I frammenti di esperienza consentono agli utenti di combinare più componenti per creare un singolo componente di riferimento. I frammenti di esperienza hanno il vantaggio di supportare la gestione multisito e la localizzazione.
L’Archetipo progetto AEM ha generato un’intestazione e un piè di pagina. Quindi, aggiorna i Frammenti di esperienza in modo che corrispondano ai modelli. Segui i passaggi descritti nel video seguente:
Passaggi principali per il video precedente:
-
Scarica il pacchetto di contenuti di esempio WKND-PagesTemplates-Content-Assets.zip.
-
Carica e installa il pacchetto di contenuti utilizzando Gestione pacchetti all'indirizzo http://localhost:4502/crx/packmgr/index.jsp
-
Aggiorna il modello Variante Web, che è il modello utilizzato per i frammenti di esperienza in http://localhost:4502/editor.html/conf/wknd/settings/wcm/templates/xf-web-variation/structure.html
- Aggiorna il criterio del componente Contenitore nel modello.
- Imposta il criterio su XF Root.
- In Componenti consentiti seleziona il gruppo di componenti Progetto WKND Sites - Struttura per includere i componenti Navigazione lingua, Navigazione e Ricerca rapida.
Aggiornare il frammento di esperienza dell'intestazione
-
Apri il frammento di esperienza che esegue il rendering dell’intestazione in http://localhost:4502/editor.html/content/experience-fragments/wknd/it/it/site/header/master.html
-
Configura il contenitore principale del frammento. Questo è il contenitore più esterno.
- Imposta il layout su Griglia reattiva
-
Aggiungi il logo WKND Dark come immagine nella parte superiore del contenitore. Il logo è stato incluso nel pacchetto installato in un passaggio precedente.
- Modifica il layout del logo WKND Dark in modo che sia largo due colonne. Trascina le maniglie da destra a sinistra.
- Configura il logo con il testo alternativo “Logo WKND”.
- Configura il logo per collegare
/content/wknd/us/enalla pagina Home.
-
Configura il componente Navigazione già inserito nella pagina.
- Imposta Escludi livelli principali su 1.
- Imposta la profondità della struttura di navigazione su 1.
- Modifica il layout del componente Navigazione in modo che sia largo otto colonne. Trascina le maniglie da destra a sinistra.
-
Rimuovi il componente Navigazione lingua.
-
Modifica il layout del componente Ricerca in modo che sia largo due colonne. Trascina le maniglie da destra a sinistra. Ora tutti i componenti devono essere allineati orizzontalmente su un’unica riga.
Aggiornare il frammento di esperienza del piè di pagina
-
Apri il frammento di esperienza che esegue il rendering del piè di pagina in http://localhost:4502/editor.html/content/experience-fragments/wknd/it/it/site/footer/master.html
-
Configura il contenitore principale del frammento. Questo è il contenitore più esterno.
- Imposta il layout su Griglia reattiva
-
Aggiungi il logo WKND Light come immagine nella parte superiore del contenitore. Il logo è stato incluso nel pacchetto installato in un passaggio precedente.
- Modifica il layout del logo WKND Light in modo che sia largo due colonne. Trascina le maniglie da destra a sinistra.
- Configura il logo con il testo alternativo “WKND Logo Light”.
- Configura il logo per collegare
/content/wknd/us/enalla pagina Home.
-
Aggiungi un componente Navigazione sotto il logo. Configura il componente Navigazione:
- Imposta Escludi livelli principali su 1.
- Deseleziona Raccogli tutte le pagine secondarie.
- Imposta la profondità della struttura di navigazione su 1.
- Modifica il layout del componente Navigazione in modo che sia largo otto colonne. Trascina le maniglie da destra a sinistra.
Creare una pagina dell’articolo
Quindi, crea una pagina utilizzando il modello Pagina articolo. Crea il contenuto della pagina in modo che corrisponda ai modelli del sito. Segui i passaggi descritti nel video seguente:
Passaggi principali per il video precedente:
-
Passa alla console di Sites all’indirizzo http://localhost:4502/sites.html/content/wknd/it/it/magazine.
-
Crea una pagina sotto WKND > IT > IT > Magazine.
- Scegli il modello Pagina articolo.
- In Proprietà imposta il Titolo su “Ultimate Guide to LA Skateparks”
- Imposta il Nome su “guide-la-skateparks”
-
Sostituisci il titolo Autore con il testo “Stacey Roswells”.
-
Aggiorna il componente Testo per includere un paragrafo per compilare l’articolo. Puoi utilizzare il seguente file di testo come copia: la-skate-parks-copy.txt.
-
Aggiungi un altro componente Testo.
- Aggiorna il componente per includere la citazione: "Non c'è posto migliore da condividere di Los Angeles".
- Modifica l'Editor Rich Text in modalità a schermo intero e modifica le virgolette per utilizzare l'elemento Blocco virgolette.
-
Continua a popolare il corpo dell’articolo in modo che corrisponda ai modelli.
-
Configura il componente Scarica per utilizzare una versione PDF dell'articolo.
- In Scarica > Proprietà, fai clic sulla casella di controllo per Ottieni il titolo dalla risorsa DAM.
- Imposta la Descrizione su: "Ottieni la storia completa".
- Imposta il Testo azione su: "Scarica PDF".
-
Configura il componente Elenco.
- In Impostazioni elenco > Genera elenco con, seleziona Pagine secondarie.
- Imposta la Pagina principale su
/content/wknd/us/en/magazine. - In, Impostazioni elemento seleziona Collega elementi e Mostra data.
Controllare la struttura del nodo node-structure
A questo punto, la pagina dell’articolo è chiaramente senza formattazione. Tuttavia la struttura di base è creata. Quindi, esamina la struttura dei nodi della pagina dell’articolo per comprendere meglio il ruolo del modello, della pagina e dei componenti.
Utilizza lo strumento CRXDE-Lite su un’istanza AEM locale per visualizzare la struttura del nodo sottostante.
-
Apri CRXDE-Lite e utilizza la struttura di navigazione per passare a
/content/wknd/us/en/magazine/guide-la-skateparks. -
Fai clic sul nodo
jcr:contentsotto la paginala-skateparksper visualizzare le proprietà:
Osserva il valore per
cq:template, che punta a/conf/wknd/settings/wcm/templates/article-page, il modello della pagina dell'articolo creato in precedenza.Tieni presente anche il valore di
sling:resourceType, che punta awknd/components/page. Questo è il componente pagina creato dall’archetipo del progetto AEM ed è responsabile del rendering della pagina in base al modello. -
Espandi il nodo
jcr:contentsotto/content/wknd/us/en/magazine/guide-la-skateparks/jcr:contentper visualizzare la gerarchia dei nodi:
Dovresti essere in grado di mappare liberamente ciascuno dei nodi ai componenti creati. Verifica se è possibile identificare i diversi contenitori di layout utilizzati esaminando i nodi con prefisso
container. -
Esamina quindi il componente pagina in
/apps/wknd/components/page. Visualizza le proprietà del componente in CRXDE Lite:
Ci sono solo due script HTL,
customfooterlibs.htmlecustomheaderlibs.htmlsotto il componente pagina. Come viene eseguito il rendering della pagina da questo componente?La proprietà
sling:resourceSuperTypepunta acore/wcm/components/page/v2/page. Questa proprietà consente al componente pagina del WKND di ereditare tutte le funzionalità del componente pagina del componente core. Questo è il primo esempio di un Modello di componente proxy. Ulteriori informazioni sono disponibili qui. -
Esamina un altro componente all'interno dei componenti WKND, il componente
Breadcrumbdi:/apps/wknd/components/breadcrumb. Puoi trovare la stessa proprietàsling:resourceSuperType, ma questa volta punta acore/wcm/components/breadcrumb/v2/breadcrumb. Questo è un altro esempio di utilizzo del modello di componente Proxy per includere un Componente core. Infatti, tutti i componenti nella base di codice WKND sono proxy dei Componenti core di AEM (ad eccezione del componente demo personalizzato HelloWorld). È consigliabile riutilizzare quante più funzionalità dei Componenti core possibili prima della scrittura di codice personalizzato. -
Esamina quindi la pagina dei Componenti core in
/libs/core/wcm/components/page/v2/pageutilizzando CRXDE Lite:note note NOTE In AEM 6.5/6.4, i Componenti core si trovano in /apps/core/wcm/components. In AEM as a Cloud Service, i Componenti core si trovano in/libse vengono aggiornati automaticamente.
Tieni presente che molti file di script sono inclusi in questa pagina. La pagina dei Componenti core contiene numerose funzionalità. Questa funzionalità è suddivisa in più script per facilitarne la manutenzione e la leggibilità. Per tracciare l'inclusione degli script HTL, apri
page.htmle cercadata-sly-include:code language-html <!--/* /libs/core/wcm/components/page/v2/page/page.html */--> <!DOCTYPE HTML> <html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}" data-sly-use.head="head.html" data-sly-use.footer="footer.html" data-sly-use.redirect="redirect.html"> <head data-sly-call="${head.head @ page = page}"></head> <body class="${page.cssClassNames}" id="${page.id}" data-cmp-data-layer-enabled="${page.data ? true : false}"> <script data-sly-test.dataLayerEnabled="${page.data}"> window.adobeDataLayer = window.adobeDataLayer || []; adobeDataLayer.push({ page: JSON.parse("${page.data.json @ context='scriptString'}"), event:'cmp:show', eventInfo: { path: 'page.${page.id @ context="scriptString"}' } }); </script> <sly data-sly-test.isRedirectPage="${page.redirectTarget && (wcmmode.edit || wcmmode.preview)}" data-sly-call="${redirect.redirect @ redirectTarget = page.redirectTarget}"></sly> <sly data-sly-test="${!isRedirectPage}"> <sly data-sly-include="body.skiptomaincontent.html"></sly> <sly data-sly-include="body.socialmedia_begin.html"></sly> <sly data-sly-include="body.html"></sly> <sly data-sly-call="${footer.footer @ page = page}"></sly> <sly data-sly-include="body.socialmedia_end.html"></sly> </sly> </body> </html>L’altro motivo per suddividere HTL in più script è quello di consentire ai componenti proxy di ignorare singoli script per implementare una logica di business personalizzata. Gli script HTL
customfooterlibs.htmlecustomheaderlibs.htmlsono creati allo scopo esplicito di essere sostituiti dall’implementazione dei progetti.Leggi questo articolo ](https://experienceleague.adobe.com/docs/experience-manager-65/developing/platform/templates/page-templates-editable.html?lang=it) per saperne di più sul modo in cui il modello modificabile influisce sul rendering della pagina del contenuto [.
-
Esaminare un altro Componente core, ad esempio Breadcrumb in
/libs/core/wcm/components/breadcrumb/v2/breadcrumb. Visualizza lo scriptbreadcrumb.htmlper comprendere come viene generato il markup per il componente Breadcrumb.
Salvataggio delle configurazioni in Controllo codice sorgente configuration-persistence
Spesso, soprattutto all’inizio di un progetto AEM, è utile mantenere le configurazioni, come i modelli e i criteri dei contenuti correlati, nel controllo del codice sorgente. In questo modo tutti gli sviluppatori lavorano sullo stesso set di contenuti e configurazioni e possono garantire ulteriore coerenza tra gli ambienti. Quando un progetto raggiunge un certo livello di maturità, la pratica di gestione dei modelli può essere affidata a uno speciale gruppo di utenti esperti.
Per il momento, i modelli vengono trattati come altre parti di codice e sincronizzano il Modello pagina articolo come parte del progetto.
Finora il codice viene inviato dal progetto AEM a un’istanza locale di AEM. Il Modello pagina articolo è stato creato direttamente in un'istanza locale di AEM, pertanto è necessario importare il modello nel progetto AEM. Il modulo ui.content è incluso nel progetto AEM per questo scopo specifico.
I passaggi successivi vengono eseguiti nell'IDE VSCode utilizzando il plug-in VSCode AEM Sync. Tuttavia, potrebbero utilizzare qualsiasi IDE configurato per importare o importare contenuto da un'istanza locale di AEM.
-
In, VSCode apri il progetto
aem-guides-wknd. -
Espandi il modulo ui.content in Esplora progetti. Espandi la cartella
srce passa a/conf/wknd/settings/wcm/templates. -
Fai clic con il pulsante destro del mouse sulla cartella
templatese seleziona Importa da AEM Server:
È necessario importare
article-pagee aggiornare anche i modellipage-contentexf-web-variation.
-
Ripeti i passaggi per importare il contenuto, ma seleziona la cartella criteri da
/conf/wknd/settings/wcm/policies.
-
Controlla il file
filter.xmldaui.content/src/main/content/META-INF/vault/filter.xml.code language-xml <!--ui.content filter.xml--> <?xml version="1.0" encoding="UTF-8"?> <workspaceFilter version="1.0"> <filter root="/conf/wknd" mode="merge"/> <filter root="/content/wknd" mode="merge"/> <filter root="/content/dam/wknd" mode="merge"/> <filter root="/content/experience-fragments/wknd" mode="merge"/> </workspaceFilter>Il file
filter.xmlè responsabile dell'identificazione dei percorsi dei nodi installati con il pacchetto. Osservamode="merge"su ciascuno dei filtri che indica che il contenuto esistente non deve essere modificato, solo il nuovo contenuto viene aggiunto. Poiché gli autori di contenuto potrebbero aggiornare questi percorsi, è importante che una distribuzione del codice non sovrascriva il contenuto. Per ulteriori informazioni sull'utilizzo degli elementi del filtro, consulta la documentazione di FileVault.Confronta
ui.content/src/main/content/META-INF/vault/filter.xmleui.apps/src/main/content/META-INF/vault/filter.xmlper comprendere i diversi nodi gestiti da ciascun modulo.note warning WARNING Per garantire distribuzioni coerenti per il sito di riferimento WKND, alcuni rami del progetto sono configurati in modo che ui.contentsovrascriva eventuali modifiche nel JCR. È parte della progettazione, ovvero per i rami della soluzione, in quanto il codice e gli stili sono scritti per criteri specifici.
Congratulazioni. congratulations
Congratulazioni, hai creato un modello e una pagina con Adobe Experience Manager Sites.
Passaggi successivi next-steps
A questo punto, la pagina dell’articolo è chiaramente senza formattazione. Segui l'esercitazione Librerie client e flusso di lavoro front-end per scoprire le best practice per includere CSS e JavaScript per applicare stili globali al sito e integrare una build front-end dedicata.
Visualizza il codice finito in GitHub oppure rivedi e distribuisci il codice localmente nel ramo Git tutorial/pages-templates-solution.
- Clona l'archivio github.com/adobe/aem-wknd-guides.
- Controlla il ramo
tutorial/pages-templates-solution.