Sjablonen worden op verschillende punten in AEM gebruikt:
Als u een pagina maakt een sjabloon moet selecteren; dit wordt gebruikt als basis voor de nieuwe pagina . De sjabloon definieert de structuur van de resulterende pagina, eventuele initiële inhoud en de componenten die kunnen worden gebruikt (ontwerpeigenschappen).
Wanneer u een inhoudsfragment maakt moet u ook een sjabloon selecteren. Deze sjabloon definieert de structuur, initiële elementen en variaties.
De volgende sjablonen worden in detail besproken:
AEM biedt nu twee basistypen sjablonen voor het maken van pagina's:
Wanneer u een sjabloon gebruikt om een nieuwe pagina te maken, is er geen zichtbaar verschil (voor de auteur van de pagina) en is er geen indicatie van het type sjabloon dat wordt gebruikt.
Bewerkbare sjablonen worden nu beschouwd als aanbevolen werkwijzen voor het ontwikkelen met AEM.
De voordelen van bewerkbare sjablonen:
Kan worden gecreeerd en uitgegeven door uw auteurs.
Zijn geïntroduceerd zodat u het volgende kunt definiëren voor pagina's die met de sjabloon zijn gemaakt:
Nadat de nieuwe pagina is gemaakt, wordt een dynamische verbinding onderhouden tussen de pagina en de sjabloon. dit betekent dat wijzigingen in de sjabloonstructuur worden doorgevoerd op alle pagina's die met die sjabloon worden gemaakt (wijzigingen in de oorspronkelijke inhoud worden niet doorgevoerd).
Gebruikt het inhoudsbeleid (dat van de malplaatjeredacteur wordt uitgegeven) om de ontwerpeigenschappen (gebruikt niet de wijze van het Ontwerp binnen de paginaredacteur) voort te zetten.
Wordt opgeslagen onder /conf
Zie Bewerkbare sjablonen voor meer informatie.
Er is een AEM Community-artikel beschikbaar waarin wordt uitgelegd hoe u een Experience Manager-site met bewerkbare sjablonen kunt ontwikkelen. Zie Een Adobe Experience Manager 6.4-website maken met Bewerkbare sjablonen.
Statische sjablonen:
/apps
Vanaf AEM 6.4 wordt het gebruik van statische sjablonen niet als een goede praktijk beschouwd. Gebruik in plaats hiervan Bewerkbare sjablonen.
AEM Moderniseringsgereedschappen kunnen u helpen bij het migreren van statische naar bewerkbare sjablonen.
AEM biedt veelvoudige eigenschappen aan om de malplaatjes te controleren die onder Plaatsen worden toegestaan. Het combineren ervan kan echter leiden tot zeer complexe regels die moeilijk te volgen en te beheren zijn.
Daarom adviseert Adobe dat u eenvoudig begint, door te bepalen:
alleen de eigenschap cq:allowedTemplates
alleen in de hoofdmap van de site
Voor een voorbeeld, zie Wij.Retail: /content/we-retail/jcr:content
De eigenschappen allowedPaths
, allowedParents
, en allowedChildren
kunnen ook op de malplaatjes worden geplaatst om verfijndere regels te bepalen. Waar mogelijk is het veel eenvoudiger om verdere cq:allowedTemplates
eigenschappen op subsecties van de site te definiëren als de toegestane sjablonen verder moeten worden beperkt.
Een extra voordeel is dat de cq:allowedTemplates
eigenschappen door een auteur op Geavanceerd lusje van Pagina-eigenschappen kunnen worden bijgewerkt. De andere malplaatjeeigenschappen kunnen niet worden bijgewerkt gebruikend (standaard) UI, zodat zou een ontwikkelaar nodig hebben om de regels en een codeplaatsing voor elke verandering te handhaven.
Wanneer u een nieuwe pagina maakt in de interface voor sitebeheer, is de lijst met beschikbare sjablonen afhankelijk van de locatie van de nieuwe pagina en de plaatsingsbeperkingen die in elke sjabloon zijn opgegeven.
De volgende eigenschappen bepalen of een sjabloon T
mag worden gebruikt voor een nieuwe pagina die als onderliggend item van pagina P
moet worden geplaatst. Elk van deze eigenschappen is een tekenreeks met meerdere waarden die nul of meer reguliere expressies bevat die worden gebruikt voor overeenkomsten met paden:
De eigenschap cq:allowedTemplates
van het jcr:content
-subknooppunt van P
of een voorouder van P
.
De eigenschap allowedPaths
van T
.
De eigenschap allowedParents
van T
.
De eigenschap allowedChildren
van de sjabloon P
.
De evaluatie werkt als volgt:
De eerste niet-lege cq:allowedTemplates
-eigenschap die wordt gevonden terwijl de paginahiërarchie oploopt, beginnend met P
, wordt vergeleken met het pad van T
. Als geen van de waarden overeenkomt, wordt T
geweigerd.
Als T
een niet-lege allowedPaths
eigenschap heeft, maar geen van de waarden komt overeen met het pad van P
, wordt T
afgewezen.
Als beide bovenstaande eigenschappen leeg of niet bestaan, wordt T
geweigerd, tenzij het tot dezelfde toepassing behoort als P
. T
behoort tot dezelfde toepassing als P
alleen als de naam van het tweede niveau van het pad van dezelfde T
is als de naam van het tweede niveau van het pad van P
. De sjabloon /apps/geometrixx/templates/foo
behoort bijvoorbeeld tot dezelfde toepassing als de pagina /content/geometrixx
.
Als T
een niet-lege allowedParents
eigenschap heeft, maar geen van de waarden komt overeen met het pad van P
, wordt T
afgewezen.
Als de sjabloon van P
een niet-lege allowedChildren
eigenschap heeft, maar geen van de waarden komt overeen met het pad van T
, wordt T
afgewezen.
In alle andere gevallen is T
toegestaan.
Het volgende diagram toont het sjabloonevaluatieproces:
Om te beperken welke malplaatjes kunnen worden gebruikt om kindpagina's onder een bepaalde pagina tot stand te brengen, gebruik cq:allowedTemplates
bezit van jcr:content
knoop van de pagina om de lijst van malplaatjes te specificeren die als kindpagina's moeten worden toegestaan. Elke waarde in de lijst moet een absoluut pad zijn naar een sjabloon voor een toegestane onderliggende pagina, bijvoorbeeld /apps/geometrixx/templates/contentpage
.
U kunt het cq:allowedTemplates
bezit op de jcr:content
knoop van het malplaatje gebruiken om deze configuratie toe te passen op alle pas gecreëerde pagina's die dit malplaatje gebruiken.
Als u meer beperkingen wilt toevoegen, bijvoorbeeld met betrekking tot de sjabloonhiërarchie, kunt u de eigenschappen allowedParents/allowedChildren
op de sjabloon gebruiken. U kunt dan uitdrukkelijk specificeren dat de pagina's die van een malplaatjeT worden gecreeerd ouderpagina/kinderen van pagina's moeten zijn die van een malplaatjeT worden gecreeerd.
Zie Sjablonen voor inhoudsfragmenten voor volledige informatie.