Sjablonen templates
Sjablonen worden op verschillende punten in AEM gebruikt:
-
wanneer u een pagina creeert, selecteert u een malplaatje. Deze sjabloon wordt gebruikt als basis voor de nieuwe pagina. Het malplaatje bepaalt de structuur van de pagina, om het even welke aanvankelijke inhoud, en de componentendie (ontwerpeigenschappen) kunnen worden gebruikt.
-
wanneer u een Fragment van de Inhoud creeert, selecteert u ook een malplaatje. Deze sjabloon definieert de structuur, initiƫle elementen en variaties.
De volgende sjablonen worden in detail besproken:
Sjablonen - Pagina's templates-pages
AEM biedt nu twee basistypen sjablonen voor het maken van pagina's:
Bewerkbare sjablonen editable-templates
Bewerkbare sjablonen worden nu beschouwd als aanbevolen werkwijzen voor het ontwikkelen met AEM.
De voordelen van bewerkbare sjablonen:
-
Kan worden gecreeerden worden uitgegevendoor uw auteurs.
-
Er zijn nu regels waarmee u het volgende kunt definiƫren voor pagina's die met de sjabloon zijn gemaakt:
- de structuur
- de initiƫle inhoud
- inhoudsbeleid
-
Nadat de nieuwe pagina is gemaakt, wordt een dynamische verbinding onderhouden tussen de pagina en de sjabloon. Deze verbinding houdt in dat wijzigingen in de sjabloonstructuur worden weerspiegeld 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 Malplaatjesvoor verdere informatie.
Statische sjablonen static-templates
Statische sjablonen:
- Moet door uw ontwikkelaars worden bepaald en worden gevormd.
- Het oorspronkelijke sjabloonsysteem van AEM dat voor veel versies beschikbaar was.
- Een statische sjabloon is een hiƫrarchie van knooppunten die dezelfde structuur heeft als de pagina die moet worden gemaakt, maar zonder daadwerkelijke inhoud.
- Wordt gekopieerd om de pagina te maken. Hierna bestaat geen dynamische verbinding.
- Gebruikt Wijze van het Ontwerpom ontwerpeigenschappen voort te zetten.
- Wordt opgeslagen onder
/apps
- Zie Statische Malplaatjesvoor verdere informatie.
Beschikbaarheid sjabloon template-availability
-
alleen de eigenschap
cq:allowedTemplates
-
alleen in de hoofdmap van de site
/content/we-retail/jcr:content
allowedPaths
, allowedParents
en allowedChildren
kunnen ook op de sjablonen worden geplaatst om geavanceerdere regels te definiƫren. Nochtans, waar mogelijk, is het veel eenvoudiger om verdere cq:allowedTemplates
eigenschappen op subsections van de plaats te bepalen als er een behoefte is om de toegestane malplaatjes verder te beperken.cq:allowedTemplates
eigenschappen door een auteur op het Geavanceerde lusje van de Eigenschappen van de Pagina 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 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
wordt 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 dejcr:content
subnode vanP
of een voorouder vanP
. -
De eigenschap
allowedPaths
vanT
. -
De eigenschap
allowedParents
vanT
. -
De eigenschap
allowedChildren
van de sjabloonP
.
De evaluatie werkt als volgt:
-
De eerste niet-lege
cq:allowedTemplates
eigenschap die wordt gevonden terwijl de paginahiƫrarchie oploopt, beginnend metP
, komt overeen met het pad vanT
. Als geen van de waarden overeenkomt, wordtT
afgewezen. -
Als
T
een niet-legeallowedPaths
eigenschap heeft, maar geen van de waarden overeenkomen met het pad vanP
, wordtT
afgewezen. -
Als beide bovenstaande eigenschappen leeg of niet bestaan, wordt
T
afgewezen, tenzij het tot dezelfde toepassing behoort alsP
.T
behoort tot dezelfde toepassing alsP
als en alleen als de naam van het tweede niveau van het pad vanT
gelijk is aan de naam van het tweede niveau van het pad vanP
. De sjabloon/apps/geometrixx/templates/foo
behoort bijvoorbeeld tot dezelfde toepassing als de pagina/content/geometrixx
. -
Als
T
een niet-legeallowedParents
eigenschap heeft, maar geen van de waarden overeenkomen met het pad vanP
, wordtT
afgewezen. -
Als de sjabloon van
P
een niet-lege eigenschapallowedChildren
heeft, maar geen van de waarden overeenkomen met het pad vanT
, wordtT
afgewezen. -
In alle andere gevallen is
T
toegestaan.
Het volgende diagram toont het sjabloonevaluatieproces:
Sjablonen beperken die worden gebruikt in onderliggende pagina's limiting-templates-used-in-child-pages
Als u wilt beperken welke sjablonen kunnen worden gebruikt om onderliggende pagina's onder een bepaalde pagina te maken, gebruikt u de eigenschap cq:allowedTemplates
van het knooppunt jcr:content
van de pagina om de lijst met sjablonen op te geven die als onderliggende pagina'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 de eigenschap cq:allowedTemplates
op het knooppunt jcr:content
van de sjabloon gebruiken om deze configuratie toe te passen op alle nieuwe pagina's die deze sjabloon 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.
Sjablonen - Inhoudsfragmenten templates-content-fragments
Zie de Malplaatjes van het Fragment van de Inhoud.