In dit hoofdstuk, onderzoeken wij de verhouding tussen een component van de basispagina en editable malplaatjes. Leer een naamloze artikelsjabloon op basis van een aantal modellen op basis van Adobe XD. In het proces om het malplaatje uit te bouwen, zijn de Componenten van de Kern en de geavanceerde beleidsconfiguraties van de Bewerkbare Malplaatjes behandeld.
Controleer de vereiste gereedschappen en instructies voor het instellen van een plaatselijke ontwikkelomgeving.
Als u met succes het vorige hoofdstuk voltooide, kunt u het project opnieuw gebruiken en de stappen overslaan voor het uitchecken van het starterproject.
Bekijk de basislijncode waarop de zelfstudie is gebaseerd:
Kijk uit de tutorial/pages-templates-start
vertakking van GitHub
$ cd ~/code/aem-guides-wknd
$ git checkout tutorial/pages-templates-start
Stel codebasis aan een lokale AEM instantie op gebruikend uw Maven vaardigheden:
$ mvn clean install -PautoInstallSinglePackage
Indien u AEM 6.5 of 6.4 gebruikt, voegt u de classic
aan om het even welke Gemaakt bevelen.
$ mvn clean install -PautoInstallSinglePackage -Pclassic
U kunt de voltooide code altijd weergeven op GitHub of controleer de code plaatselijk door aan de tak over te schakelen tutorial/pages-templates-solution
.
In dit gedeelte van de zelfstudie maakt u een nieuwe artikelpaginasjabloon die u kunt gebruiken om artikelpagina's te maken en deze uit te lijnen met een gemeenschappelijke structuur. Het sjabloon voor artikelpagina is gebaseerd op ontwerpen en een UI-kit die in Adobe XD is gemaakt. Dit hoofdstuk is alleen gericht op het opbouwen van de structuur of het skelet van de sjabloon. Er worden geen stijlen geïmplementeerd, maar de sjabloon en pagina's zijn functioneel.
Gewoonlijk begint het plannen voor een nieuwe website met modellen en statische ontwerpen. Adobe XD is een ontwerphulpmiddel dat gebruikerservaring bouwt. Vervolgens inspecteren we een UI-kit en -modellen om de structuur van het sjabloon voor artikelpagina te plannen.
Download de WKND-artikelontwerpbestand.
Een generiek AEM Core Components UI Kit is ook beschikbaar als uitgangspunt voor aangepaste projecten.
Wanneer u een pagina maakt, moet u een sjabloon selecteren die wordt gebruikt als basis voor het maken van de pagina. De sjabloon definieert de structuur van de resulterende pagina, de initiële inhoud en de toegestane componenten.
Er zijn drie hoofdgebieden Bewerkbare sjablonen:
Maak vervolgens een sjabloon in AEM die overeenkomt met de structuur van de modellen. Dit gebeurt in een lokale instantie van AEM. Voer de stappen in de onderstaande video uit:
Stappen op hoog niveau voor de bovenstaande video:
/content/experience-fragments/wknd/us/en/site/header/master
.header
. De header
element is gericht met CSS in het volgende hoofdstuk./content/experience-fragments/wknd/us/en/site/footer/master
.footer
. De footer
element is gericht met CSS in het volgende hoofdstuk.main
. De main
element is gericht met CSS in het volgende hoofdstuk.H4
.H5
.Bekijk het malplaatje in de console van het Malplaatje door te navigeren aan http://localhost:4502/libs/wcm/core/content/sites/templates.html/conf/wknd
Inschakelen de sjabloon voor artikelpagina.
Bewerk de eigenschappen van de sjabloon Artikelpagina en upload de volgende miniatuur om snel pagina's te identificeren die zijn gemaakt met de sjabloon Artikelpagina:
Bij het maken van algemene inhoud, zoals een kop- of voettekst, is het gebruikelijk om een Ervaar fragment. Met de functie Fragmenten van ervaring kunnen gebruikers meerdere componenten combineren om één component te maken die geschikt is voor referentie. De Fragmenten van de ervaring hebben het voordeel om multi-site beheer te steunen en lokalisatie.
Het AEM Projectarchetype produceerde een Kopbal en Voettekst. Werk vervolgens de Experience Fragments bij zodat deze overeenkomen met de modellen. Voer de stappen in de onderstaande video uit:
Stappen op hoog niveau voor de bovenstaande video:
/content/wknd/us/en
de startpagina./content/wknd/us/en
de startpagina.Maak vervolgens een pagina met de sjabloon Artikelpagina. Maak de inhoud van de pagina zodat deze overeenkomt met de sitemakken. Voer de stappen in de onderstaande video uit:
Stappen op hoog niveau voor de bovenstaande video:
/content/wknd/us/en/magazine
.Op dit punt is de artikelpagina duidelijk ongeopend. De basisstructuur is echter aanwezig. Controleer vervolgens de knooppuntstructuur van de artikelpagina om meer inzicht te krijgen in de rol van de sjabloon, pagina en componenten.
Gebruik het hulpmiddel CRXDE-Lite op een lokale AEM instantie om de onderliggende knoopstructuur te bekijken.
Openen CRXDE-Lite en gebruik de boomnavigatie om te navigeren naar /content/wknd/us/en/magazine/guide-la-skateparks
.
Klik op de knop jcr:content
knooppunt onder de la-skateparks
pagina en bekijk de eigenschappen:
Let op de waarde voor cq:template
, die /conf/wknd/settings/wcm/templates/article-page
, de sjabloon voor artikelpagina die u eerder hebt gemaakt.
Let ook op de waarde van sling:resourceType
, die wknd/components/page
. Dit is de paginacomponent die door het AEM projectarchetype wordt gecreeerd en is verantwoordelijk voor het teruggeven van pagina die op het malplaatje wordt gebaseerd.
Breid uit jcr:content
knooppunt onder /content/wknd/us/en/magazine/guide-la-skateparks/jcr:content
en bekijk de knooppunthiërarchie:
U zou elk van de knopen aan componenten moeten kunnen losjes in kaart brengen die werden authored. Controleren of u de verschillende containers voor lay-out kunt identificeren die worden gebruikt door de knooppunten te inspecteren die vooraf zijn ingesteld container
.
Controleer de pagina-component op /apps/wknd/components/page
. De componenteigenschappen weergeven in CRXDE Lite:
Er zijn slechts twee HTML-scripts. customfooterlibs.html
en customheaderlibs.html
onder de pagina-component. Hoe geeft deze component de pagina weer?
De sling:resourceSuperType
eigenschap verwijst naar core/wcm/components/page/v2/page
. Met deze eigenschap kan de paginacomponent van de WKND overerven alles de functionaliteit van de pagina-component Core Component. Dit is het eerste voorbeeld van iets dat de Proxycomponentpatroon. Meer informatie is beschikbaar op hier.
Inspect een andere component binnen de WKND-componenten, de Breadcrumb
component van: /apps/wknd/components/breadcrumb
. Hetzelfde geldt sling:resourceSuperType
eigenschap kan worden gevonden, maar deze keer verwijst deze naar core/wcm/components/breadcrumb/v2/breadcrumb
. Dit is een ander voorbeeld van het gebruiken van het de componentenpatroon van de Volmacht om een Component van de Kern te omvatten. In feite, zijn alle componenten in de WKND codebasis volmachten van AEMComponenten van de Kern (behalve de component van douane demo HelloWorld). Het is aan te raden om zoveel mogelijk van de functionaliteit van kerncomponenten te hergebruiken voor aangepaste code schrijven.
Controleer de pagina Core Component op /libs/core/wcm/components/page/v2/page
CRXDE Lite gebruiken:
In AEM 6.5/6.4 bevinden de Core Components zich onder /apps/core/wcm/components
. In, AEM as a Cloud Service, worden de Componenten van de Kern gevestigd onder /libs
en worden automatisch bijgewerkt.
U ziet dat er veel scriptbestanden onder deze pagina staan. De pagina Core Component bevat een groot aantal functies. Deze functionaliteit is opgedeeld in meerdere scripts voor eenvoudiger onderhoud en leesbaarheid. U kunt de opname van de HTML-scripts traceren door het dialoogvenster page.html
en op zoek naar data-sly-include
:
<!--/* /libs/core/wcm/components/page/v2/page/page.html */-->
<!DOCTYPE HTML>
<html data-sly-use.page="com.adobe.cq.wcm.core.components.models.Page" lang="${page.language}"
data-sly-use.head="head.html"
data-sly-use.footer="footer.html"
data-sly-use.redirect="redirect.html">
<head data-sly-call="${head.head @ page = page}"></head>
<body class="${page.cssClassNames}"
id="${page.id}"
data-cmp-data-layer-enabled="${page.data ? true : false}">
<script data-sly-test.dataLayerEnabled="${page.data}">
window.adobeDataLayer = window.adobeDataLayer || [];
adobeDataLayer.push({
page: JSON.parse("${page.data.json @ context='scriptString'}"),
event:'cmp:show',
eventInfo: {
path: 'page.${page.id @ context="scriptString"}'
}
});
</script>
<sly data-sly-test.isRedirectPage="${page.redirectTarget && (wcmmode.edit || wcmmode.preview)}"
data-sly-call="${redirect.redirect @ redirectTarget = page.redirectTarget}"></sly>
<sly data-sly-test="${!isRedirectPage}">
<sly data-sly-include="body.skiptomaincontent.html"></sly>
<sly data-sly-include="body.socialmedia_begin.html"></sly>
<sly data-sly-include="body.html"></sly>
<sly data-sly-call="${footer.footer @ page = page}"></sly>
<sly data-sly-include="body.socialmedia_end.html"></sly>
</sly>
</body>
</html>
De andere reden om HTML in veelvoudige manuscripten uit te breken is de volmachtscomponenten toe te staan om individuele manuscripten met voeten te treden om douanebedrijfslogica uit te voeren. De HTML-scripts customfooterlibs.html
, en customheaderlibs.html
, worden gecreëerd om expliciet te worden vervangen door de uitvoering van projecten.
U kunt meer weten over de manier waarop de bewerkbare sjabloon invloed heeft op de rendering van de inhoudspagina door dit artikel te lezen.
Inspect nog een Core Component, zoals de Breadcrumb op /libs/core/wcm/components/breadcrumb/v2/breadcrumb
. De weergave breadcrumb.html
om te begrijpen hoe de prijsverhoging voor de component Breadcrumb uiteindelijk wordt geproduceerd.
Vaak, vooral aan het begin van een AEM project is het waardevol om configuraties, zoals malplaatjes en verwant inhoudsbeleid, aan broncontrole voort te zetten. Dit zorgt ervoor dat alle ontwikkelaars tegen de zelfde reeks inhoud en configuraties werken en extra consistentie tussen milieu's kunnen verzekeren. Wanneer een project een bepaald ontwikkelingsniveau heeft bereikt, kan het beheren van sjablonen worden overgedragen aan een speciale groep van energiegebruikers.
Sjablonen worden momenteel op dezelfde manier verwerkt als andere codefragmenten en de Artikelpaginasjabloon als onderdeel van het project.
Tot nu toe wordt de code geduwd van het AEM project aan een lokaal geval van AEM. De Artikelpaginasjabloon is rechtstreeks gemaakt op een lokale AEM, dus moet u import het malplaatje in het AEM project. De ui.content is opgenomen in het AEM project voor dit specifieke doel.
De volgende paar stappen worden gedaan in winde VSCode gebruikend VSCode AEM Sync insteekmodule. Maar zij konden doen gebruikend om het even welke winde die u aan hebt gevormd import of importeer inhoud uit een lokale instantie van AEM.
In, opent VSCode aem-guides-wknd
project.
Breid uit ui.content in de explorator van het Project. Breid uit src
en navigeer naar /conf/wknd/settings/wcm/templates
.
Right+Click de templates
map en selecteer Importeren vanaf AEM server:
De article-page
moeten worden ingevoerd en page-content
, xf-web-variation
sjablonen moeten ook worden bijgewerkt.
Herhaal de stappen om inhoud te importeren, maar selecteer de beleid map van /conf/wknd/settings/wcm/policies
.
Inspect the filter.xml
bestand van ui.content/src/main/content/META-INF/vault/filter.xml
.
<!--ui.content filter.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/conf/wknd" mode="merge"/>
<filter root="/content/wknd" mode="merge"/>
<filter root="/content/dam/wknd" mode="merge"/>
<filter root="/content/experience-fragments/wknd" mode="merge"/>
</workspaceFilter>
De filter.xml
is verantwoordelijk voor het identificeren van de paden van knooppunten die samen met het pakket zijn geïnstalleerd. Let op: mode="merge"
op elk van de filters die aangeeft dat bestaande inhoud niet moet worden gewijzigd, wordt alleen nieuwe inhoud toegevoegd. Aangezien de inhoudsauteurs deze wegen kunnen bijwerken, is het belangrijk dat een codeplaatsing doet niet overschrijven, inhoud. Zie de FileVault-documentatie voor meer informatie over het werken met filterelementen.
Ververgelijken ui.content/src/main/content/META-INF/vault/filter.xml
en ui.apps/src/main/content/META-INF/vault/filter.xml
om de verschillende knopen te begrijpen die door elke module worden beheerd.
Om verenigbare plaatsingen voor de plaats van de Verwijzing te verzekeren WKND worden sommige takken van het project opgezet dusdanig dat ui.content
Hiermee overschrijft u eventuele wijzigingen in het JCR. Dit is door ontwerp, d.w.z. voor de Tak van de Oplossing, aangezien de code/de stijlen voor specifiek beleid worden geschreven.
U hebt een sjabloon en pagina met Adobe Experience Manager Sites gemaakt.
Op dit punt is de artikelpagina duidelijk ongeopend. Volg de Client-Side Libraries en front-end workflow zelfstudie voor het leren van de beste werkwijzen voor het opnemen van CSS en JavaScript om algemene stijlen toe te passen op de site en een speciale front-end build te integreren.
De voltooide code weergeven op GitHub of herzie en stel plaatselijk de code bij de tak van de it op tutorial/pages-templates-solution
.
tutorial/pages-templates-solution
vertakking.