Show Menu
TÓPICOS×

Estrutura de marcação do AEM

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

Tags: cq:Tipo de nó de tag

A declaração de uma tag é capturada no repositório em um nó do tipo cq:Tag.
Uma marca pode ser uma palavra simples (por exemplo, o céu) ou representar uma taxonomia hierárquica (por exemplo, fruta/maçã, ou seja, tanto o fruto genérico como a maçã mais específica).
As tags são identificadas por uma TagID exclusiva.
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 TagID, quando presente.
A estrutura de marcação também fornece a capacidade de restringir autores e visitantes do site a usar somente tags específicas e predefinidas.

Características da tag

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

TagID

Uma TagID identifica um caminho que é resolvido para um nó de tag no repositório.
Normalmente, a TagID é uma TagID abreviada que começa com o namespace ou pode ser uma TagID absoluta que começa no nó raiz da taxonomia.
Quando o conteúdo é marcado, se ainda não existir, a cq:tags propriedade é adicionada ao nó de conteúdo e a TagID é adicionada ao valor da matriz String da propriedade.
A TagID consiste em um namespace seguido pela TagID local. As tags do contêiner têm subtags que representam uma ordem hierárquica na taxonomia. As subtags podem ser usadas para referenciar tags como qualquer TagID local. Por exemplo, é permitida a marcação do conteúdo com "fruta", mesmo que se trate de uma marca de embalagem com sub-marcas, como "fruta/maçã" e "fruta/banana".

Nó raiz de taxonomia

O nó raiz de taxonomia é o caminho base para todas as tags no repositório. O nó raiz de taxonomia não deve ser do tipo cq :Tag .
No AEM, o caminho base é /content/ cq :tags e o nó raiz é do tipo cq :Folder .

Namespace da tag

Os namespaces permitem agrupar coisas. O caso de uso mais comum é ter um namespace por (web)site (por exemplo, público, interno e portal) ou por aplicativo maior (por exemplo, WCM, Ativos, Comunidades), mas os namespaces podem ser usados para várias outras necessidades. Os namespaces são usados na interface do usuário 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 do nó raiz de taxonomia. Um namespace é um nó do tipo cq:Tag cujo pai não é um tipo de cq:Tag 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 (Título Standard Tags), que é /content/cq:tags/default.

Tags do contêiner

Uma tag container é um nó do tipo cq:Tag que contém qualquer número e tipo de nós filhos, o que permite aprimorar o modelo de tag com metadados personalizados.
Além disso, as tags de contêiner (ou super tags) em uma taxonomia servem como subsoma de todas as subtags: por exemplo, considera-se que o conteúdo marcado com frutas/maçãs também é marcado com frutos, ou seja, procurar por conteúdo marcado apenas com frutos também encontraria o conteúdo marcado com frutas/maçã.

Resolvendo TagIDs

Se a ID da tag contiver dois pontos ":", os dois pontos separarão o namespace da tag ou subtaxonomia, que são separados 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 está abaixo das tags /content/cq:.
A tag que faz referência a caminhos ou caminhos não existentes que não apontam para um nó cq:Tag é considerada inválida e é ignorada.
A tabela a seguir mostra algumas TagIDs de amostra, seus elementos e como a TagID é resolvida para um caminho absoluto no repositório:
A tabela a seguir mostra algumas TagIDs de amostra, seus elementos e como a TagID é resolvida para um caminho absoluto no repositório:\
A tabela a seguir mostra algumas TagIDs de amostra, seus elementos e como a TagID é resolvida para um caminho absoluto no repositório:
TagID Namespace ID local Tags do contêiner Marca Folha Caminho absoluto da tag do repositório
represa:fruta/maçã/queimadura barragem fruta/maçã/queimadura fruta, maçã braquia /content/cq:tags/dam/frus/apple/braeburn
cor/vermelho default cor/vermelho cor red /content/cq:tags/default/color/red
céu default céu (nenhum) céu /content/cq:tags/default/sky
barragem: barragem (nenhum) (nenhum) (nenhum, o namespace) /content/cq:tags/dam
/content/cq:tags/category/car categoria carro carro carro /content/cq:tags/category/car

Localização do título da tag

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

Controle de acesso

As tags existem como nós no repositório no nó raiz de taxonomia. Permitir ou negar que autores e visitantes do site criem tags em um determinado namespace pode ser obtido ao configurar ACLs apropriadas no repositório.
Além disso, negar permissões de leitura para determinadas tags ou namespaces controlará a capacidade de aplicar tags a um conteúdo específico.
Uma prática típica inclui:
  • Permitindo o acesso de gravação de tag-administrators grupo/função a todos os namespaces (adicionar/modificar em /content/cq:tags ). Este grupo vem com o AEM pronto para usar.
  • Permitir que os usuários/autores leiam o acesso a todos os namespaces que devem ser legíveis para eles (na maioria das vezes, todos).
  • Permitir que usuários/autores gravem acesso aos namespaces nos quais as tags devem ser definidas livremente pelos usuários/autores (add_node em /content/cq:tags/some_namespace )

Conteúdo marcável: cq:Mistura marcável

Para que os desenvolvedores de aplicativos anexem a marcação a um tipo de conteúdo, o registro do nó ( CND ) deve incluir a cq:Taggable mistura ou a cq:OwnerTaggable mistura.
A cq:OwnerTaggable mistura, que herda de cq:Taggable , serve para indicar que o conteúdo pode ser classificado pelo proprietário/autor. No AEM, é apenas um atributo do cq:PageContent nó. A cq:OwnerTaggable mistura não é exigida pela estrutura de marcação.
É recomendável ativar somente tags no nó de nível superior de um item de conteúdo agregado (ou em seu nó jcr:content). Os exemplos incluem:
  • páginas ( cq:Page ) em que o jcr:content nó é do tipo cq:PageContent que inclui a cq:Taggable mistura.
  • ativos ( cq:Asset ) em que o jcr:content/metadata nó sempre tem a cq:Taggable combinação.

Nó de notação de tipo (CND)

As definições de Tipo de nó existem no repositório como arquivos CND. A notação CND é definida como parte da documentação JCR aqui .
As definições essenciais para os tipos de nó 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

Conteúdo marcado: cq:tags Property

A cq:tags propriedade é uma matriz String usada para armazenar uma ou mais TagIDs quando aplicadas ao conteúdo por autores ou visitantes do site. A propriedade só tem significado quando adicionada a um nó que é definido com a cq:Taggable mistura.
Para aproveitar a funcionalidade de marcação AEM, os aplicativos desenvolvidos personalizados não devem definir outras propriedades de tags além cq:tags .

Mover e mesclar tags

A seguir está uma descrição dos efeitos no repositório ao mover ou unir tags usando o console Administração de tags Marcação:
  • Quando uma tag A é movida ou unida na tag B em /content/cq:tags :
    • a tag A não é excluída e obtém uma cq:movedTo propriedade.
    • a tag B é criada (no caso de uma movimentação) e obtém uma cq:backlinks propriedade.
  • cq:movedTo aponta para a tag B.
    Essa propriedade significa que a tag A foi movida ou mesclada para a tag B. Mover a tag B atualizará essa propriedade de acordo. A tag A fica então oculta e é mantida somente no repositório para resolver IDs de tag em nós de conteúdo que apontam para a tag A. O coletor de lixo de tags remove tags como a tag A, uma vez que nenhum nó de conteúdo aponta para elas.
    Um valor especial para a cq:movedTo propriedade é nirvana : ela é aplicada quando a tag é excluída, mas não pode ser removida do repositório porque há subtags com uma tag cq:movedTo que deve ser mantida.
    A cq:movedTo propriedade só será adicionada à tag movida ou unida se uma dessas condições for atendida:
    1. A tag é usada no conteúdo (ou seja, tem uma referência) OU
    2. A tag tem filhos que já foram movidos.
  • cq:backlinks mantém as referências na outra direção, isto é, mantém uma lista de todas as tags que foram movidas para ou mescladas com a tag B. Isso é necessário principalmente para manter cq:movedTo as propriedades atualizadas quando a tag B também é movida/unida/excluída ou quando a tag B é ativada, nesse caso, todas as tags de backlinks também devem ser ativadas.
A cq:backlinks propriedade só será adicionada à tag movida ou unida se uma dessas condições for atendida:
  1. A tag é usada no conteúdo (ou seja, tem uma referência) OU
  2. A tag tem filhos que já foram movidos.
  • Ler uma cq:tags 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 será retornada.
    2. Se a tag tiver uma cq:movedTo propriedade definida, a ID da tag referenciada será seguida.
      Essa etapa é repetida desde que a tag seguida tenha uma cq:movedTo propriedade.
    3. Se a tag seguida não tiver uma cq:movedTo propriedade, ela será lida.
  • Para publicar a alteração quando uma tag tiver sido movida ou unida, o cq:Tag nó e todos os seus backlinks devem ser replicados: isso é feito automaticamente quando a tag é ativada no console de administração de tags.
  • Atualizações posteriores à propriedade da página cq:tags limpam automaticamente as referências "antigas". Isso é acionado porque a resolução de uma tag movida pela API retorna a tag de destino, fornecendo assim a ID da tag de destino.