AEM Taggning Framework aem-tagging-framework

Taggning gör att innehållet kan kategoriseras och struktureras. Taggar kan klassificeras med ett namnutrymme och en taxonomi. Mer information om hur du använder taggar:

  • Se Använda taggar om du vill ha information om hur du taggar innehåll som innehållsförfattare.
  • Se Administrera taggar för administratörens perspektiv om hur du skapar och hanterar taggar, och i vilka innehållstaggar har tillämpats.

Den här artikeln fokuserar på det underliggande ramverket som stöder taggning i AEM och hur det används som utvecklare.

Introduktion introduction

Så här taggar du innehåll och använder infrastrukturen för AEM taggar:

cq:Tag Node Type cq-tag-node-type

Deklarationen för en tagg hämtas i databasen i en nod av typen cq:Tag.

  • En tagg kan vara ett enkelt ord (till exempel sky) eller representerar en hierarkisk taxonomi (till exempel fruit/apple, vilket innebär både den generiska frukten och det mer specifika äpplet).
  • Taggar identifieras av ett unikt TagID.
  • En tagg har valfri metainformation, t.ex. en titel, lokaliserade titlar och en beskrivning. Titeln ska visas i användargränssnitt i stället för i TagID, om det finns.

Ramverket för taggning begränsar också författare och besökare till att endast använda specifika, fördefinierade taggar.

Märkordsegenskaper tag-characteristics

  • Nodtypen är cq:Tag.
  • Nodnamnet är en komponent i TagID.
  • The TagID innehåller alltid namnutrymme.
  • The jcr:title -egenskapen (den titel som ska visas i användargränssnittet) är valfri.
  • The jcr:description -egenskapen är valfri.
  • När den innehåller underordnade noder kallas den behållartagg.
  • Taggen lagras i databasen under en bassökväg som kallas taxonomirotnod.

TaggID tagid

A TagID identifierar en sökväg som löses till en taggnod i databasen.

Vanligtvis är TagID är en kortskrift TagID som börjar med namnutrymmet eller så kan det vara ett absolut TagID från taxonomirotnod.

Om innehållet är taggat och inte finns än, cq:tags -egenskapen läggs till i innehållsnoden och TagID läggs till i egenskapens String arrayvärde.

The TagID består av en namespace följt av TagID. Behållartaggar har undertaggar som representerar en hierarkisk ordning i taxonomin. Undertaggar kan användas för att referera till taggar som är samma som alla lokala TagID. Du kan till exempel tagga innehåll med fruit tillåts, även om det är en behållartagg med undertaggar, som fruit/apple och fruit/banana.

Taxonomirotnod taxonomy-root-node

Taxonomirotnoden är grundsökvägen för alla taggar i databasen. Rotnoden för taxonomi måste not vara en nod av typen cq:Tag.

I AEM är bassökvägen /content/cq:tags och rotnoden är av typen cq:Folder.

Namnutrymme för tagg tag-namespace

Med namnutrymmen kan du gruppera saker. Det vanligaste användningsfallet är att ha ett namnutrymme per plats (till exempel public jämfört med internal) eller per större program (till exempel Sites eller Assets), men namnutrymmen kan användas för olika andra behov. Namnutrymmen används i användargränssnittet för att endast visa deluppsättningen med taggar (d.v.s. taggar för ett visst namnutrymme) som kan användas för det aktuella innehållet.

Taggens namnutrymme är den första nivån i taxonomiunderträdet, som är noden direkt under taxonomirotnod. Ett namnutrymme är en nod av typen cq:Tag vars överordnade inte är en cq:Tag nodtyp.

Alla taggar har ett namnutrymme. Om inget namnutrymme anges tilldelas taggen standardnamnutrymmet, som är TagID default, det vill säga /content/cq:tags/default. Rubriken är som standard Standard Tagsi sådana fall.

Behållartaggar container-tags

En behållartagg är en nod av typen cq:Tag som innehåller valfritt antal och valfri typ av underordnade noder, vilket gör det möjligt att förbättra taggmodellen med anpassade metadata.

Dessutom fungerar behållartaggar (eller supertaggar) i en taxonomi som delsummering av alla undertaggar. Innehåll som du t.ex. taggat med fruit/apple betraktas som taggat med fruit, också. Det vill säga, söka efter innehåll taggat med fruit söker även efter innehåll som taggats med fruit/apple.

Lösa tagg-ID:n resolving-tagids

Om tagg-ID:t innehåller ett kolon (:) separerar kolonet namnutrymmet från taggen eller subtaxonomin, som sedan separeras med normala snedstreck (/). Om tagg-ID:t inte har ett kolon används standardnamnutrymmet.

Standardplatsen och den enda platsen för taggar är under /content/cq:tags.

Taggar som refererar till icke-befintliga banor eller banor som inte pekar på en cq:Tag noden betraktas som ogiltig och ignoreras.

I följande tabell visas några exempel TagIDs, deras element och hur TagID löser ett problem med en absolut sökväg i databasen:

TagID
Namnutrymme
Lokalt ID
Behållartaggar
Lövtagg
Databassökväg för absolut tagg
dam:fruit/apple/braeburn
dam
fruit/apple/braeburn
fruit,apple
braeburn
content/cq:tags/dam/fruit/apple/braeburn
color/red
default
color/red
color
red
/content/cq:tags/default/color/red
sky
default
sky
(ingen)
sky
/content/cq:tags/default/sky
dam:
dam
(ingen)
(ingen)
(ingen)
/content/cq:tags/dam
content/cq:tags/category/car
category
car
car
car
content/cq:tags/category/car

Lokalisering av taggtitel localization-of-tag-title

När taggen innehåller den valfria titelsträngen jcr:title, går det att lokalisera titeln för visning genom att lägga till egenskapen jcr:title.<locale>.

Mer information finns i följande:

  • Taggar på olika språk beskriva hur API:erna används som utvecklare
  • Hantera taggar på olika språk, som beskriver användningen av taggningskonsolen som administratör

Åtkomstkontroll access-control

Taggar finns som noder i databasen under taxonomirotnod. Du kan skapa taggar i ett givet namnutrymme genom att ange lämpliga åtkomstkontrollistor i databasen, så att författare och besökare kan neka eller neka åtkomst.

Genom att neka läsbehörighet för vissa taggar eller namnutrymmen kan du styra möjligheten att använda taggar för visst innehåll.

Ett typiskt exempel är:

  • Tillåta tag-administrators skrivåtkomst för grupp/roll till alla namnutrymmen (lägg till/ändra under /content/cq:tags). Den här gruppen levereras med AEM.
  • Ge användare/författare läsåtkomst till alla namnutrymmen som ska vara läsbara för dem (oftast alla).
  • Ger användare/författare skrivåtkomst till de namnutrymmen där taggar ska kunna definieras fritt av användare/författare (add_node under /content/cq:tags/some_namespace)

Taggbart innehåll : cq:Taggable Mixin taggable-content-cq-taggable-mixin

För programutvecklare som vill bifoga taggning till en innehållstyp, nodens registrering (CND) måste innehålla cq:Taggable blanda eller cq:OwnerTaggable blanda.

The cq:OwnerTaggable mixin, som ärver från cq:Taggable, är avsedd att indikera att innehållet kan klassificeras av ägaren/författaren. I AEM är det bara ett attribut för cq:PageContent nod. The cq:OwnerTaggable mixin krävs inte av taggningsramverket.

NOTE
Du bör bara aktivera taggar på den översta noden i ett aggregerat innehållsobjekt (eller på dess jcr:content nod). Exempel:
  • Sidor (cq:Page) där jcr:contentnoden är av typen cq:PageContent, som innehåller cq:Taggable blanda.
  • Resurser (cq:Asset) där jcr:content/metadata noden har alltid cq:Taggable blanda.

Nodtypsnotation (CND) node-type-notation-cnd

Det finns nodtypsdefinitioner i databasen som CND-filer. CND-notation definieras som en del av JCR-dokumentation.

De viktigaste definitionerna för nodtyperna i AEM är följande:

[cq:Tag] > mix:title, nt:base
    orderable
    - * (undefined) multiple
    - * (undefined)
    + * (nt:base) = cq:Tag version

[cq:Taggable]
    mixin
    - cq:tags (string) multiple

[cq:OwnerTaggable] > cq:Taggable
    mixin

cq:tagg, egenskap cq-tags-property

The cq:tags egenskapen är en String matris som används för att lagra en eller flera TagIDnär de tillämpas på innehåll av författare eller webbplatsbesökare. Egenskapen har bara betydelse när den läggs till i en nod som definieras med cq:Taggable blanda.

NOTE
Om du vill använda AEM taggningsfunktioner bör anpassade utvecklade program inte definiera andra taggegenskaper än cq:tags.

Flytta och sammanfoga taggar moving-and-merging-tags

Nedan följer en beskrivning av effekterna i databasen när du flyttar eller sammanfogar taggar med hjälp av taggningskonsolen.

När tagg A flyttas eller sammanfogas till tagg B under /content/cq:tags:

  • Tagg A tas inte bort och får en cq:movedTo -egenskap.

    • cq:movedTo pekar på tagg B.

    • Den här egenskapen innebär att tagg A har flyttats eller sammanfogats till tagg B.

    • Om du flyttar tagg B uppdateras den här egenskapen i enlighet med detta.

    • Tagg A är därför dold och sparas bara i databasen så att den kan matcha tagg-ID:n i innehållsnoder som pekar på tagg A.

    • Taggskräpinsamlaren tar bort taggar som tagg A en gång och inga fler innehållsnoder pekar på dem.

    • Ett specialvärde för cq:movedTo egenskapen är nirvana, som används när taggen tas bort men inte kan tas bort från databasen eftersom det finns undertaggar med en cq:movedTo som måste behållas.

      note note
      NOTE
      The cq:movedTo egenskapen läggs bara till i den flyttade eller sammanfogade taggen om något av dessa villkor uppfylls:
      1. Taggen används i innehåll (vilket innebär att den har en referens). ELLER
      2. Taggen har underordnade objekt som redan har flyttats.

      * Tagg B skapas (om det finns en flytt) och får ett `cq:backlinks` -egenskap.

    • cq:backlinks behåller referenserna i den andra riktningen. Det innebär att det finns en lista med alla taggar som har flyttats till eller sammanfogats med tagg B.

    • Den här funktionen krävs oftast för att behålla cq:movedTo egenskaperna är uppdaterade även när tagg B flyttas/sammanfogas/tas bort eller när tagg B aktiveras, och då måste även alla dess bakåttaggar aktiveras.

      note note
      NOTE
      The cq:backlinks egenskapen läggs bara till i den flyttade eller sammanfogade taggen om något av dessa villkor uppfylls:
      1. Taggen används i innehållet (vilket innebär att den har en referens), eller
      2. Taggen har underordnade objekt som redan har flyttats.

Läsa en cq:tags -egenskapen för en innehållsnod omfattar följande upplösning:

  1. Om det inte finns någon matchning under /content/cq:tags, returneras ingen tagg.
  2. Om taggen har en cq:movedTo egenskapsuppsättningen följs det refererade tagg-ID:t.
    • Det här steget upprepas så länge som den efterföljande taggen har en cq:movedTo -egenskap.
  3. Om den följande taggen inte har en cq:movedTo -egenskapen läses taggen.

Om du vill publicera ändringen när en tagg har flyttats eller sammanfogats väljer du cq:Tag noden och alla dess bakgrunder måste replikeras. Denna replikering utförs automatiskt när taggen aktiveras i taggens administrationskonsol.

Senare uppdateringar av sidans cq:tags egenskapen rensar automatiskt bort de gamla referenserna. Rensningen utlöses eftersom en flyttad tagg som löses via API returnerar måltaggen och därmed anger måltaggens ID.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab