[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/consrc/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:
-
Copia cartelle componenti
Dal tema Forms, copiare l'intero contenuto disrc/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)
-
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 esempioquestion.svg,Chevron-Left.svg,busy-state.gife così via).
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):
src/site/_variables.scsstheme/src/components/adaptiveform/_variables.scsssrc/site/_mixin.scsstheme/src/components/adaptiveform/_mixin.scssnon copia il resto della cartella src/site/ del tema Forms; per gli stili di modulo incorporati sono necessari solo questi due file.
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/:
./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;
}
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:
- Importa le variabili e i mixin condivisi.
- 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';
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';
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
-
Crea il tema del sito dalla directory principale del tema:
code language-bash cd theme npm install npm run build
-
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
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._variables.scss o _mixin.scsssrc/site/ in theme/src/components/adaptiveform/ (radice adaptiveform), non all'interno di una sottocartella site._scribble.scss)theme/src/components/adaptiveform/_adaptiveform.scss, rimuovere o commentare la riga @import per quel componente.theme.scss contenga la riga @import './components/adaptiveform/_adaptiveform.scss'; e che il tema sia stato ricompilato e distribuito.cmp-adaptiveform-button). In caso di conflitti, controlla se il CSS del sito personalizzato sostituisce tali classi e regola la specificità o l’ordine.