Rutas dinámicas y componentes editables

IMPORTANT
El editor de SPA ha quedado obsoleto para nuevos proyectos. Sigue siendo compatible con Adobe para los proyectos existentes, pero no debe utilizarse para nuevos proyectos. Los editores preferidos para administrar contenido en AEM ahora son:

En este capítulo, habilitamos dos rutas dinámicas de Adventure Detail para admitir componentes editables: Bali Surf Camp y Beervana en Portland.

Rutas dinámicas y componentes editables

La ruta de la SPA Detalles de la aventura se define como /adventure/:slug, donde slug es una propiedad de identificador único en el fragmento de contenido de aventura.

Asignación de direcciones URL de SPA a páginas de AEM

En los dos capítulos anteriores, asignamos contenido de componente editable de la vista Inicio de la SPA a la página raíz de la SPA remota correspondiente en AEM en /content/wknd-app/us/en/.

La definición de la asignación para componentes editables para las rutas dinámicas de la SPA es similar, pero debemos crear un esquema de asignación 1:1 entre instancias de la ruta y páginas de AEM.

En este tutorial, tomamos el nombre del fragmento de contenido de WKND Adventure, que es el último segmento de la ruta, y lo asignamos a una ruta de acceso simple bajo /content/wknd-app/us/en/adventure.

Ruta de SPA remota
Ruta de página de AEM
/
/content/wknd-app/us/en/home
/adventure/bali-surf-camp
/content/wknd-app/us/en/home/adventure/bali-surf-camp
/adventure/bervana-portland
/content/wknd-app/us/en/home/adventure/bervana-in-portland

Por lo tanto, en función de esta asignación, debemos crear dos nuevas páginas de AEM en:

  • /content/wknd-app/us/en/home/adventure/bali-surf-camp
  • /content/wknd-app/us/en/home/adventure/beervana-in-portland

Asignación de SPA remota

La asignación de solicitudes que salen de la SPA remota se configura mediante la configuración de setupProxy realizada en Bootstrap the SPA.

Asignación del editor de SPA

La asignación de solicitudes de SPA cuando el SPA se abre mediante el Editor de SPA de AEM se configura mediante la configuración de Asignaciones de Sling realizada en Configurar AEM.

Creación de páginas de contenido en AEM

Primero, cree el segmento de página adventure intermedio:

  1. Iniciar sesión en AEM Author

  2. Vaya a Sitios > Aplicación WKND > us > es > Página de inicio de la aplicación WKND

    1. Esta página de AEM está asignada como raíz de la SPA, por lo que aquí es donde empezamos a crear la estructura de páginas de AEM para otras rutas de SPA.
  3. Pulse Crear y seleccione Página

  4. Seleccione la plantilla Página de SPA remota y pulse Siguiente

  5. Rellene las propiedades de la página

    1. Título: Aventura
    2. Nombre: adventure
      1. Este valor define la dirección URL de la página AEM y, por lo tanto, debe coincidir con el segmento de ruta de la SPA.
  6. Pulse Listo

A continuación, cree las páginas de AEM que correspondan a cada una de las direcciones URL de la SPA que requieran áreas editables.

  1. Vaya a la nueva página Aventura en el Administrador del sitio

  2. Pulse Crear y seleccione Página

  3. Seleccione la plantilla Página de SPA remota y pulse Siguiente

  4. Rellene las propiedades de la página

    1. Título: Campamento de Surf en Bali
    2. Nombre: bali-surf-camp
      1. Este valor define la dirección URL de la página AEM y, por lo tanto, debe coincidir con el último segmento de la ruta de la SPA
  5. Pulse Listo

  6. Repita los pasos del 3 al 6 para crear la página Beervana in Portland con:

    1. Título: Beervana en Portland
    2. Nombre: beervana-in-portland
      1. Este valor define la dirección URL de la página AEM y, por lo tanto, debe coincidir con el último segmento de la ruta de la SPA

Estas dos páginas de AEM contienen el contenido creado respectivamente para sus rutas de SPA coincidentes. Si otras rutas SPA requieren creación, se deben crear nuevas páginas AEM en la dirección URL de su SPA en la página raíz de la página SPA remota (/content/wknd-app/us/en/home) en AEM.

Actualización de la aplicación WKND

Vamos a colocar el componente <ResponsiveGrid...> creado en el último capítulo, en nuestro componente de SPA AdventureDetail, creando un contenedor editable.

Colocar el componente de la SPA de ResponsiveGrid

Al colocar <ResponsiveGrid...> en el componente AdventureDetail, se crea un contenedor editable en esa ruta. El truco se debe a que varias rutas utilizan el componente AdventureDetail para representarse, debemos ajustar dinámicamente el atributo <ResponsiveGrid...>'s pagePath. Se debe derivar pagePath para que apunte a la página de AEM correspondiente, en función de la aventura que muestre la instancia de la ruta.

  1. Abrir y editar react-app-/src/components/AdventureDetail.js

  2. Importe el componente ResponsiveGrid y colóquelo sobre el componente <h2>Itinerary</h2>.

  3. Establezca los atributos siguientes en el componente <ResponsiveGrid...>. Tenga en cuenta que el atributo pagePath agrega el elemento slug actual que se asigna a la página de aventura según la asignación definida anteriormente.

    1. pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
    2. itemPath = 'root/responsivegrid'

    Esto indica al componente ResponsiveGrid que recupere su contenido del recurso de AEM:

    1. /content/wknd-app/us/en/home/adventure/${slug}/jcr:content/root/responsivegrid

Actualice AdventureDetail.js con las líneas siguientes:

...
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>
                ...
            )
        }
    )
}

El archivo AdventureDetail.js debe tener el siguiente aspecto:

AdventureDetail.js

Crear el contenedor en AEM

Con <ResponsiveGrid...> en su lugar y su pagePath establecido dinámicamente en función de la aventura que se está representando, intentamos crear contenido en él.

  1. Iniciar sesión en AEM Author

  2. Vaya a Sitios > Aplicación WKND > us > en

  3. Editar la página de inicio de la aplicación WKND

    1. Vaya a la ruta Bali Surf Camp en el SPA para editarla
  4. Seleccione Vista previa en el selector de modo en la parte superior derecha

  5. Toca la tarjeta Bali Surf Camp en el SPA para navegar hasta su ruta

  6. Seleccione Editar del selector de modo

  7. Busque el área editable Contenedor de diseño justo encima del Itinerario

  8. Abra la barra lateral del editor de páginas y seleccione la vista Componentes

  9. Arrastre algunos de los componentes habilitados al contenedor de diseño

    1. Imagen
    2. Texto
    3. Título

    Y crear material de marketing promocional. Podría tener un aspecto similar al siguiente:

    Creación de detalles de aventura en Bali

  10. Vista previa de sus cambios en el editor de páginas de AEM

  11. Actualice la aplicación WKND que se ejecuta localmente en http://localhost:3000, navegue hasta la ruta Bali Surf Camp para ver los cambios creados.

    SPA remoto en Bali

Al navegar a una ruta de detalles de aventura que no tiene una página de AEM asignada, no hay capacidad de creación en esa instancia de ruta. Para habilitar la creación en estas páginas, simplemente cree una página de AEM con el mismo nombre en la página Aventura.

Enhorabuena.

¡Enhorabuena! ¡Ha agregado la capacidad de creación a las rutas dinámicas en el SPA!

  • Se ha agregado el componente Cuadrícula interactiva del componente Editable React de AEM a una ruta dinámica
  • Se crearon páginas de AEM para apoyar la creación de dos rutas específicas en el SPA (Bali Surf Camp y Beervana en Portland)
  • Contenido creado en la dinámica ruta Bali Surf Camp!

Ahora ha completado la exploración de los primeros pasos de cómo se puede utilizar el Editor de SPA de AEM para agregar áreas editables específicas a un SPA remoto.

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