Tags maken in een AEM toepassing building-tagging-into-an-aem-application

CAUTION
AEM 6.4 heeft het einde van de uitgebreide ondersteuning bereikt en deze documentatie wordt niet meer bijgewerkt. Raadpleeg voor meer informatie onze technische ondersteuningsperioden. Ondersteunde versies zoeken hier.

Voor het programmatisch werken met tags of het uitbreiden van tags binnen een aangepaste AEM toepassing, wordt op deze pagina het gebruik van de

die met de

Zie voor gerelateerde informatie over labelen:

  • Tags beheren voor informatie over het maken en beheren van tags en over de inhoudstags die zijn toegepast.
  • Tags gebruiken voor informatie over het labelen van inhoud.

Overzicht van de API voor tags overview-of-the-tagging-api

De uitvoering van de coderingskader in AEM staat het beheer van tags en tag-inhoud met behulp van de JCR API toe. De tagmanager zorgt ervoor dat tags die als waarden zijn ingevoerd in het dialoogvenster cq:tags De eigenschap van de tekenreeksarray wordt niet gedupliceerd. TagID's die naar niet-bestaande tags verwijzen, worden verwijderd en TagID's voor verplaatste of samengevoegde tags worden bijgewerkt. TagManager gebruikt een JCR-observatielistener die onjuiste wijzigingen retourneert. De hoofdklassen bevinden zich in de com.day.cq.tagging pakket:

  • JcrTagManagerFactory - retourneert een op JCR gebaseerde implementatie van een TagManager. Dit is de referentie-implementatie van de API voor labelen.
  • TagManager - Hiermee kunt u tags oplossen en maken op basis van paden en namen.
  • Tag - definieert het labelobject.

Een op JCR gebaseerde tagbeheer ophalen getting-a-jcr-based-tagmanager

Als u een instantie TagManager wilt ophalen, hebt u een JCR nodig Session en om getTagManager(Session):

@Reference
JcrTagManagerFactory jcrTagManagerFactory;

TagManager tagManager = jcrTagManagerFactory.getTagManager(session);

In de typische verkoopcontext kunt u zich ook aanpassen aan een TagManager van de ResourceResolver:

TagManager tagManager = resourceResolver.adaptTo(TagManager.class);

Een tagobject ophalen retrieving-a-tag-object

A Tag kan worden opgehaald via de TagManagerdoor een bestaande tag op te lossen of een nieuwe tag te maken:

Tag tag = tagManager.resolve("my/tag"); // for existing tags

Tag tag = tagManager.createTag("my/tag"); // for new tags

Voor de op JCR gebaseerde implementatie, die kaarten Tags op JCR Nodes, kunt u rechtstreeks gebruikmaken van de adaptTo mechanisme als u de bron hebt (bijvoorbeeld /content/cq:tags/default/my/tag):

Tag tag = resource.adaptTo(Tag.class);

Terwijl een markering slechts *from *a middel (geen knoop) mag worden omgezet, kan een markering *to *both een knoop en een middel worden omgezet:

Node node = tag.adaptTo(Node.class);
Resource node = tag.adaptTo(Resource.class);
NOTE
Rechtstreeks aanpassen van Node tot Tag is niet mogelijk, omdat Node implementeert Sling niet Adaptable.adaptTo(Class) methode.

Labels ophalen en instellen getting-and-setting-tags

// Getting the tags of a Resource:
Tag[] tags = tagManager.getTags(resource);

// Setting tags to a Resource:
tagManager.setTags(resource, tags);

Zoeken naar tags searching-for-tags

// 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);
NOTE
De geldige RangeIterator te gebruiken is:
com.day.cq.commons.RangeIterator

Tags verwijderen deleting-tags

tagManager.deleteTag(tag);

Codes dupliceren replicating-tags

Het is mogelijk om de replicatiedienst te gebruiken ( Replicator) met tags omdat tags van het type zijn nt:hierarchyNode:

replicator.replicate(session, replicationActionType, tagPath);

Tags aan de clientzijde tagging-on-the-client-side

CQ.tagging.TagInputField is een formulierwidget voor het invoeren van codes. Deze bevat een pop-upmenu waarin u een keuze kunt maken uit bestaande tags, waaronder automatisch aanvullen en een groot aantal andere functies. Het xtype is tags.

De opschoonfunctie voor tags the-tag-garbage-collector

De opschoonfunctie voor tags is een service op de achtergrond die verborgen en ongebruikte tags opruimt. Verborgen en ongebruikte tags zijn onderliggende codes /content/cq:tags die een cq:movedTo eigenschap en worden niet gebruikt op een inhoudsknooppunt. Het getal is nul. Door dit lazy schrappingsproces te gebruiken, de inhoudsknoop (d.w.z. cq:tags eigenschap) hoeft niet te worden bijgewerkt als onderdeel van de verplaatsings- of samenvoegbewerking. De verwijzingen in de cq:tags eigenschap wordt automatisch bijgewerkt wanneer de cq:tags eigenschap wordt bijgewerkt, bijvoorbeeld via het dialoogvenster Pagina-eigenschappen.

De opschoonfunctie voor tags wordt standaard eenmaal per dag uitgevoerd. Dit kan worden gevormd bij:

http://localhost:4502/system/console/configMgr/com.day.cq.tagging.impl.TagGarbageCollector

Zoeken en taglijst tag-search-and-tag-listing

De zoekopdracht naar tags en het tagoverzicht werkt als volgt:

  • De zoekopdracht naar TagID zoekt naar de tags met de eigenschap cq:movedTo ingesteld op TagID en doorloopt de cq:movedTo TagID's.

  • De zoekopdracht naar tagtitel doorzoekt alleen de tags zonder een cq:movedTo eigenschap.

Tags in verschillende talen tags-in-different-languages

Zoals beschreven in de documentatie voor het beheer van tags, in de sectie Tags beheren in verschillende talen, een tag titlekunnen in verschillende talen worden gedefinieerd. Vervolgens wordt een taalgevoelige eigenschap toegevoegd aan het tagknooppunt. Deze eigenschap heeft de indeling jcr:title.<locale>, bijvoorbeeld jcr:title.fr voor de Franse vertaling. <locale> moet een tekenreeks zijn met een kleine ISO-landinstelling en moet "_" in plaats van "-" gebruiken, bijvoorbeeld: de_ch.

Wanneer de Dieren -tag wordt toegevoegd aan de Producten pagina, de waarde stockphotography:animals wordt toegevoegd aan de eigenschap cq:tags van het knooppunt /content/geometrixx/nl/products/jcr:content. Er wordt naar de vertaling verwezen vanuit het tagknooppunt.

De server-side API heeft gelokaliseerd title-gerelateerde methoden:

  • com.day.cq.tagging.Tag

    • getLocalizedTitle(Locale locale)
    • getLocalizedTitlePaths()
    • getLocalizedTitles()
    • getTitle(landinstelling van landinstelling)
    • getTitlePath(landinstelling)
  • com.day.cq.tagging.TagManager

    • canCreateTagByTitle(String tagTitlePath, landinstelling)
    • createTagByTitle(String tagTitlePath, landinstelling)
    • resolveByTitle(String tagTitlePath, landinstelling)

In AEM kan de taal worden verkregen via de paginataal of via de taal van de gebruiker:

  • om de paginataal in JSP terug te winnen:

    • currentPage.getLanguage(false)
  • om de gebruikerstaal in JSP terug te winnen:

    • slingRequest.getLocale()

currentPage en slingRequest zijn beschikbaar in een JSP via <cq:definedobjects> tag.

Bij het labelen is lokalisatie afhankelijk van de context als tag titleskan worden weergegeven in de paginataal, in de taal van de gebruiker of in een andere taal.

Een nieuwe taal toevoegen aan het dialoogvenster Tag bewerken adding-a-new-language-to-the-edit-tag-dialog

De volgende procedure beschrijft hoe u een nieuwe taal (het Fins) aan de Tag bewerken dialoogvenster:

  1. In CRXDE, bewerkt u de eigenschap voor meerdere waarden languages van het knooppunt /content/cq:tags.

  2. Toevoegen fi_fi - die staat voor de Finse landinstelling - en sla de wijzigingen op.

De nieuwe taal (Fins) is nu beschikbaar in het tagdialoogvenster van de pagina-eigenschappen en in het dialoogvenster Tag bewerken wanneer u een tag bewerkt in het dialoogvenster Tags console.

NOTE
De nieuwe taal moet een van de AEM erkende talen zijn, d.w.z. het moet beschikbaar zijn als een hieronder knooppunt /libs/wcm/core/resources/languages.
recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e