Modeller för innehållsfragment content-fragment-models
Content Fragment Models i Adobe Experience Manager (AEM) as a Cloud Service definierar strukturen för innehållet i dina Content Fragments. Dessa fragment kan sedan användas för att skapa sidor eller som grund för ditt headless-innehåll.
Så här använder du modeller för innehållsfragment:
- Aktivera funktionen Content Fragment Model för instansen
- Skapa och konfigurera, dina modeller för innehållsfragment
- Aktivera dina modeller för innehållsfragment för användning när du skapar innehållsfragment
- Tillåt dina modeller för innehållsfragment i de nödvändiga Assets-mapparna genom att konfigurera Profiler.
Skapa en innehållsfragmentmodell creating-a-content-fragment-model
-
Navigera till Verktyg, Allmänt och öppna sedan Modeller för innehållsfragment.
-
Navigera till den mapp som passar din konfiguration eller underkonfiguration.
-
Använd Skapa för att öppna guiden.
note caution CAUTION Om användningen av Content Fragment-modeller inte har aktiverats är alternativet Skapa inte tillgängligt. -
Ange modelltitel.
Du kan också definiera olika egenskaper. Du kan till exempel lägga till taggar, en beskrivning, välja Aktivera modell för att aktivera modellen om det behövs och definiera
URL-mönster för standardförhandsgranskning.note note NOTE Mer information finns i Modell för innehållsfragment - Egenskaper. -
Använd Skapa för att spara den tomma modellen. Ett meddelande anger att åtgärden lyckades. Du kan välja Öppna om du vill redigera modellen omedelbart eller Klar om du vill återgå till konsolen.
Content Fragment Model - egenskaper content-fragment-model-properties
De här egenskaperna definieras när du skapar en modell och kan redigeras senare med alternativet Egenskaper för innehållsfragmentmodellen:
-
Grundläggande
-
Modelltitel
-
Taggar
-
Beskrivning
-
Aktivera modell
-
URL-mönster för standardförhandsvisning
Med redigeraren för innehållsfragment kan författare förhandsgranska sitt innehåll i ett externt klientprogram. När förhandsgranskningstjänsten har konfigurerats lägger du till URL:en för klientprogrammet.URL:en för förhandsgranskning bör följa detta mönster:
https://<preview_url>?param=${expression}
Tillgängliga uttryck är:
${contentFragment.path}
${contentFragment.model.path}
${contentFragment.model.name}
${contentFragment.variation}
${contentFragment.id}
-
Överför bild
-
Definiera innehållsfragmentmodellen defining-your-content-fragment-model
Content Fragment Model definierar effektivt strukturen för de resulterande innehållsfragmenten med hjälp av ett urval av datatyper. Med modellredigeraren kan du lägga till instanser av datatyperna och sedan konfigurera dem för att skapa de obligatoriska fälten:
-
Navigera till Verktyg, Allmänt och öppna sedan Modeller för innehållsfragment.
-
Navigera till den mapp som innehåller innehållsfragmentmodellen.
-
Öppna den modell som krävs för Redigera. Använd snabbåtgärden eller markera modellen och sedan åtgärden från verktygsfältet.
När du har öppnat modellredigeraren visas följande:
- vänster: fält har redan definierats
- höger: Datatyper som är tillgängliga för att skapa fält (och egenskaper som kan användas när fälten har skapats)
note note NOTE När ett fält definieras som Obligatoriskt markeras Label som anges i den vänstra rutan med ett asterix (*).
-
Lägga till ett fält
-
Dra en obligatorisk datatyp till önskad plats för ett fält:
-
När ett fält har lagts till i modellen visar den högra panelen de egenskaper som kan definieras för den aktuella datatypen. Här definierar du vad som krävs för fältet.
-
Många egenskaper är självförklarande. Mer information finns i Egenskaper.
-
Om du skriver en fältetikett slutförs egenskapsnamnet automatiskt, om det är tomt, och kan uppdateras manuellt efteråt.
note caution CAUTION När egenskapen Egenskapsnamn uppdateras manuellt för en datatyp, får namn bara innehålla ** A-Z, a-z, 0-9 och understreck"_" som specialtecken. Om modeller som skapats i tidigare versioner av AEM innehåller ogiltiga tecken tar du bort eller uppdaterar dessa tecken.
Till exempel:
-
-
-
Ta bort ett fält
Markera det obligatoriska fältet och välj sedan papperskorgsikonen. Du ombeds bekräfta åtgärden.
-
Lägg till alla obligatoriska fält och definiera de relaterade egenskaperna efter behov. Till exempel:
-
Välj Spara om du vill behålla definitionen.
Datatyper data-types
Det finns ett urval datatyper som du kan använda för att definiera din modell:
-
Enkelradig text
- Lägg till ett eller flera fält med en enda textrad. Den maximala längden kan definieras
-
Flerradstext
- Ett textområde som kan vara RTF, Oformaterad text eller Markering
note note NOTE Oavsett om textområdet är RTF, Oformaterad text eller Markering definieras i modellen av egenskapen Standardtyp. Det här formatet kan inte ändras från redigeraren för innehållsfragment, utan bara från modellen. -
Number
- Lägg till ett eller flera numeriska fält
-
Boolean
- Lägg till en boolesk kryssruta
-
Datum och tid
- Lägg till ett datum och/eller en tid
-
Uppräkning
- Lägga till en uppsättning kryssrutefält, alternativknappar eller nedrullningsbara listrutor
-
Taggar
- Tillåter fragmentförfattare att komma åt och markera taggområden
-
Innehållsreferens
- Refererar till annat innehåll, oavsett typ; kan användas för att skapa kapslat innehåll
- Om en bild refereras kan du välja att visa en miniatyrbild
-
Fragmentreferens
-
Refererar till andra innehållsfragment; kan användas för att skapa kapslat innehåll
-
Datatypen kan konfigureras så att fragmentförfattare kan:
- Redigera det refererade fragmentet direkt.
- Skapa ett nytt innehållsfragment baserat på lämplig modell
-
-
JSON-objekt
-
Gör att innehållsfragmentets författare kan ange JSON-syntax i motsvarande element i ett fragment.
- För att AEM ska kunna lagra direkt JSON som du har kopierat/klistrat in från en annan tjänst.
- JSON skickas och skrivs ut som JSON i GraphQL.
- Innehåller JSON-syntaxmarkering, automatisk komplettering och felmarkering i Content Fragment Editor.
-
-
Platshållare för flik
-
Tillåter att flikar kan användas när innehållet i innehållsfragmentet redigeras.
- Dessa visas som avgränsare i modellredigeraren, och delar upp avsnitt i listan med innehållsdatatyper. Varje instans representerar början på en ny flik.
- I fragmentredigeraren visas varje instans som en flik.
note note NOTE Den här datatypen används endast för formatering, den ignoreras av AEM GraphQL-schema.
-
Egenskaper properties
Många egenskaper är självförklarande, för vissa egenskaper finns ytterligare information nedan:
-
Egenskapsnamn
När den här egenskapen uppdateras manuellt för en datatyp, måste innehålla endast A-Z, a-z, 0-9 och understreck"_" som specialtecken.
note caution CAUTION Om modeller som skapats i tidigare versioner av AEM innehåller ogiltiga tecken tar du bort eller uppdaterar dessa tecken. -
Återge som
De olika alternativen för att realisera/återge fältet i ett fragment. Detta gör ofta att du kan ange om författaren ska se en enda instans av fältet eller om den ska kunna skapa flera instanser. När Flera fält används kan du definiera minsta och högsta antal objekt - se Validering för mer information.
-
Fältetikett
Om du anger en fältetikett genereras ett egenskapsnamn automatiskt, som sedan kan uppdateras manuellt om det behövs. -
Validering
Grundläggande validering är tillgängligt av mekanismer som egenskapen Required . Vissa datatyper har ytterligare valideringsfält. Mer information finns i Validering. -
För datatypen Flerradig text går det att definiera standardtypen som endera:
- RTF
- Markdown
- Oformaterad text
Om inget anges används standardvärdet RTF för det här fältet.
Om du ändrar standardtypen i en modell för innehållsfragment börjar det bara gälla för ett befintligt, relaterat innehållsfragment efter att fragmentet har öppnats i redigeraren och sparats.
-
Unik
Innehållet (för det specifika fältet) måste vara unikt för alla innehållsfragment som skapas från den aktuella modellen.Detta används för att säkerställa att innehållsförfattare inte kan upprepa innehåll som redan har lagts till i ett annat fragment av samma modell.
Ett enkelradigt textfält med namnet
Country
i innehållsfragmentmodellen kan till exempel inte ha värdetJapan
i två beroende innehållsfragment. En varning skickas när ett försök görs att utföra den andra instansen.note note NOTE Unikitet säkerställs per språkrot. note note NOTE Variationer kan ha samma unika-värde som varianter av samma fragment, men inte samma värde som används i andra variationer av fragment. -
Mer information om den specifika datatypen och dess egenskaper finns i Innehållsreferens.
-
Mer information om den specifika datatypen och dess egenskaper finns i Fragmentreferens (kapslade fragment).
-
Översättningsbar
Om du markerar kryssrutan Översättningsbar för ett fält i redigeraren för innehållsfragmentmodellen kommer följande att göras:
- Kontrollera att fältets egenskapsnamn har lagts till i översättningskonfigurationen, kontext
/content/dam/<sites-configuration>
, om det inte redan finns. - För GraphQL: ställ in egenskapen
<translatable>
i fältet Innehållsfragment påyes
för att tillåta GraphQL-frågefilter för JSON-utdata med endast översättningsbart innehåll.
- Kontrollera att fältets egenskapsnamn har lagts till i översättningskonfigurationen, kontext
Validering validation
Olika datatyper kan nu definiera valideringskrav för när innehåll anges i det resulterande fragmentet:
-
Enkelradig text
- Jämför med ett fördefinierat regex.
-
Number
- Sök efter specifika värden.
-
Innehållsreferens
- Testa om det finns specifika typer av innehåll.
- Det går endast att referera till resurser med en angiven filstorlek eller mindre.
- Det går endast att referera till bilder inom ett fördefinierat intervall med bredd och/eller höjd (i pixlar).
-
Fragmentreferens
- Testa om det finns en viss modell för innehållsfragment.
-
Minsta antal objekt / Max antal objekt
Fält som har definierats som ett flera fält (anges med Återge som) har följande alternativ:
- Minsta antal objekt
- Maximalt antal objekt
Dessa valideras i redigeraren för innehållsfragment.
Använda referenser till kapslat innehåll using-references-to-form-nested-content
Innehållsfragment kan skapa kapslat innehåll med någon av följande datatyper:
-
- Ger en enkel referens till annat innehåll, av alla typer.
- Kan konfigureras för en eller flera referenser (i det resulterande fragmentet).
-
Fragmentreferens (kapslade fragment)
-
Refererar till andra fragment, beroende på vilka specifika modeller som anges.
-
Gör att du kan ta med/hämta strukturerade data.
note note NOTE Den här metoden är särskilt intressant när du använder Headless Content Delivery med hjälp av Content Fragments med GraphQL. * Kan konfigureras för en eller flera referenser (i det resulterande fragmentet).
-
-
Innehållsreferenser
Detta förhindrar att användaren lägger till en referens till det aktuella fragmentet och kan leda till en tom dialogruta för fragmentreferensväljaren. -
Fragmentreferenser i GraphQL
Om du skapar en djup fråga som returnerar flera innehållsfragment som refereras av varandra, returneras null vid den första förekomsten.
Innehållsreferens content-reference
Med Innehållsreferens kan du återge innehåll från en annan källa, till exempel bild, sida eller Experience Fragment.
Förutom standardegenskaper kan du ange:
-
Rotsökvägen, som anger var det refererade innehållet ska lagras
note note NOTE Detta är obligatoriskt om du vill överföra och referera till bilder direkt i det här fältet när du använder redigeraren för innehållsfragment. Mer information finns i Referensbilder. -
De innehållstyper som kan refereras
note note NOTE Dessa måste innehålla Bild om du vill överföra och referera till bilder direkt i det här fältet när du använder redigeraren för innehållsfragment. Mer information finns i Referensbilder. -
Begränsningar för filstorlekar
-
Om en bild refereras:
- Visa miniatyrbild
- Bildbegränsningar för höjd och bredd
Fragmentreferens (kapslade fragment) fragment-reference-nested-fragments
Fragmentreferensen refererar till ett eller flera innehållsfragment. Den här funktionen är av särskilt intresse när du hämtar innehåll som ska användas i din app, eftersom du kan hämta strukturerade data med flera lager.
Till exempel:
- En modell som definierar detaljer för en anställd, inklusive:
- En referens till modellen som definierar arbetsgivaren (företaget)
type EmployeeModel {
name: String
firstName: String
company: CompanyModel
}
type CompanyModel {
name: String
street: String
city: String
}
Förutom standardegenskaper kan du definiera:
-
Återge som:
-
multifield - fragmentförfattaren kan skapa flera, enskilda referenser
-
fragmentreferens - tillåter fragmentförfattaren att välja en enskild referens till ett fragment
-
-
Modelltyp
Du kan välja flera modeller. När du lägger till referenser till ett innehållsfragment måste alla refererade fragment ha skapats med dessa modeller. -
Rotsökväg
Detta anger en rotsökväg för alla fragment som refereras. -
Tillåt att fragment skapas
Detta gör att fragmentförfattaren kan skapa ett fragment baserat på lämplig modell.
- fragmentreferenssammansatt - tillåter fragmentförfattaren att skapa en sammansatt bild genom att markera flera fragment
Aktivera eller inaktivera en innehållsfragmentmodell enabling-disabling-a-content-fragment-model
Du kan antingen Aktivera eller Inaktivera dina modeller för innehållsfragment, så att du har fullständig kontroll över hur de används.
Aktivera en innehållsfragmentmodell enabling-a-content-fragment-model
När en modell har skapats måste den aktiveras så att den:
- Kan markeras när du skapar ett innehållsfragment.
- Kan refereras inifrån en innehållsfragmentmodell.
- Är tillgängligt för GraphQL, så schemat genereras.
Så här aktiverar du en modell som har flaggats som antingen:
- Utkast : nytt (aldrig aktiverat).
- Inaktiverad : har inaktiverats specifikt.
Du använder alternativet Aktivera från antingen:
- Det övre verktygsfältet när den obligatoriska modellen är markerad.
- Motsvarande snabbåtgärd (mouse-over the required Model).
Inaktivera en innehållsfragmentmodell disabling-a-content-fragment-model
En modell kan också inaktiveras så att:
-
Modellen är inte längre tillgänglig som grund för att skapa nya innehållsfragment.
-
Men:
- GraphQL-schemat fortsätter att genereras och är fortfarande frågningsbart (för att inte påverka JSON-API:t).
- Alla innehållsfragment som är baserade på modellen kan fortfarande efterfrågas och returneras från GraphQL slutpunkt.
-
Det går inte att referera till modellen längre, men befintliga referenser behålls orörda och kan fortfarande läsas och returneras från GraphQL-slutpunkten.
Om du vill inaktivera en modell som är flaggad som Aktiverad använder du alternativet Inaktivera från antingen:
- Det övre verktygsfältet när den obligatoriska modellen är markerad.
- Motsvarande snabbåtgärd (mouse-over the required Model).
Tillåt modeller för innehållsfragment i din Assets-mapp allowing-content-fragment-models-assets-folder
Om du vill implementera innehållsstyrning kan du konfigurera profiler i Assets-mappen för att styra vilka innehållsfragmentmodeller som tillåts för att skapa fragment i den mappen.
Så här konfigurerar du principer för Tillåtna modeller för innehållsfragment:
-
Navigera och öppna Egenskaper för den Assets-mapp som krävs.
-
Öppna fliken Profiler där du kan konfigurera:
-
Ärvd från
<folder>
Principer ärvs automatiskt när nya underordnade mappar skapas. Principen kan konfigureras om (och arvet brytas) om undermappar måste tillåta modeller som skiljer sig från den överordnade mappen.
-
Tillåtna modeller för innehållsfragment via sökväg
Flera modeller kan tillåtas.
-
Tillåtna modeller för innehållsfragment efter tagg
Flera modeller kan tillåtas.
-
-
Spara eventuella ändringar.
De Content Fragment-modeller som tillåts för en mapp löses enligt följande:
- Profiler för Tillåtna modeller för innehållsfragment.
- Om den är tom kan du försöka identifiera principen med arvsreglerna.
- Om arvskedjan inte ger något resultat ska du titta på konfigurationen Cloud Services för den mappen (också först direkt och sedan via arv).
- Om inget av ovanstående ger några resultat finns det inga tillåtna modeller för den mappen.
Ta bort en innehållsfragmentmodell deleting-a-content-fragment-model
Så här tar du bort en innehållsfragmentmodell:
-
Navigera till Verktyg, Allmänt och öppna sedan Modeller för innehållsfragment.
-
Navigera till den mapp som innehåller innehållsfragmentmodellen.
-
Markera din modell, följt av Ta bort från verktygsfältet.
note note NOTE Om det finns referenser till modellen visas en varning så att du kan vidta lämpliga åtgärder.
Publicera en innehållsfragmentmodell publishing-a-content-fragment-model
Content Fragment Models måste publiceras när/innan beroende Content Fragments publiceras.
Så här publicerar du en innehållsfragmentmodell:
-
Navigera till Verktyg, Allmänt och öppna sedan Modeller för innehållsfragment.
-
Navigera till den mapp som innehåller innehållsfragmentmodellen.
-
Välj en modell, följt av Publish i verktygsfältet.
Publiceringsstatusen visas i konsolen.note note NOTE Om du publicerar ett innehållsfragment för vilket modellen ännu inte har publicerats, visas detta i en urvalslista och modellen publiceras med fragmentet.
Avpublicera en innehållsfragmentmodell unpublishing-a-content-fragment-model
Modeller för innehållsfragment kan avpubliceras om de inte refereras av några fragment.
Så här avpublicerar du en innehållsfragmentmodell:
-
Navigera till Verktyg, Allmänt och öppna sedan Modeller för innehållsfragment.
-
Navigera till den mapp som innehåller innehållsfragmentmodellen.
-
Välj en modell, följt av Avpublicera i verktygsfältet.
Publiceringsstatusen anges i konsolen.
Om du försöker avpublicera en modell som för närvarande används av ett eller flera fragment visas en felvarning. Till exempel:
Meddelandet tyder på att du bör kontrollera panelen Referenser för att undersöka mer:
Låsta (publicerade) modeller för innehållsfragment locked-published-content-fragment-models
Den här funktionen tillhandahåller styrning för publicerade modeller för innehållsfragment.
Utmaningen the-challenge
-
Content Fragment Models bestämmer schemat för GraphQL-frågor i AEM.
-
AEM GraphQL-scheman skapas så snart en innehållsfragmentmodell skapas, och de kan finnas både i författar- och publiceringsmiljöer.
-
Publiceringsscheman är de viktigaste eftersom de utgör grunden för leverans av innehåll i innehållsfragment i JSON-format.
-
-
Problem kan uppstå när modeller för innehållsfragment ändras, eller med andra ord redigeras. Det innebär att schemat ändras, vilket i sin tur kan påverka befintliga GraphQL-frågor.
-
Att lägga till nya fält i en innehållsfragmentmodell bör (vanligtvis) inte ha några skadliga effekter. Om du ändrar befintliga datafält (t.ex. namn) eller tar bort fältdefinitioner kommer befintliga GraphQL-frågor att brytas när de begär dessa fält.
Krav the-requirements
-
Att göra användarna medvetna om riskerna vid redigering av modeller som redan används för leverans av direktsänt innehåll, med andra ord, modeller som har publicerats).
-
För att undvika oönskade ändringar.
Något av dessa villkor kan göra att frågor bryts om de ändrade modellerna publiceras på nytt.
Lösningen the-solution
För att åtgärda dessa problem är Content Fragment Models låst i READ-ONLY-läge när de har skapats - så snart de har publicerats. Den här statusen anges av Låst:
När modellen är Låst (i läget SKRIVSKYDDAD) kan du se innehållet och strukturen för modellerna, men du kan inte redigera dem.
Du kan hantera låsta modeller från konsolen eller modellredigeraren:
-
Konsol
Från konsolen kan du hantera läget SKRIVSKYDDAD med åtgärderna Lås upp och Lås i verktygsfältet:
-
Du kan Lås upp en modell om du vill aktivera redigeringar.
Om du väljer Lås upp visas en varning och du måste bekräfta åtgärden Lås upp:
Du kan sedan öppna modellen för redigering.
-
Du kan också låsa modellen i efterhand.
-
Om du publicerar om modellen återgår den omedelbart till läget Låst (SKRIVSKYDDAT).
-
-
Modellredigerare
-
När du öppnar en låst modell får du en varning och tre åtgärder visas: Avbryt, Visa skrivskyddad, Redigera:
-
Om du väljer Visa skrivskyddat kan du se modellens innehåll och struktur:
-
Om du väljer Redigera kan du redigera och spara dina uppdateringar:
note note NOTE Det kan fortfarande finnas en varning överst, men det är när modellen redan används av befintliga innehållsfragment. -
Avbryt returnerar dig till konsolen.
-