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.

Route dinamiche e componenti modificabili

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.

Route SPA remota
Percorso pagina AEM
/
/content/wknd-app/us/en/home
/avventura/bali-surf-camp
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/avventura/beervana-portland
/content/wknd-app/us/en/home/adventure/beervana-in-portland

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:

  1. Accedi a AEM Author

  2. 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.
  3. Tocca Crea e seleziona Pagina

  4. Seleziona il modello Pagina SPA remota e tocca Avanti

  5. 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.
  6. Tocca Fine

Quindi, crea le pagine AEM corrispondenti a ciascuno degli URL SPA che richiedono aree modificabili.

  1. Accedi alla nuova pagina Avventura nell'amministratore del sito

  2. Tocca Crea e seleziona Pagina

  3. Seleziona il modello Pagina SPA remota e tocca Avanti

  4. 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
  5. Tocca Fine

  6. 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.

  1. Apri e modifica react-app-/src/components/AdventureDetail.js

  2. Importare il componente ResponsiveGrid e posizionarlo sopra il componente <h2>Itinerary</h2>.

  3. Impostare i seguenti attributi sul componente <ResponsiveGrid...>. L'attributo pagePath aggiunge l'attuale slug 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:

DettagliAvventura.js

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.

  1. Accedi a AEM Author

  2. Passa a Sites > App WKND > us > en

  3. Modifica la pagina Home page app WKND

    • Passa alla route Bali Surf Camp nell'SPA per modificarla
  4. Seleziona Anteprima dal selettore modalità in alto a destra

  5. Tocca la scheda Bali Surf Camp nell'SPA per passare alla sua route

  6. Seleziona Modifica dal selettore modalità

  7. Individua l'area modificabile Contenitore di layout proprio sopra il Itinerario

  8. Apri la barra laterale dell'Editor pagine e seleziona la visualizzazione Componenti

  9. Trascina alcuni dei componenti abilitati in Contenitore di layout

    • Immagine
    • Testo
    • Titolo

    E crea del materiale promozionale per il marketing. Potrebbe presentarsi così:

    Authoring dei dettagli dellavventura di Bali

  10. Visualizzare in anteprima le modifiche nell'Editor pagina AEM

  11. Aggiorna l'app WKND in esecuzione localmente su http://localhost:3000, passa alla route Bali Surf Camp per visualizzare le modifiche create.

    Bali SPA remoto

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.

recommendation-more-help
e25b6834-e87f-4ff3-ba56-4cd16cdfdec4