Bygga taggar i ett AEM
- Ämnen:
- Tagging
Skapat för:
- Developer
För programmatiskt arbete med taggar eller tillägg av taggar i ett anpassat AEM-program beskriver den här sidan användningen av
som interagerar med
Mer information om taggning finns i:
- Administrera taggar om du vill ha information om hur du skapar och hanterar taggar, samt om vilka innehållstaggar som har tillämpats.
- Använda taggar om du vill ha information om hur du taggar innehåll.
Översikt över taggnings-API:t
Genomförandet av taggningsramverk i AEM kan hantera taggar och tagginnehåll med JCR-API:t . TagManager ser till att taggar som anges som värden i cq:tags
strängmatrisegenskapen dupliceras inte, den tar bort tagg-ID:n som pekar på taggar som inte finns och uppdaterar tagg-ID:n för flyttade eller sammanfogade taggar. TagManager använder en JCR-observationslyssnare som återställer felaktiga ändringar. Huvudklasserna finns i com.day.cq.tagging paket:
- JcrTagManagerFactory - returnerar en JCR-baserad implementering av en
TagManager
. Det är referensimplementeringen av taggnings-API:t. TagManager
- gör att du kan lösa och skapa taggar efter sökvägar och namn.Tag
- definierar taggobjektet.
Hämta en JCR-baserad TagManager
Om du vill hämta en TagManager-instans måste du ha en JCR Session
och ringa getTagManager(Session)
:
@Reference
JcrTagManagerFactory jcrTagManagerFactory;
TagManager tagManager = jcrTagManagerFactory.getTagManager(session);
I ett typiskt Sling-sammanhang kan du även anpassa dig till en TagManager
från ResourceResolver
:
TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
Hämta ett taggobjekt
A Tag
kan hämtas via TagManager
genom att antingen matcha en befintlig tagg eller skapa en ny:
Tag tag = tagManager.resolve("my/tag"); // for existing tags
Tag tag = tagManager.createTag("my/tag"); // for new tags
För den JCR-baserade implementeringen, som mappar Tags
på JCR Nodes
kan du direkt använda Sling adaptTo
om du har resursen (t.ex. /content/cq:tags/default/my/tag
):
Tag tag = resource.adaptTo(Tag.class);
Även om en tagg endast kan konverteras *från *en resurs (inte en nod), kan en tagg konverteras *till *både en nod och en resurs:
Node node = tag.adaptTo(Node.class);
Resource node = tag.adaptTo(Resource.class);
Node
till Tag
är inte möjligt eftersom Node
implementerar inte Sling Adaptable.adaptTo(Class)
-metod.Hämta och ställa in taggar
// Getting the tags of a Resource:
Tag[] tags = tagManager.getTags(resource);
// Setting tags to a Resource:
tagManager.setTags(resource, tags);
Söker efter taggar
// Searching for the Resource objects that are tagged with the tag object:
Iterator<Resource> it = tag.find();
// Retrieving the usage count of the tag object:
long count = tag.getCount();
// Searching for the Resource objects that are tagged with the tagID String:
RangeIterator<Resource> it = tagManager.find(tagID);
RangeIterator
att använda är:com.day.cq.commons.RangeIterator
Ta bort taggar
tagManager.deleteTag(tag);
Replikerar taggar
Det går att använda replikeringstjänsten ( Replicator
) med taggar eftersom taggar är av typen nt:hierarchyNode
:
replicator.replicate(session, replicationActionType, tagPath);
Tagga på klientsidan
CQ.tagging.TagInputField
är en formulärwidget för att ange taggar. Den har en snabbmeny där du kan välja bland befintliga taggar, som innehåller automatisk komplettering och många andra funktioner. Dess xtype är tags
.
Taggskräpinsamlaren
Taggskräpinsamlaren är en bakgrundstjänst som rensar de dolda och oanvända taggarna. Dolda och oanvända taggar anges nedan /content/cq:tags
som har cq:movedTo
och används inte på en innehållsnod. De har ett antal som är noll. Genom att använda den här lazy delete-processen kan innehållsnoden (dvs. cq:tags
) behöver inte uppdateras som en del av flytt- eller sammanfogningsåtgärden. Referenserna i cq:tags
-egenskapen uppdateras automatiskt när cq:tags
egenskapen uppdateras, t.ex. via dialogrutan för sidegenskaper.
Taggskräpinsamlaren körs som standard en gång om dagen. Detta kan konfigureras på:
http://localhost:4502/system/console/configMgr/com.day.cq.tagging.impl.TagGarbageCollector
Märkordssökning och tagglista
Sökningen efter taggar och tagglistan fungerar enligt följande:
-
Sökningen efter TagID söker efter de taggar som har egenskapen
cq:movedTo
anges till TagID och följer genomcq:movedTo
TaggID:n. -
Om du söker efter tagg Titel genomsöks bara de taggar som inte har någon
cq:movedTo
-egenskap.
Taggar på olika språk
Se beskrivningen i dokumentationen för att administrera taggar i avsnittet Hantera taggar på olika språk, en tagg title
kan definieras på olika språk. Sedan läggs en språkkänslig egenskap till i taggnoden. Den här egenskapen har formatet jcr:title.<locale>
, t.ex. jcr:title.fr
för den franska översättningen. <locale>
måste vara en ISO-språksträng med gemener och använda "_" i stället för "-", till exempel: de_ch
.
När Djur -taggen läggs till i Produkter sida, värdet stockphotography:animals
läggs till i egenskapen cq:tags
för noden /content/geometrixx/en/products/jcr:content. Översättningen refereras från taggnoden.
API:t på serversidan har lokaliserats title
-relaterade metoder:
-
- getLocalizedTitle(språkområde)
- getLocalizedTitlePaths()
- getLocalizedTitles()
- getTitle(Locale locale)
- getTitlePath(språkområde)
-
- canCreateTagByTitle(String tagTitlePath, Locale locale)
- createTagByTitle(String tagTitlePath, Locale locale)
- resolveByTitle(String tagTitlePath, locale)
I AEM kan språket hämtas antingen från sidspråket eller från användarspråket:
-
för att hämta sidspråket i en JSP:
currentPage.getLanguage(false)
-
för att hämta användarspråket i en JSP:
slingRequest.getLocale()
currentPage
och slingRequest
är tillgängliga i en JSP via <cq:definedobjects> -tagg.
För taggning beror lokaliseringen på sammanhanget som tagg titles
kan visas på sidspråket, på användarspråket eller på något annat språk.
Lägga till ett nytt språk i dialogrutan Redigera tagg
I proceduren nedan beskrivs hur du lägger till ett nytt språk (finska) i Redigera tagg dialog:
-
I CRXDE, redigera egenskapen för flera värden
languages
av noden/content/cq:tags
. -
Lägg till
fi_fi
- som representerar den finska språkinställningen - och spara ändringarna.
Det nya språket (finska) är nu tillgängligt i taggdialogrutan för sidegenskaperna och i Redigera tagg när du redigerar en tagg i Taggning konsol.
/libs/wcm/core/resources/languages
.Experience Manager
- Utveckla användarhandboken - översikt
- Introduktion för utvecklare
- Komma igång med utveckling i AEM Sites – WKND-självstudiekurs
- AEM kärnbegrepp
- Struktur för det AEM användargränssnittet med pekskärm
- Koncepten i det AEM användargränssnittet med pekskärm
- AEM - riktlinjer och bästa praxis
- Använda bibliotek på klientsidan
- Developing and Page Diff
- Begränsningar för redigerare
- CSRF Protection Framework
- Datamodellering - David Nueschelers modell
- Bidrar till AEM
- Dokumentskydd
- Referensmaterial
- Skapa en webbplats med alla funktioner (Classic UI)
- Designer och Designer (Classic UI)
- Plattform
- Fusklapp för Sling
- Använda Sling-adaptrar
- Taggbibliotek
- Mallar
- Använda Sling Resource Merger i AEM
- Övertäckningar
- Namnkonventioner
- Skapa en ny GRE-fältkomponent
- Query Builder
- Taggar
- Anpassa sidor som visas av felhanteraren
- Anpassade nodtyper
- Lägga till teckensnitt för grafikåtergivning
- Ansluta till SQL-databaser
- Extern URL
- Skapa och använda jobb för avlastning
- Konfigurerar cookie-användning
- Så här programmässigt kommer du åt AEM JCR
- Integrera tjänster med JMX-konsolen
- Developing the Bulk Editor
- Utveckla rapporter
- eCommerce
- Komponenter
- Kärnkomponenter
- Formatsystem
- Komponenter - översikt
- AEM - Grunderna
- Utveckla AEM
- Utveckla AEM - kodexempel
- JSON-exporterare för innehållstjänster
- Aktivera JSON-export för en komponent
- Bildredigeraren
- Dekoration-tagg
- Använda Dölj villkor
- Konfigurera flera redigerare på plats
- Utvecklarläge
- Testa användargränssnittet
- Komponenter för innehållsfragment
- Hämta sidinformation i JSON-format
- Internationalisering
- Klassiska gränssnittskomponenter
- Headless Experience Management
- Headless och Hybrid with AEM
- Aktivera JSON-export för en komponent
- Enkelsidiga program
- SPA introduktion och genomgång
- SPA WKND - självstudiekurs
- Getting Started with SPA in AEM - React
- Komma igång med SPA i AEM - Angular
- Implementera en React Component for SPA
- SPA djupdykning
- SPA
- Utveckla SPA för AEM
- SPA Blueprint
- SPA
- Dynamisk mappning av modell till komponent för SPA
- SPA
- SPA och Adobe Experience Platform Launch Integration
- SPA- och serveråtergivning
- SPA referensmaterial
- HTTP-API
- Innehållsfragment
- Experience Fragments
- Utvecklingsverktyg
- Utvecklingsverktyg
- AEM Modernization Tools
- Dialogruteredigeraren
- Verktyget Dialogkonvertering
- Utveckla med CRXDE Lite
- Hantera paket med Maven
- Utveckla AEM projekt med Eclipse
- Skapa AEM projekt med Apache Maven
- Utveckla AEM projekt med IntelliJ IDEA
- Så här använder du VLT-verktyget
- Så här använder du proxyserververktyget
- AEM Brackets Extension
- AEM Developer Tools for Eclipse
- AEM
- Personanpassning
- Utöka AEM
- Anpassa sidredigering
- Anpassa konsolerna
- Anpassa vyer av Sidegenskaper
- Konfigurera din sida för gruppredigering av sidegenskaper
- Anpassa och utöka Content Fragments
- Utöka arbetsflöden
- Utöka Multi Site Manager
- Spårning och analys
- Cloud Services
- Skapa anpassade tillägg
- Forms
- Integrera tjänster med JMX-konsolen
- Developing the Bulk Editor
- Utöka Classic UI
- Testning
- Bästa praxis
- Mobil webb