A estrutura de marcação AEM aem-tagging-framework

A marcação permite que o conteúdo seja categorizado e organizado. As tags podem ser classificadas por um namespace e uma taxonomia. Para obter informações detalhadas sobre o uso de tags:

  • Consulte Uso de tags para obter informações sobre como marcar conteúdo como autor de conteúdo.
  • Consulte Administração de tags para obter a perspectiva de um administrador sobre a criação e o gerenciamento de tags e a quais tags de conteúdo foram aplicadas.

Este artigo se concentra na estrutura subjacente que oferece suporte à marcação no AEM e em como usá-lo como desenvolvedor.

Introdução introduction

Para marcar conteúdo e usar a infraestrutura de marcação AEM:

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

A declaração de uma tag é capturada no repositório em um nó do tipo cq:Tag.

  • Uma tag pode ser uma palavra simples (por exemplo, sky) ou representam uma taxonomia hierárquica (por exemplo, fruit/apple, ou seja, a fruta genérica e a maçã mais específica).
  • As tags são identificadas por um único TagID.
  • Uma tag tem informações meta opcionais, como um título, títulos localizados e uma descrição. O título deve ser exibido nas interfaces do usuário, em vez da tag TagID, quando presente.

A estrutura de marcação também restringe os autores e visitantes do site a usar somente tags específicas e predefinidas.

Características da tag tag-characteristics

  • O tipo de nó é cq:Tag.
  • O nome do nó é um componente do TagID.
  • A variável TagID sempre inclui um namespace.
  • A variável jcr:title (o Título a ser exibido na interface do usuário) é opcional.
  • A variável jcr:description é opcional.
  • Ao conter nós filhos, é chamado de tag container.
  • A tag é armazenada no repositório abaixo de um caminho base chamado de nó raiz de taxonomia.

TagID tagid

A TagID identifica um caminho que é resolvido para um nó de tag no repositório.

Normalmente, a variável TagID é uma abreviação TagID começando com o namespace ou pode ser um valor absoluto TagID a partir do nó raiz de taxonomia.

Quando o conteúdo for marcado, se ainda não existir, a variável cq:tags é adicionada ao nó de conteúdo e à variável TagID é adicionado à propriedade do String valor da matriz.

A variável TagID consiste em um namespace seguido pelo local TagID. Tags de contêiner ter subtags que representam uma ordem hierárquica na taxonomia. Subtags podem ser usadas para fazer referência a tags como qualquer local TagID. Por exemplo, marcar conteúdo com fruit é permitido, mesmo se for uma tag container com subtags, como fruit/apple e fruit/banana.

Nó raiz da taxonomia taxonomy-root-node

O nó raiz da taxonomia é o caminho base para todas as tags no repositório. O nó raiz da taxonomia deve não ser um nó do tipo cq:Tag.

No AEM, o caminho base é /content/cq:tags e o nó raiz é do tipo cq:Folder.

Namespace da tag tag-namespace

Os namespaces permitem agrupar itens. O caso de uso mais comum é ter um namespace por site (por exemplo, público versus interno) ou por aplicativo maior (por exemplo, Sites ou Assets), mas os namespaces podem ser usados para várias outras necessidades. Os namespaces são usados na interface para mostrar apenas o subconjunto de tags (ou seja, tags de um determinado namespace) que é aplicável ao conteúdo atual.

O namespace da tag é o primeiro nível na subárvore de taxonomia, que é o nó imediatamente abaixo de nó raiz de taxonomia. Um namespace é um nó do tipo cq:Tag cujo pai não é um cq:Tag tipo de nó.

Todas as tags têm um namespace. Se nenhum namespace for especificado, a tag será atribuída ao namespace padrão, que é TagID default, ou seja, /content/cq:tags/default. O padrão do Título é Standard Tagsnesses casos.

Tags de contêiner container-tags

Uma tag container é um nó do tipo cq:Tag que contém qualquer número e tipo de nós secundários, o que permite aprimorar o modelo de tag com metadados personalizados.

Além disso, as tags container (ou supertags) em uma taxonomia servem como a soma de todas as subtags. Por exemplo, conteúdo marcado com fruit/apple é considerado marcado com fruit, também. Ou seja, pesquisar conteúdo marcado com fruit também localizaria o conteúdo marcado com fruit/apple.

Resolvendo TagIDs resolving-tagids

Se a ID da tag contiver dois pontos (:), os dois pontos separam o namespace da tag ou subtaxonomia, que são então separadas por barras normais (/). Se a ID da tag não tiver dois pontos, o namespace padrão será implícito.

O local padrão e único das tags é abaixo de /content/cq:tags.

Tags que fazem referência a caminhos ou caminhos não existentes que não apontam para um cq:Tag são considerados inválidos e são ignorados.

A tabela a seguir mostra algumas amostras TagIDs, seus elementos e como o TagID resolve para um caminho absoluto no repositório:

TagID
Namespace
ID local
Tags de contêiner
Tag de folha
Caminho absoluto da tag do repositório
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
(nenhum)
sky
/content/cq:tags/default/sky
dam:
dam
(nenhum)
(nenhum)
(nenhum)
/content/cq:tags/dam
content/cq:tags/category/car
category
car
car
car
content/cq:tags/category/car

Localização do título da tag localization-of-tag-title

Quando a tag inclui a string de título opcional jcr:title, é possível localizar o título para exibição adicionando a propriedade jcr:title.<locale>.

Para obter mais detalhes, consulte o seguinte:

  • Tags em diferentes idiomas descrever o uso das APIs como desenvolvedor
  • Gerenciamento de tags em diferentes idiomas, que descrevem o uso do console de marcação como administrador

Controle de acesso access-control

As tags existem como nós no repositório, na variável nó raiz de taxonomia. Permitir ou negar que autores e visitantes do site criem tags em um determinado namespace pode ser obtido definindo ACLs apropriadas no repositório.

A negação de permissões de leitura para determinadas tags ou namespaces controla a capacidade de aplicar tags a um conteúdo específico.

Uma prática típica inclui:

  • Permitindo que o tag-administrators acesso de gravação de grupo/função a todos os namespaces (adicionar/modificar em /content/cq:tags). Esse grupo vem com AEM pronto para uso.
  • Permitir que usuários/autores leiam todos os namespaces que devem ser legíveis para eles (principalmente todos).
  • Permitir que usuários/autores gravem acesso aos namespaces em que as tags devem ser definidas livremente por usuários/autores (add_node em /content/cq:tags/some_namespace)

Conteúdo Marcável : cq:Taggable Mixin taggable-content-cq-taggable-mixin

Para que os desenvolvedores de aplicativos anexem a marcação a um tipo de conteúdo, o registro do nó (CND) devem incluir a cq:Taggable mixin ou o cq:OwnerTaggable mixin.

A variável cq:OwnerTaggable mixin, que herda de cq:Taggable, destina-se a indicar que o conteúdo pode ser classificado pelo proprietário/autor. No AEM, é apenas um atributo do cq:PageContent nó. A variável cq:OwnerTaggable O mixin não é exigido pela estrutura de marcação.

NOTE
É recomendável ativar tags somente no nó de nível superior de um item de conteúdo agregado (ou em sua jcr:content nó). Os exemplos incluem:
  • Páginas (cq:Page) em que o jcr:contento nó é do tipo cq:PageContent, que inclui a cq:Taggable mixin.
  • Ativos (cq:Asset) em que o jcr:content/metadata o nó sempre tem o cq:Taggable mixin.

Notação de tipo de nó (CND) node-type-notation-cnd

As definições de Tipo de nó existem no repositório como arquivos CND. A notação CND é definida como parte da variável Documentação JCR.

As definições essenciais para os Tipos de nós incluídos no AEM são as seguintes:

[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

Propriedade cq:tags cq-tags-property

A variável cq:tags propriedade é um String matriz usada para armazenar um ou mais TagIDs quando são aplicados ao conteúdo por autores ou visitantes do site. A propriedade só tem significado quando adicionada a um nó definido com o cq:Taggable mixin.

NOTE
Para usar a funcionalidade de marcação AEM, os aplicativos desenvolvidos de forma personalizada não devem definir propriedades de tag diferentes de cq:tags.

Mover e mesclar tags moving-and-merging-tags

Veja a seguir uma descrição dos efeitos no repositório ao mover ou mesclar tags usando o console Marcação.

Quando a tag A é movida ou mesclada na tag B em /content/cq:tags:

  • A tag A não é excluída e recebe um cq:movedTo propriedade.

    • cq:movedTo aponta para a tag B.

    • Essa propriedade significa que a tag A foi movida ou mesclada na tag B.

    • Mover a tag B atualiza essa propriedade adequadamente.

    • A tag A fica oculta e só é mantida no repositório para que possa resolver IDs de tag em nós de conteúdo que apontem para a tag A.

    • O coletor de lixo da tag remove tags como a tag A assim que os nós de conteúdo não apontam mais para elas.

    • Um valor especial para o cq:movedTo propriedade é nirvana, que é aplicado quando a tag é excluída, mas não pode ser removida do repositório porque há subtags com uma cq:movedTo que deve ser mantido.

      note note
      NOTE
      A variável cq:movedTo A propriedade só será adicionada à tag movida ou mesclada se qualquer uma dessas condições for atendida:
      1. A tag é usada no conteúdo (o que significa que tem uma referência). OU
      2. A tag tem filhos que já foram movidos.

      * A tag B é criada (se houver uma movimentação) e recebe um `cq:backlinks` propriedade.

    • cq:backlinks mantém as referências na outra direção. Ou seja, ela mantém uma lista de todas as tags que foram movidas ou mescladas com a tag B.

    • Essa funcionalidade é necessária principalmente para manter cq:movedTo propriedades atualizadas quando a tag B é movida/mesclada/excluída ou quando a tag B é ativada, nesse caso, todas as tags de backlinks também devem ser ativadas.

      note note
      NOTE
      A variável cq:backlinks A propriedade só será adicionada à tag movida ou mesclada se qualquer uma dessas condições for atendida:
      1. A tag for usada no conteúdo (o que significa que tem uma referência) ou
      2. A tag tem filhos que já foram movidos.

Ler um cq:tags A propriedade de um nó de conteúdo envolve a seguinte resolução:

  1. Se não houver correspondência em /content/cq:tags, nenhuma tag é retornada.
  2. Se a tag tiver uma cq:movedTo for definida, a ID da tag referenciada será seguida.
    • Esta etapa é repetida desde que a tag seguida tenha uma cq:movedTo propriedade.
  3. Se a tag seguida não tiver um cq:movedTo propriedade, a tag será lida.

Para publicar a alteração quando uma tag tiver sido movida ou mesclada, a variável cq:Tag e todos os seus backlinks devem ser replicados. Essa replicação é feita automaticamente quando a tag é ativada no console de administração de tags.

Atualizações posteriores no da página cq:tags propriedade automaticamente limpa as referências antigas. A limpeza é acionada porque a resolução de uma tag movida pela API retorna a tag de destino, fornecendo a ID da tag de destino.

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