Percorsi dinamici e componenti modificabili
In questo capitolo vengono abilitate due route dinamiche Adventure Detail per supportare componenti modificabili: Bali Surf Camp e Beervana a Portland.
La route SPA Adventure Detail è definita come /adventure/:slug
, dove slug
è una proprietà di identificatore univoco nel frammento di contenuto Adventure.
Mappare gli URL dell’SPA alle pagine AEM
Nei due capitoli precedenti, il contenuto dei componenti modificabili è stato mappato dalla visualizzazione Home dell'SPA alla corrispondente pagina principale dell'SPA remoto nell'AEM in /content/wknd-app/us/en/
.
La definizione della mappatura per i componenti modificabili per le route dinamiche SPA è simile, tuttavia è necessario elaborare uno schema di mappatura 1:1 tra le istanze della route e le pagine AEM.
In questo tutorial, prendiamo il nome del frammento di contenuto WKND Adventure, che è l’ultimo segmento del percorso, e lo mappiamo su un percorso semplice in /content/wknd-app/us/en/adventure
.
Quindi, sulla base di questa mappatura, dobbiamo creare due nuove pagine AEM all'indirizzo:
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/content/wknd-app/us/en/home/adventure/beervana-in-portland
Mappatura remota SPA
La mappatura per le richieste che lasciano l'SPA remoto è configurata tramite la configurazione setupProxy
eseguita in Bootstrap SPA.
Mappatura dell’editor SPA
La mappatura per le richieste SPA quando l'SPA viene aperto tramite l'editor AEM SPA è configurata tramite la configurazione di mappature Sling eseguita in Configurazione AEM.
Creare pagine di contenuti in AEM
Innanzitutto, crea il segmento di pagina adventure
intermedio:
-
Accedi a AEM Author
-
Passa a Sites > App WKND > Stati Uniti > en > Home page app WKND
- Questa pagina dell'AEM è mappata come la radice dell'SPA, ed è qui che iniziamo a costruire la struttura della pagina dell'AEM per altre vie SPA.
-
Tocca Crea e seleziona Pagina
-
Seleziona il modello Pagina SPA remota e tocca Avanti
-
Compila le proprietà della pagina
- Titolo: avventura
- Nome:
adventure
- Questo valore definisce l’URL della pagina AEM e deve quindi corrispondere al segmento di route dell’SPA.
-
Tocca Fine
Quindi, crea le pagine AEM corrispondenti a ciascuno degli URL SPA che richiedono aree modificabili.
-
Accedi alla nuova pagina Avventura nell'amministratore del sito
-
Tocca Crea e seleziona Pagina
-
Seleziona il modello Pagina SPA remota e tocca Avanti
-
Compila le proprietà della pagina
- Titolo: Bali Surf Camp
- Nome:
bali-surf-camp
- Questo valore definisce l’URL della pagina AEM e deve quindi corrispondere all’ultimo segmento della route dell’SPA
-
Tocca Fine
-
Ripeti i passaggi 3-6 per creare la pagina Beervana in Portland, con:
- Titolo: Beervana a Portland
- Nome:
beervana-in-portland
- Questo valore definisce l’URL della pagina AEM e deve quindi corrispondere all’ultimo segmento della route dell’SPA
Queste due pagine dell’AEM contengono i rispettivi contenuti creati per le rispettive vie dell’SPA. Se altre route SPA richiedono l'authoring, è necessario creare nuove pagine AEM con il relativo URL SPA nella pagina principale della pagina SPA remota (/content/wknd-app/us/en/home
) in AEM.
Aggiornare l’app WKND
Inseriamo il componente <ResponsiveGrid...>
creato nell'ultimo capitolo nel componente AdventureDetail
dell'SPA, creando un contenitore modificabile.
Posizionare il componente SPA ResponsiveGrid
Il posizionamento di <ResponsiveGrid...>
nel componente AdventureDetail
crea un contenitore modificabile in tale route. Il trucco è dovuto al fatto che più route utilizzano il componente AdventureDetail
per il rendering. È necessario regolare dinamicamente l'attributo <ResponsiveGrid...>'s pagePath
. pagePath
deve essere derivato per puntare alla pagina AEM corrispondente, in base all'avventura visualizzata dall'istanza della route.
-
Apri e modifica
react-app-/src/components/AdventureDetail.js
-
Importare il componente
ResponsiveGrid
e posizionarlo sopra il componente<h2>Itinerary</h2>
. -
Impostare i seguenti attributi sul componente
<ResponsiveGrid...>
. L'attributopagePath
aggiunge l'attualeslug
che viene mappato sulla pagina dell'avventura in base alla mappatura definita sopra.pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
itemPath = 'root/responsivegrid'
Questo indica al componente
ResponsiveGrid
di recuperare il contenuto dalla risorsa AEM:/content/wknd-app/us/en/home/adventure/${slug}/jcr:content/root/responsivegrid
Aggiorna AdventureDetail.js
con le righe seguenti:
...
import { ResponsiveGrid } from '@adobe/aem-react-editable-components';
...
function AdventureDetailRender(props) {
...
// Get the slug from the React route parameter, this will be used to specify the AEM Page to store/read editable content from
const { slug } = useParams();
return(
...
// Pass the slug in
function AdventureDetailRender({ title, primaryImage, activity, adventureType, tripLength,
groupSize, difficulty, price, description, itinerary, references, slug }) {
...
return (
...
<ResponsiveGrid
pagePath={`/content/wknd-app/us/en/home/adventure/${slug}`}
itemPath="root/responsivegrid"/>
<h2>Itinerary</h2>
...
)
}
)
}
Il file AdventureDetail.js
deve essere simile al seguente:
Creare il contenitore in AEM
Con <ResponsiveGrid...>
attivo e pagePath
impostato in modo dinamico in base all'avventura di cui viene eseguito il rendering, si prova a creare contenuti al suo interno.
-
Accedi a AEM Author
-
Passa a Sites > App WKND > us > en
-
Modifica la pagina Home page app WKND
- Passa alla route Bali Surf Camp nell'SPA per modificarla
-
Seleziona Anteprima dal selettore modalità in alto a destra
-
Tocca la scheda Bali Surf Camp nell'SPA per passare alla sua route
-
Seleziona Modifica dal selettore modalità
-
Individua l'area modificabile Contenitore di layout proprio sopra il Itinerario
-
Apri la barra laterale dell'Editor pagine e seleziona la visualizzazione Componenti
-
Trascina alcuni dei componenti abilitati in Contenitore di layout
- Immagine
- Testo
- Titolo
E crea del materiale promozionale per il marketing. Potrebbe presentarsi così:
-
Visualizzare in anteprima le modifiche nell'Editor pagina AEM
-
Aggiorna l'app WKND in esecuzione localmente su http://localhost:3000, passa alla route Bali Surf Camp per visualizzare le modifiche create.
Quando si passa a un percorso di dettagli dell’avventura privo di una pagina AEM mappata, non è possibile creare l’istanza del percorso. Per abilitare l'authoring in queste pagine, crea semplicemente una pagina AEM con il nome corrispondente nella pagina Avventura.
Congratulazioni.
Congratulazioni Hai aggiunto la possibilità di authoring per le route dinamiche nell'SPA.
- È stato aggiunto il componente ResponsiveGrid del componente React Editable dell’AEM a una route dinamica
- Sono state create pagine AEM per supportare la creazione di due percorsi specifici nell'SPA (Bali Surf Camp e Beervana a Portland)
- Contenuti creati sulla strada dinamica Bali Surf Camp!
Ora hai completato l’esplorazione dei primi passaggi su come utilizzare l’Editor SPA dell’AEM per aggiungere specifiche aree modificabili a un SPA remoto.