[AEM Forms]{class="badge positive" title="Si applica ad AEM Forms)."}

Incorporare un tema Forms adattivo in un tema AEM Sites

Puoi incorporare un tema Forms adattivo (ad esempio tema AEM Forms Canvas) nel tema AEM Sites. In questo modo, un singolo tema guida sia le pagine del sito che qualsiasi Forms adattivo incorporato in tali pagine, con una build e una distribuzione tramite la pipeline front-end di AEM.

Questo articolo è destinato agli sviluppatori che mantengono o personalizzano il tema AEM Sites standard (o personalizzato) e desiderano includere lo stile Moduli adattivi senza gestire una distribuzione separata del tema Forms.

Prerequisiti prerequisites

Prima di iniziare, assicurati di disporre di:

  • AEM as a Cloud Service con pipeline front-end configurata per il tema del sito.
  • Origini tema sito, ad esempio tema modello sito standard (l'archivio che contiene theme/ con src/theme.scss, src/components/ e così via).
  • Origini tema Forms - il tema AEM Forms Canvas (o un altro tema Adaptive Forms compatibile) è stato clonato o scaricato localmente.
  • Node.js e npm: per generare il tema del sito, vedere il file README del tema per le versioni supportate.
  • Maven - se si genera il pacchetto del modello di sito completo (facoltativo per il lavoro solo tema).

Passaggio 1: creare la cartella dei componenti del modulo adattivo step-1-create-folder

Nell’archivio dei temi del sito, crea la cartella in cui risiederà il tema Forms:

theme/src/components/adaptiveform/

Tutte le risorse tema di Forms si troveranno in questa cartella, in modo che rimangano separate dai componenti del sito esistenti.

Passaggio 2: copiare componenti e immagini del tema di Forms step-2-copy-components-and-images

Utilizzo del tema Forms (ad esempio, aem-forms-theme-canvas) e dei percorsi del tema del sito:

  1. Copia cartelle componenti
    Dal tema Forms, copiare l'intero contenuto di src/components/ nel tema del sito come:

    code language-text
    theme/src/components/adaptiveform/
    

    In questo modo si ottengono percorsi come:

    code language-text
    theme/src/components/adaptiveform/button/
    theme/src/components/adaptiveform/checkbox/
    theme/src/components/adaptiveform/container/
    … (one folder per component)
    

    aggiungi componenti modulo adattivo

  2. Copia immagini
    Copia le immagini del tema Forms nel tema del sito:

    code language-text
    Forms theme:  src/resources/images/*
    Site theme:   theme/src/components/adaptiveform/resources/images/
    

    Creare theme/src/components/adaptiveform/resources/images/ se non esiste, quindi copiare tutte le risorse immagine (ad esempio question.svg, Chevron-Left.svg, busy-state.gif e così via).

    aggiungi immagini

Passaggio 3: copiare variabili e mixin step-3-copy-variables-and-mixins

Il tema Forms utilizza variabili e mixin condivisi in src/site/. Copia solo questi due file nella radice di adaptiveform/ (non all'interno di una sottocartella site):

Source (tema Forms)
Destinazione (tema del sito)
src/site/_variables.scss
theme/src/components/adaptiveform/_variables.scss
src/site/_mixin.scss
theme/src/components/adaptiveform/_mixin.scss

non copia il resto della cartella src/site/ del tema Forms; per gli stili di modulo incorporati sono necessari solo questi due file.

aggiungi variabili e mixin

Passaggio 4: correggere i percorsi delle immagini in SCSS step-4-fix-image-paths

Nel tema Forms, i file SCSS dei componenti spesso fanno riferimento a immagini con percorsi come ./resources/ o url(resources/. Dopo aver copiato nel tema del sito, tali percorsi devono puntare a theme/src/components/adaptiveform/resources/images/.

Il tema del modello di sito standard utilizza Parcel, che risolve url() percorsi da theme/src/. Pertanto, quando le immagini si trovano in theme/src/components/adaptiveform/resources/images/, utilizzare il percorso components/adaptiveform/resources/images/ (relativo a theme/src/).

Trova e sostituisci in ogni .scss in theme/src/components/adaptiveform/:

Trova
Sostituisci con
./resources/
components/adaptiveform/resources/
url(resources/
url(components/adaptiveform/resources/
url('resources/
url('components/adaptiveform/resources/
url(../resources/
url(components/adaptiveform/resources/

Esempio - prima (tema Forms):

.cmp-adaptiveform-button__questionmark {
  background: url(./resources/images/question.svg) center center / cover no-repeat, #969696;
}

Dopo (tema del sito, immagini in adaptiveform/resources/images/):

.cmp-adaptiveform-button__questionmark {
  background: url(components/adaptiveform/resources/images/question.svg) center center / cover no-repeat, #969696;
}

Cambia URL immagini

Ripetere l'operazione per ogni file SCSS in adaptiveform/ che fa riferimento a immagini (pulsante, pannello a soffietto, procedura guidata, contenitore, scarabocchio e altri). Si consiglia di eseguire una ricerca/sostituzione a livello di progetto nell'IDE su theme/src/components/adaptiveform/.

Passaggio 5: creare il modulo adattivo SCSS dal punto di ingresso step-5-create-adaptiveform-scss

Crea theme/src/components/adaptiveform/_adaptiveform.scss nel tema del sito. Questo file deve:

  1. Importa le variabili e i mixin condivisi.
  2. Importa il file SCSS principale di ciascun componente Modulo adattivo.

Utilizza quanto segue come punto di ingresso completo (corrisponde all’integrazione standard con tutti i componenti modulo basati su Componenti core):

//== Adaptive Form components (forms theme integration)
// Variables and mixins for adaptive form components
@import 'variables';
@import 'mixin';

//== Core adaptive form components
@import './button/_button.scss';
@import './checkboxgroup/_checkboxgroup.scss';
@import './container/_container.scss';
@import './datepicker/_datepicker.scss';
@import './dropdown/_dropdown.scss';
@import './fileinput/_fileinput.scss';
@import './footer/_footer.scss';
@import './image/_image.scss';
@import './numberinput/_numberinput.scss';
@import './panelcontainer/_panelcontainer.scss';
@import './radiobutton/_radiobutton.scss';
@import './text/_text.scss';
@import './textinput/_textinput.scss';
@import './accordion/_accordion.scss';
@import './tabsontop/_tabsontop.scss';
@import './pageheader/_pageheader.scss';
@import './wizard/_wizard.scss';
@import './title/_title.scss';
@import './telephoneinput/_telephoneinput.scss';
@import './emailinput/_emailinput.scss';
@import './recaptcha/_recaptcha.scss';
@import './verticaltabs/_verticaltabs.scss';
@import './checkbox/_checkbox.scss';
@import './termsandconditions/_termsandconditions.scss';
@import './switch/_switch.scss';
@import './hcaptcha/_hcaptcha.scss';
@import './turnstile/_turnstile.scss';
@import './review/_review.scss';
@import './scribble/_scribble.scss';
@import './datetime/_datetime.scss';

scss modulo adattivo

Se il tema Forms omette alcuni componenti (ad esempio, senza scarabocchio o captcha), rimuovi o commenta le righe @import corrispondenti per evitare errori di compilazione. L'elenco precedente corrisponde alla struttura Tema area di lavoro.

Passaggio 6: importare il tema del modulo adattivo nel tema del sito step-6-import-in-theme-scss

In theme/src/theme.scss, aggiungi una singola importazione alla fine del file (dopo le importazioni di altri componenti):

//== Adaptive Form components (forms theme)
@import './components/adaptiveform/_adaptiveform.scss';

Esempio - fine di theme.scss:

// ... existing site component imports ...
@import './components/embed/_embed.scss';
@import './components/pdfviewer/_pdfviewer.scss';
@import './components/socialmediasharing/_social_media_sharing.scss';

//== Adaptive Form components (forms theme)
@import './components/adaptiveform/_adaptiveform.scss';

aggiungi scss modulo adattivo

Questa è l'unica modifica necessaria nella struttura del tema del sito esistente; tutto il codice specifico del modulo rimane in src/components/adaptiveform/.

Passaggio 7: generare e distribuire step-7-build-and-deploy

  1. Crea il tema del sito dalla directory principale del tema:

    code language-bash
    cd theme
    npm install
    npm run build
    

    esegui compilazione

  2. Distribuisci tramite la pipeline front-end esistente. Dopo la distribuzione, lo stesso CSS tema verrà applicato sia alle pagine del sito che al Forms adattivo incorporato.

Risoluzione dei problemi troubleshooting

Problema
Cosa controllare
Build non riuscita: "file non trovato" per un’immagine
Verificare che tutte le immagini del modulo siano in theme/src/components/adaptiveform/resources/images/. In ogni .scss in adaptiveform/, utilizzare url(components/adaptiveform/resources/images/...) in modo che il percorso venga risolto da theme/src/ (richiesto per la compilazione del tema del sito standard con pacchetto). Non utilizzare ../resources/ o resources/ da solo a meno che il bundler non risolva percorsi per file; quindi utilizza il percorso che corrisponde alla cartella di immagini.
Build non riuscita: "file non trovato" per _variables.scss o _mixin.scss
Copiare entrambi i file dal tema di Forms src/site/ in theme/src/components/adaptiveform/ (radice adaptiveform), non all'interno di una sottocartella site.
Build non riuscita: "file non trovato" per un componente (esempio: _scribble.scss)
Il tema Forms potrebbe non includere tale componente. In theme/src/components/adaptiveform/_adaptiveform.scss, rimuovere o commentare la riga @import per quel componente.
Il modulo viene riprodotto ma non presenta stili
Verificare che la pagina utilizzi la libreria client che include il CSS del tema generato e che theme.scss contenga la riga @import './components/adaptiveform/_adaptiveform.scss'; e che il tema sia stato ricompilato e distribuito.
Conflitto di stili tra i componenti del sito e del modulo
Le classi dei componenti del modulo hanno namespace (ad esempio cmp-adaptiveform-button). In caso di conflitti, controlla se il CSS del sito personalizzato sostituisce tali classi e regola la specificità o l’ordine.

Consulta anche see-also

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab