Page Exporter

AEM consente di esportare una pagina come pagina Web completa con immagini, file .js e .css.

Una volta configurata l'esportazione, è sufficiente richiedere una pagina nel browser sostituendo html con export.zip nell'URL e ottenere un file ZIP contenente la pagina rappresentata in formato html e le risorse di riferimento. Tutti i percorsi della pagina, ad esempio i percorsi delle immagini, vengono riscritti in modo da puntare ai file inclusi nel file zip o alle risorse sul server.

Esportazione di una pagina

Nei passaggi seguenti viene descritto come esportare una pagina e si presuppone che esista un modello di configurazione per l’esportazione per il sito. Un modello di configurazione definisce il modo in cui una pagina viene esportata ed è specifica per il sito. Per creare un modello di configurazione, fare riferimento alla sezione Creazione di una configurazione di esportazione di pagina per il sito.

Per esportare una pagina:

  1. Nel browser, aprite la pagina. Esempio:

  2. http://localhost:4502/content/geometrixx/en/products/triangle.html

  3. Aprite la finestra di dialogo delle proprietà della pagina, selezionate la scheda Avanzate ed espandete il set di campi Esporta.

  4. Fate clic sull'icona Lente di ingrandimento e selezionate un modello di configurazione. Selezionate il modello geometrixx, in quanto è il modello predefinito per il sito di Geometrixx. Fai clic su OK.

  5. Fare clic su OK per chiudere la finestra di dialogo delle proprietà della pagina.

  6. Richiedete la pagina sostituendo html con export.zip nell'URL.

  7. Scaricate il file <page-name>.export.zip nel file system.

  8. Nel file system, decomprimete il file:

    • il file html della pagina ( <page-name>.html) è disponibile in <unzip-dir>/<page-path>
    • altre risorse (file .js, file .css, immagini, …) si trovano in base alle impostazioni nel modello di esportazione. In questo esempio, alcune risorse sono inferiori a <unzip-dir>/etc, alcune inferiori a <unzip-dir>/<page-path>.
  9. Aprite il file html della pagina ( <unzip-dir>/<page-path>.html) nel browser per controllare il rendering.

Creazione di una configurazione di esportazione di pagina per il sito

L'esportatore di pagine si basa sul framework Content Sync (Sincronizzazione contenuti). Le configurazioni disponibili nella finestra di dialogo delle proprietà della pagina sono modelli di configurazione. Definiscono tutte le dipendenze richieste per una pagina. Quando viene attivata l’esportazione di una pagina, viene utilizzato il modello di configurazione e sia il percorso della pagina che il percorso di progettazione vengono applicati dinamicamente alla configurazione. Il file zip viene quindi creato utilizzando la funzionalità standard di sincronizzazione dei contenuti.

AEM incorpora alcuni modelli, tra cui:

  • Un valore predefinito in /etc/contentsync/templates/default. Modello:

    • È il modello di fallback quando non viene trovato alcun modello di configurazione nella directory archivio.
    • Può fungere da base per un nuovo modello di configurazione.
  • Uno dedicato al sito Geometrixx, all'indirizzo /etc/contentsync/templates/geometrixx. Questo modello può essere utilizzato come esempio per crearne uno nuovo.

Per creare un modello di configurazione per l’esportazione di pagine:

  1. In CRXDE Lite, creare un nodo sotto /etc/contentsync/templates:

    • Nome: ad esempio mysite. Il nome viene visualizzato nella finestra di dialogo delle proprietà della pagina quando si sceglie il modello di esportazione della pagina.
    • Tipo: nt:unstructured
  2. Sotto il nodo del modello, denominato qui mysite, create una struttura di nodi utilizzando i nodi di configurazione descritti di seguito.

Nodi di configurazione esportazione pagina

Il modello di configurazione è costituito da una struttura di nodi. Ogni nodo ha una proprietà type che definisce un'azione specifica nel processo di creazione del file zip. Per ulteriori dettagli sulla proprietà type, consultate la sezione Panoramica dei tipi di configurazione nella pagina Framework di sincronizzazione dei contenuti.

Per creare un modello di configurazione per l’esportazione è possibile utilizzare i nodi seguenti:

nodo paginaIl nodo pagina viene utilizzato per copiare il codice HTML della pagina nel file zip. Ha le seguenti caratteristiche:

  • È un nodo obbligatorio.
  • Si trova sotto /etc/contentsync/templates/<sitename>.
  • Il nome è page.
  • Il tipo di nodo è nt:unstructured

Il nodo page ha le seguenti proprietà:

  • Una proprietà type impostata con il valore pages.

  • Non dispone di una proprietà path in quanto il percorso della pagina corrente viene copiato in modo dinamico nella configurazione.

  • Le altre proprietà sono descritte nella sezione Panoramica dei tipi di configurazione del framework Content Sync.

rewrite nodeIl nodo di riscrittura definisce il modo in cui i collegamenti vengono riscritti nella pagina esportata. I collegamenti riscritti possono puntare ai file inclusi nel file zip o alle risorse sul server.

Per una descrizione completa del nodo rewrite, fare riferimento alla pagina Content Sync (Sincronizzazione contenuto).

nodo di progettazioneIl nodo di progettazione viene utilizzato per copiare la progettazione utilizzata per la pagina esportata. Ha le seguenti caratteristiche:

  • È facoltativo.
  • Si trova sotto /etc/contentsync/templates/<sitename>.
  • Il nome è design.
  • Il tipo di nodo è nt:unstructured.

Il nodo design ha le seguenti proprietà:

  • Una proprietà type impostata sul valore copy.

  • Non dispone di una proprietà path in quanto il percorso della pagina corrente viene copiato in modo dinamico nella configurazione.

nodo genericoUn nodo generico viene utilizzato per copiare nel file zip risorse come file clientlibs .js o .css. Ha le seguenti caratteristiche:

  • È facoltativo.
  • Si trova sotto /etc/contentsync/templates/<sitename>.
  • Non ha un nome specifico.
  • Il tipo di nodo è nt:unstructured.
  • Possiede una proprietà type ed eventuali proprietà correlate type come definito nella sezione Panoramica dei tipi di configurazione del framework Content Sync.

Ad esempio, il seguente nodo di configurazione copia i file clientlibs .js geometrixx nel file zip:

"geometrixx.clientlibs.js": {
    "extension": "js",
    "type": "clientlib",
    "path": "/etc/designs/geometrixx/clientlibs",
    "jcr:primaryType": "nt:unstructured"
}

Il modello di configurazione per l'esportazione delle pagine Geometrixx mostra come è possibile configurare l'esportazione delle pagine. Per visualizzare la struttura dei nodi del modello nel browser come formato json, richiedi il seguente URL:

http://localhost:4502/etc/contentsync/templates/geometrixx.-1.json

Implementazione di una configurazione personalizzata

Come avrete notato nella struttura del nodo, il modello di configurazione per l'esportazione delle pagine Geometrixx ha un nodo logo con una proprietà type impostata su image. Si tratta di un tipo di configurazione speciale creato per copiare il logo immagine nel file zip. Per soddisfare alcuni requisiti specifici, potrebbe essere necessario implementare una proprietà type personalizzata: a tal fine, fate riferimento alla sezione Implementazione di un gestore di aggiornamenti personalizzato nella pagina Content Sync (Sincronizzazione contenuti).

Esportazione programmata di una pagina

Per esportare una pagina a livello di programmazione, è possibile utilizzare il servizio PageExporter OSGI. Questo servizio consente di:

  • Esportate una pagina e scrivete la risposta del servlet HTTP.
  • Esportate una pagina e salvate il file zip in un percorso specifico.

Il servlet associato al selettore export e all'estensione zip utilizza il servizio PageExporter.

Risoluzione dei problemi

Se si verifica un problema con il download del file zip, è possibile eliminare il nodo /var/contentsync nella directory archivio e inviare di nuovo la richiesta di esportazione.

In questa pagina