Percorsi dinamici e componenti modificabili
- Editor universale per la modifica visiva di contenuti headless.
- Editor frammenti di contenuto per la modifica di contenuti headless basata su modulo.
In questo capitolo vengono abilitate due route dinamiche Adventure Detail per supportare componenti modificabili: Bali Surf Camp e Beervana a Portland.
La route dell'applicazione a pagina singola Adventure Detail è definita come /adventure/:slug
, dove slug
è una proprietà di identificatore univoco nel frammento di contenuto Adventure.
Mappare gli URL dell’applicazione a pagina singola sulle pagine AEM
Nei due capitoli precedenti, il contenuto dei componenti modificabili è stato mappato dalla vista Home dell'applicazione a pagina singola alla pagina principale dell'applicazione a pagina singola remota corrispondente in AEM all'indirizzo /content/wknd-app/us/en/
.
La definizione della mappatura per i componenti modificabili per le route dinamiche dell’applicazione a pagina singola è simile, tuttavia è necessario trovare 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
.
Pertanto, in base a questa mappatura, è necessario creare due nuove pagine di AEM all’indirizzo:
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/content/wknd-app/us/en/home/adventure/beervana-in-portland
Mappatura SPA remota
Il mapping per le richieste che lasciano l'applicazione a pagina singola remota è configurato tramite la configurazione setupProxy
eseguita in Bootstrap l'applicazione a pagina singola.
Mappatura dell’editor SPA
Il mapping per le richieste di applicazioni a pagina singola quando l'applicazione a pagina singola viene aperta tramite l'editor di applicazioni a pagina singola di AEM è configurato tramite la configurazione di mappature Sling eseguita in Configura AEM.
Creare pagine di contenuto in AEM
Innanzitutto, crea il segmento di pagina adventure
intermedio:
-
Accedi ad AEM Author
-
Passa a Sites > App WKND > Stati Uniti > en > Home page app WKND
- Questa pagina di AEM è mappata come directory principale dell’applicazione a pagina singola, ed è qui che iniziamo a creare la struttura della pagina di AEM per altre route di applicazioni a pagina singola.
-
Tocca Crea e seleziona Pagina
-
Seleziona il modello Pagina applicazione a pagina singola 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’applicazione a pagina singola.
-
Tocca Fine
Quindi, crea le pagine AEM corrispondenti a ciascuno degli URL dell’applicazione a pagina singola che richiedono aree modificabili.
-
Accedi alla nuova pagina Avventura nell'amministratore del sito
-
Tocca Crea e seleziona Pagina
-
Seleziona il modello Pagina applicazione a pagina singola 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’applicazione a pagina singola
-
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’applicazione a pagina singola
Queste due pagine di AEM contengono i rispettivi contenuti creati per le route SPA corrispondenti. Se altre route di applicazioni a pagina singola richiedono l'authoring, è necessario creare nuove pagine AEM nell'URL dell'applicazione a pagina singola nell'apposita pagina radice (/content/wknd-app/us/en/home
) in AEM.
Aggiornare l’app WKND
Inseriamo il componente <ResponsiveGrid...>
creato nel ultimo capitolo nel nostro componente AdventureDetail
per applicazioni a pagina singola, 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 del percorso.
-
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 ad AEM Author
-
Passa a Sites > App WKND > us > en
-
Modifica la pagina Home page app WKND
- Passa alla route Bali Surf Camp nell'applicazione a pagina singola per modificarla
-
Seleziona Anteprima dal selettore modalità in alto a destra
-
Tocca la scheda Bali Surf Camp nell'applicazione a pagina singola per passare alla relativa 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ì:
-
Visualizza in anteprima le modifiche nell'Editor pagina di 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 dettaglio avventura privo di una pagina AEM mappata, non è possibile creare nell’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’applicazione a pagina singola.
- Aggiunta del componente ResponsiveGrid del componente AEM React Editable a una route dinamica
- Sono state create pagine AEM per supportare l’authoring di due percorsi specifici nell’applicazione a pagina singola (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 delle applicazioni a pagina singola di AEM per aggiungere specifiche aree modificabili a un’applicazione a pagina singola remota.