Sidmallar - statiska page-templates-static
En mall används för att skapa en sida och definierar vilka komponenter som kan användas i det valda omfånget. En mall är en hierarki med noder som har samma struktur som den sida som ska skapas, men utan något verkligt innehåll.
Varje mall visar ett urval av komponenter som är tillgängliga för användning.
- Mallar är inbyggda i Komponenter;
- Komponenterna använder och tillåter åtkomst till widgetar och dessa används för att återge innehållet.
Egenskaper och underordnade noder för en mall properties-and-child-nodes-of-a-template
En mall är en nod av typen cq:Template och har följande egenskaper och underordnade noder:
En mall är grunden för en sida.
Om du vill skapa en sida måste mallen kopieras (nodträd) /apps/<myapp>/template/<mytemplate>
) till motsvarande position i platsträdet: det här är vad som händer om en sida skapas med Webbplatser -fliken.
Den här kopieringsåtgärden ger även sidan dess ursprungliga innehåll (vanligtvis innehåll på översta nivån) och egenskapen sling:resourceType, sökvägen till sidkomponenten som används för att återge sidan (allt i den underordnade noden jcr:content).
Hur mallar är strukturerade how-templates-are-structured
Det finns två aspekter att tänka på:
- mallens struktur
- strukturen för det innehåll som skapas när en mall används
Strukturen i en mall the-structure-of-a-template
En mall skapas under en nod av typen cq:Template.
Du kan ange olika egenskaper, särskilt:
- jcr:title - Mallens titel. visas i dialogrutan när du skapar en sida.
- jcr:description - En beskrivning av mallen. visas i dialogrutan när du skapar en sida.
Den här noden innehåller en jcr:content-nod (cq:PageContent) som används som bas för innehållsnoden på de resulterande sidorna. den här referensen, med sling:resourceType, den komponent som ska användas för att återge det faktiska innehållet på en ny sida.
Den här komponenten används för att definiera innehållets struktur och design när en ny sida skapas.
Innehållet som skapas av en mall the-content-produced-by-a-template
Mallar används för att skapa sidor av typen cq:Page
(som tidigare nämnts är en sida en speciell typ av komponent). Varje AEM har en strukturerad nod jcr:content
. Det:
- är av typen cq:PageContent
- är en strukturerad nodtyp som innehåller en definierad innehållsdefinition
- har en egenskap
sling:resourceType
för att referera till komponenten som innehåller de snedskript som används för återgivning av innehållet
Standardmallar default-templates
AEM levereras med ett antal standardmallar som är tillgängliga direkt. I vissa fall kanske du vill använda mallarna som de är. I så fall måste du se till att mallen är tillgänglig för din webbplats.
AEM innehåller till exempel flera mallar, inklusive en innehållssida och en hemsida.
Visa standardmallar displaying-default-templates
Om du vill se en lista över alla mallar i databasen gör du så här:
-
Öppna CRXDE Lite i verktyg meny och klicka Fråga.
-
På fliken Fråga
-
Som Typ, markera XPath.
-
I Fråga indatafält, ange följande sträng:
//element(*, cq:Template)
-
Klicka Kör. Listan visas i resultatrutan.
I de flesta fall tar du en befintlig mall och skapar en ny för eget bruk. Se Utveckla sidmallar för mer information.
Om du vill aktivera en befintlig mall för webbplatsen och du vill att den ska visas i dialogrutan Skapa sida när du skapar en sida direkt under Webbplatser från Webbplatser konsol anger du egenskapen allowedPaths för mallnoden till: /content(https://experienceleague.adobe.com/.*?lang=sv)?
Hur malldesigner används how-template-designs-are-applied
När format definieras i användargränssnittet med Designläge, sparas designen på den exakta sökvägen till den innehållsnod som formatet definieras för.
Om du bara använder designläge ska du följa följande avsnitt: Design Path-upplösning, Beslutsträdoch Exempel är inte tillämpliga.
Design Path-upplösning design-path-resolution
När du återger innehåll baserat på en statisk mall försöker AEM att använda den mest relevanta designen och formaten på innehållet baserat på en genomgång av innehållshierarkin.
AEM avgör vilket format som är mest relevant för en innehållsnod i följande ordning:
- Om det finns en design för den fullständiga och exakta sökvägen för innehållsnoden (som när designen definieras i designläge) använder du den designen.
- Om det finns en design för den överordnade noden ska du använda den designen.
- Om det finns en design för en nod på innehållsnodens sökväg använder du den designen.
Om det finns mer än en tillämplig design i de två sista fallen använder du den som ligger närmast noden content.
Beslutsträd decision-tree
Detta är en grafisk representation av Design Path-upplösning logik.
Exempel example
Här följer en enkel innehållsstruktur där en design kan användas på alla noder:
/root/branch/leaf
I följande tabell beskrivs hur AEM väljer en design.
Utveckla sidmallar developing-page-templates
AEM är helt enkelt modeller som används för att skapa nya sidor. De kan innehålla så lite, eller så mycket, initialt innehåll som behövs, och deras roll är att skapa rätt initiala nodstrukturer, med de nödvändiga egenskaperna (främst sling:resourceType) inställda för redigering och återgivning.
Skapa en ny mall (baserad på en befintlig mall) creating-a-new-template-based-on-an-existing-template
Det behöver inte sägas att en ny mall kan skapas helt från grunden, men ofta kopieras och uppdateras en befintlig mall för att spara både tid och arbete. Mallarna i Geometrixx kan till exempel användas för att hjälpa dig komma igång.
Så här skapar du en ny mall baserad på en befintlig mall:
-
Kopiera en befintlig mall (helst med en definition som ligger så nära den du vill uppnå) till en ny nod.
Mallar lagras vanligtvis i /apps/<website-name>/templates/<template-name>.
note note NOTE Listan med tillgängliga mallar beror på den nya sidans plats och de placeringsbegränsningar som anges i respektive mall. Se Malltillgänglighet. -
Ändra jcr:title för den nya mallnoden för att återspegla dess nya roll. Du kan även uppdatera jcr:description vid behov. Var noga med att ändra malltillgängligheten för sidan efter behov.
note note NOTE Om du vill att mallen ska visas i Skapa sida när du skapar en sida direkt under Webbplatser från Webbplatser konsol, ange allowedPaths
mallnodens egenskap till:/content(/.*)?
-
Kopiera komponenten som mallen baseras på (anges av sling:resourceType egenskapen för jcr:innehåll -nod i mallen) för att skapa en ny instans.
Komponenterna lagras vanligtvis i /apps/<website-name>/components/<component-name>.
-
Uppdatera jcr:title och jcr:description för den nya komponenten.
-
Ersätt thumbnail.png om du vill att en ny miniatyrbild ska visas i mallurvalslistan (storlek 128 x 98 px).
-
Uppdatera sling:resourceType av mallens jcr:innehåll nod som refererar till den nya komponenten.
-
Gör ytterligare ändringar av mallens och/eller dess underliggande komponenters funktionalitet eller utformning.
note note NOTE Ändringar i /apps/<website>/templates/<template-name> -noden påverkar mallinstansen (som i urvalslistan).
Ändringar i /apps/<website>/components/<component-name> -noden påverkar innehållssidan som skapas när mallen används.Nu kan du skapa en sida på webbplatsen med den nya mallen.
cq.shared
namnutrymme på innehållssidor och om det inte finns något JavaScript-fel Uncaught TypeError: Cannot read property 'shared' of undefined
blir resultatet.Alla exempelinnehållssidor innehåller
cq.shared
så allt innehåll som baseras på dem automatiskt innehåller cq.shared
. Om du däremot bestämmer dig för att skapa egna innehållssidor från grunden utan att basera dem på exempelinnehåll måste du se till att inkludera cq.shared
namnutrymme.Se Använda bibliotek på klientsidan för ytterligare information.
Göra en befintlig mall tillgänglig making-an-existing-template-available
I det här exemplet visas hur du tillåter att en mall används för vissa innehållssökvägar. Mallarna som är tillgängliga för sidförfattaren när nya sidor skapas bestäms av logiken som definieras i Malltillgänglighet.
-
I CRXDE Lite går du till den mall som du vill använda för sidan, till exempel mallen Nyhetsbrev.
-
Ändra
allowedPaths
egenskap och andra egenskaper som används för malltillgänglighet. Till exempel:allowedPaths
:/content/geometrixx-outdoors/[^/]+(/.*)?
betyder att den här mallen tillåts i alla sökvägar under/content/geometrixx-outdoors
.