Framework di tag AEM

I tag consentono di classificare e organizzare il contenuto. I tag possono essere classificati da uno spazio dei nomi e una tassonomia. Per informazioni dettagliate sull’uso dei tag:

  • Per informazioni sull'assegnazione di tag ai contenuti come autori di contenuti, consultate Utilizzo di tag.
  • Consultate Amministrazione dei tag per la prospettiva dell’amministratore sulla creazione e gestione dei tag, nonché per informazioni sui tag di contenuto applicati.

Questo articolo è incentrato sul framework sottostante che supporta l’assegnazione di tag in AEM e su come utilizzarlo come sviluppatore.

Introduzione

Per assegnare tag ai contenuti e sfruttare l'infrastruttura di tag AEM:

  • Il tag deve essere presente come nodo di tipo cq:Tag sotto il nodo principale tassonomia.
  • Il NodeType nodo del contenuto con tag deve includere il mixin cq:Taggable.
  • TagID viene aggiunto alla proprietà cq:tags del nodo di contenuto e viene risolto in un nodo di tipo cq:Tag.

cq:Tag Node Type

La dichiarazione di un tag viene acquisita nella directory archivio in un nodo di tipo cq:Tag.

  • Un tag può essere una parola semplice (ad es. sky) o rappresentano una tassonomia gerarchica (ad esempio fruit/apple, che significa sia il frutto generico che la mela più specifica).
  • I tag sono identificati da un TagID univoco.
  • Un tag contiene metadati facoltativi quali un titolo, titoli localizzati e una descrizione. Se presente, il titolo deve essere visualizzato nelle interfacce utente anziché in TagID.

Il framework di assegnazione tag consente inoltre di limitare gli autori e i visitatori del sito a utilizzare solo tag predefiniti specifici.

Caratteristiche del tag

  • Il tipo di nodo è cq:Tag.
  • Il nome del nodo è un componente di TagID.
  • TagID include sempre uno spazio dei nomi .
  • La proprietà jcr:title (il Titolo da visualizzare nell'interfaccia utente) è opzionale.
  • La proprietà jcr:description è facoltativa.
  • Quando contengono nodi secondari, viene indicato come tag contenitore.
  • Il tag viene memorizzato nell'archivio sotto un percorso di base denominato nodo radice tassonomia.

ID tag

A TagID identifica un percorso che risolve a un nodo di tag nella directory archivio.

In genere, il TagID è un TagID corto che inizia con lo spazio dei nomi o può essere un TagID assoluto a partire dal nodo radice tassonomia.

Quando un contenuto è dotato di tag, se non esiste ancora, la proprietà cq:tags viene aggiunta al nodo di contenuto e il TagID viene aggiunto al valore dell'array String della proprietà.

Il TagID è costituito da un namespace seguito dal TagID locale. I tag contenitore contengono tag secondari che rappresentano un ordine gerarchico nella tassonomia. I tag secondari possono essere utilizzati per fare riferimento ai tag come qualsiasi TagID locale. Ad esempio, l'assegnazione di tag al contenuto con fruit è consentita, anche se si tratta di un tag contenitore con tag secondari, quali fruit/apple e fruit/banana.

Nodo radice tassonomia

Il nodo principale della tassonomia è il percorso di base per tutti i tag presenti nella directory archivio. Il nodo radice tassonomia deve essere not un nodo di tipo cq:Tag.

In AEM, il percorso di base è /content/cq:tags e il nodo principale è di tipo cq:Folder.

Tag Namespace

Gli spazi dei nomi consentono di raggruppare gli elementi. Il caso d’uso più tipico consiste nell’avere uno spazio nomi per sito (ad esempio pubblico o interno) o per applicazione più grande (ad esempio Siti o Risorse), ma gli spazi dei nomi possono essere utilizzati per varie altre esigenze. Gli spazi dei nomi vengono utilizzati nell'interfaccia utente per mostrare solo il sottoinsieme di tag (cioè i tag di un determinato spazio dei nomi) applicabile al contenuto corrente.

Lo spazio dei nomi del tag è il primo livello nella struttura ad albero secondaria della tassonomia, ovvero il nodo immediatamente sotto il nodo radice della tassonomia. Uno spazio dei nomi è un nodo di tipo cq:Tag il cui elemento principale non è un tipo di cq:Tag nodo.

Tutti i tag hanno uno spazio nomi. Se non viene specificato alcuno spazio dei nomi, il tag viene assegnato allo spazio dei nomi predefinito, che è TagID default, ovvero /content/cq:tags/default. In questi casi, il valore predefinito del titolo è Standard Tags.

Tag contenitore

Un tag contenitore è un nodo di tipo cq:Tag contenente qualsiasi numero e tipo di nodi secondari, che consente di migliorare il modello di tag con metadati personalizzati.

Inoltre, i tag contenitore (o super-tag) in una tassonomia fungono da sottotitoli per tutti i tag secondari: ad esempio, il contenuto con tag fruit/apple viene considerato anche con tag fruit, ovvero la ricerca di contenuto con tag fruit potrebbe individuare anche il contenuto con tag fruit/apple.

Risoluzione di ID tag

Se l'ID del tag contiene due punti (:), i due punti separano lo spazio dei nomi dal tag o dalla sotto-tassonomia, che vengono quindi separati con le normali barre (/). Se l'ID del tag non ha due punti, lo spazio dei nomi predefinito è implicito.

La posizione standard e unica dei tag è inferiore a /content/cq:tags.

I tag che fanno riferimento a percorsi o percorsi non esistenti che non puntano a un nodo cq:Tag vengono considerati non validi e vengono ignorati.

Nella tabella seguente sono riportati alcuni esempi di TagIDs, i relativi elementi e il modo in cui TagID risolve un percorso assoluto nella directory archivio:

TagID Namespace ID locale Tag contenitore Tag foglia Percorso tag assoluto archivio
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 (nessuno) sky /content/cq:tags/default/sky
dam: dam (nessuno) (nessuno) (nessuno) /content/cq:tags/dam
content/cq:tags/category/car category car car car content/cq:tags/category/car

Localizzazione del titolo del tag

Quando il tag include la stringa di titolo opzionale jcr:title, è possibile localizzare il titolo per la visualizzazione aggiungendo la proprietà jcr:title.<locale>.

Per ulteriori dettagli, consulta:

  • Tag in diverse lingue, che descrive l'utilizzo delle API come sviluppatore
  • Gestione dei tag in diverse lingue, che descrive l’utilizzo della console Tagging come amministratore

Controllo accesso

I tag esistono come nodi nel repository sotto il nodo principale tassonomia. È possibile consentire o negare agli autori e ai visitatori del sito di creare tag in un dato spazio nomi impostando ACL appropriati nell'archivio.

La negazione delle autorizzazioni di lettura per alcuni tag o spazi di nomi consente di controllare la possibilità di applicare tag a contenuti specifici.

Una pratica tipica include:

  • Consentire a tag-administrators gruppo/ruolo di accedere in scrittura a tutti gli spazi dei nomi (aggiungere/modificare in /content/cq:tags). Questo gruppo viene fornito con AEM out-of-the-box.
  • Consentire a utenti/autori di accedere in lettura a tutti gli spazi dei nomi che dovrebbero essere leggibili (per lo più tutti).
  • Consentire a utenti/autori di accedere in scrittura agli spazi dei nomi in cui i tag devono essere liberamente definibili da utenti/autori (add_node in /content/cq:tags/some_namespace)

Contenuto variabile: cq:Mixin variabile

Affinché gli sviluppatori di applicazioni possano allegare tag a un tipo di contenuto, la registrazione del nodo (CND) deve includere il mixin cq:Taggable o il mixin cq:OwnerTaggable.

Il mixin cq:OwnerTaggable, che eredita da cq:Taggable, ha lo scopo di indicare che il contenuto può essere classificato dal proprietario/autore. In AEM, è solo un attributo del nodo cq:PageContent. Il mixin cq:OwnerTaggable non è richiesto dal framework di assegnazione tag.

NOTA

Si consiglia di abilitare solo i tag sul nodo di primo livello di un elemento di contenuto aggregato (o sul nodo jcr:content). Alcuni esempi:

  • Pagine (cq:Page) in cui il nodo jcr:contentè di tipo cq:PageContent, che include il mixin cq:Taggable.
  • Risorse (cq:Asset) in cui il nodo jcr:content/metadata ha sempre il mixin cq:Taggable.

Notazione del tipo di nodo (CND)

Le definizioni dei tipi di nodo esistono nell'archivio come file CND. La notazione CND è definita come parte della documentazione JCR..

Le definizioni essenziali per i tipi di nodo inclusi in AEM sono le seguenti:

[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:tags, proprietà

La proprietà cq:tags è un array String utilizzato per memorizzare uno o più TagIDs quando vengono applicati al contenuto da autori o visitatori del sito. La proprietà ha significato solo se aggiunta a un nodo definito con il mixin cq:Taggable.

NOTA

Per sfruttare AEM funzionalità di tag, le applicazioni sviluppate personalizzate non devono definire proprietà di tag diverse da cq:tags.

Spostamento e unione dei tag

Di seguito è riportata una descrizione degli effetti presenti nell’archivio quando si spostano o si uniscono tag mediante la console Tagging.

Quando il tag A viene spostato o unito nel tag B in /content/cq:tags:

  • Il tag A non viene eliminato e riceve una proprietà cq:movedTo.

    • cq:movedTo punta al tag B.

    • Questa proprietà indica che il tag A è stato spostato o unito nel tag B.

    • Se si sposta il tag B, questa proprietà verrà aggiornata di conseguenza.

    • Il tag A è quindi nascosto e viene conservato solo nell’archivio per risolvere gli ID tag nei nodi di contenuto che puntano al tag A.

    • Il raccoglitore di tag per elementi indesiderati rimuove i tag come tag A, a cui nessun altro nodo di contenuto punta.

    • Un valore speciale per la proprietà cq:movedTo è nirvana, che viene applicato quando il tag viene eliminato ma non può essere rimosso dall'archivio perché sono presenti tag secondari con un elemento cq:movedTo da mantenere.

      NOTA

      La proprietà cq:movedTo viene aggiunta al tag spostato o unito solo se è soddisfatta una delle seguenti condizioni:

      1. Il tag viene usato nel contenuto (ovvero ha un riferimento). OPPURE
      2. Nel tag sono presenti elementi figlio che sono già stati spostati.
  • Il tag B viene creato (in caso di spostamento) e riceve una proprietà cq:backlinks.

    • cq:backlinks mantiene i riferimenti nella direzione opposta, ossia tiene un elenco di tutti i tag spostati o uniti al tag B.

    • Questo è richiesto per lo più per mantenere le proprietà cq:movedTo aggiornate quando il tag B viene spostato/unito/eliminato o quando il tag B è attivato, nel qual caso tutti i tag backlink devono essere attivati.

      NOTA

      La proprietà cq:backlinks viene aggiunta al tag spostato o unito solo se è soddisfatta una delle seguenti condizioni:

      1. Il tag viene usato nel contenuto (ovvero ha un riferimento). OPPURE
      2. Nel tag sono presenti elementi figlio che sono già stati spostati.

La lettura di una proprietà cq:tags di un nodo di contenuto comporta la risoluzione seguente:

  1. Se non è presente alcuna corrispondenza in /content/cq:tags, non viene restituito alcun tag.
  2. Se il tag ha una proprietà cq:movedTo impostata, viene seguito l'ID del tag di riferimento.
    • Questo passaggio viene ripetuto purché il tag seguito abbia una proprietà cq:movedTo.
  3. Se il tag seguito non ha una proprietà cq:movedTo, il tag viene letto.

Per pubblicare la modifica quando un tag è stato spostato o unito, è necessario replicare il nodo cq:Tag e tutti i relativi backlink. Questa operazione viene eseguita automaticamente quando il tag viene attivato nella console di amministrazione dei tag.

Gli aggiornamenti successivi alla proprietà cq:tags della pagina puliscono automaticamente i riferimenti precedenti. Questo viene attivato perché la risoluzione di un tag spostato attraverso l'API restituisce il tag di destinazione, fornendo così l'ID del tag di destinazione.

In questa pagina

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now