Rutas dinámicas y componentes editables
- El Editor universal para editar contenido sin encabezado de forma visual.
- El Editor de fragmentos de contenido para la edición de contenido sin encabezado basada en formularios.
En este capítulo, habilitamos dos rutas dinámicas de Adventure Detail para admitir componentes editables: Bali Surf Camp y Beervana en Portland.
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
.
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:
-
Iniciar sesión en AEM Author
-
Vaya a Sitios > Aplicación WKND > us > es > Página de inicio de la aplicación WKND
- 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.
-
Pulse Crear y seleccione Página
-
Seleccione la plantilla Página de SPA remota y pulse Siguiente
-
Rellene las propiedades de la página
- Título: Aventura
- Nombre:
adventure
- 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.
-
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.
-
Vaya a la nueva página Aventura en el Administrador del sitio
-
Pulse Crear y seleccione Página
-
Seleccione la plantilla Página de SPA remota y pulse Siguiente
-
Rellene las propiedades de la página
- Título: Campamento de Surf en Bali
- Nombre:
bali-surf-camp
- 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
-
Pulse Listo
-
Repita los pasos del 3 al 6 para crear la página Beervana in Portland con:
- Título: Beervana en Portland
- Nombre:
beervana-in-portland
- 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.
-
Abrir y editar
react-app-/src/components/AdventureDetail.js
-
Importe el componente
ResponsiveGrid
y colóquelo sobre el componente<h2>Itinerary</h2>
. -
Establezca los atributos siguientes en el componente
<ResponsiveGrid...>
. Tenga en cuenta que el atributopagePath
agrega el elementoslug
actual que se asigna a la página de aventura según la asignación definida anteriormente.pagePath = '/content/wknd-app/us/en/home/adventure/${slug}'
itemPath = 'root/responsivegrid'
Esto indica al componente
ResponsiveGrid
que recupere su contenido del recurso de AEM:/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:
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.
-
Iniciar sesión en AEM Author
-
Vaya a Sitios > Aplicación WKND > us > en
-
Editar la página de inicio de la aplicación WKND
- Vaya a la ruta Bali Surf Camp en el SPA para editarla
-
Seleccione Vista previa en el selector de modo en la parte superior derecha
-
Toca la tarjeta Bali Surf Camp en el SPA para navegar hasta su ruta
-
Seleccione Editar del selector de modo
-
Busque el área editable Contenedor de diseño justo encima del Itinerario
-
Abra la barra lateral del editor de páginas y seleccione la vista Componentes
-
Arrastre algunos de los componentes habilitados al contenedor de diseño
- Imagen
- Texto
- Título
Y crear material de marketing promocional. Podría tener un aspecto similar al siguiente:
-
Vista previa de sus cambios en el editor de páginas de AEM
-
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.
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.