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:
Este artigo se concentra na estrutura subjacente que oferece suporte à marcação no AEM e em como usá-lo como desenvolvedor.
Para marcar conteúdo e usar a infraestrutura de marcação AEM:
A tag deve existir como um nó do tipo [cq:Tag](#tags-cq-tag-node-type)
no nó raiz de taxonomia.
O do nó de conteúdo marcado NodeType
deve incluir o cq:Taggable
mixin.
A variável TagID
é adicionado ao do nó de conteúdo cq:tags
propriedade e é resolvido para um nó do tipo [cq:Tag](#tags-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, os genéricos fruit
e, mais especificamente, apple
).
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.
cq:Tag
njcr:title
(o título a ser exibido na interface do usuário) é opcional.jcr:description
é opcional.Como as tags são simplesmente nós JCR, os nomes dos nós devem obedecer à Convenção de nomenclatura JCR.
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 com o nó raiz de taxonomia.
Quando o conteúdo for marcado, se ainda não existir, a variável [cq:tags](#tagged-content-cq-tags-property)
é adicionada ao nó de conteúdo e a TagID é adicionada à propriedade String
valor da matriz.
A TagID consiste em um namespace seguido pela TagID local. 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 TagID local. Por exemplo, marcar conteúdo com fruit
é permitido, mesmo se for uma tag container com subtags, como fruit/apple
e fruit/banana
.
O nó raiz da taxonomia é o caminho base para todas as tags no repositório. O nó raiz da taxonomia não deve ser um nó do tipo cq:Tag
.
No AEM, o caminho base é /content/cq:tags
e o nó raiz é do tipo cq:Folder
.
Os namespaces permitem agrupar itens. O caso de uso mais típico é um namespace por 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 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
com o título Standard Tags
, ou seja, /content/cq:tags/default
.
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, tags container (ou supertags) em uma taxonomia servem como subsoma 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
.
Se a TagID contiver dois pontos (:
), os dois pontos separam o namespace da tag ou subtaxonomia, que é separada por barras (/
). Se TagID não tiver dois pontos, o namespace padrão será considerado.
O local padrão e único das tags é abaixo de /content/cq:tags
.
Marca que faz 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 de TagIDs, seus elementos e como a TagID é resolvida 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, o namespace | /content/cq:tags/dam |
/content/cq:tags/category/car |
category |
car |
car |
car |
/content/cq:tags/category/car |
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 os seguintes documentos:
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.
Além disso, negar 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:
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./content/cq:tags/some_namespace
)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.
É 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:
cq:Page
) em que o jcr:content
o nó é do tipo cq:PageContent
que inclui a cq:Taggable
mixincq:Asset
) em que o jcr:content/metadata
o nó sempre tem o cq:Taggable
mixinAs definições de tipo de nó existem no repositório como arquivos CND. A notação CND é definida como parte da documentação do JCR aqui.
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
A variável cq:tags
propriedade é um String
Matriz usada para armazenar uma ou mais TagIDs quando elas são aplicadas ao conteúdo por autores ou visitantes do site. A propriedade só tem significado quando adicionada a um nó definido com o [cq:Taggable](#taggable-content-cq-taggable-mixin)
mixin.
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
.
Veja a seguir uma descrição dos efeitos no repositório ao mover ou mesclar tags usando o console de marcação:
Quando uma tag A é movida ou mesclada na tag B em /content/cq:tags
:
cq:movedTo
propriedade.cq:backlinks
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 de acordo. A tag A fica 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 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
. Ele é 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.
A variável cq:movedTo
A propriedade só será adicionada à tag movida ou mesclada se qualquer uma dessas condições for atendida:
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. Isso é necessário 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.
A variável cq:backlinks
A propriedade só será adicionada à tag movida ou mesclada se qualquer uma dessas condições for atendida:
Ler um cq:tags
A propriedade de um nó de conteúdo envolve a seguinte resolução:
Se não houver correspondência em /content/cq:tags
, nenhuma tag é retornada.
Se a tag tiver uma cq:movedTo
for definida, a ID da tag referenciada será seguida.
cq:movedTo
propriedade.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. Isso é feito automaticamente quando a tag é ativada no console de administração de tags.
Atualizações posteriores no da página cq:tags
propriedade limpa automaticamente as referências antigas. Isso é acionado porque a resolução de uma tag movida pela API retorna a tag de destino, fornecendo a ID da tag de destino.
O movimento de tags é diferente da migração de tags.
A partir do Adobe Experience Manager 6.4, as tags são armazenadas no /content/cq:tags
Considerando que as versões anteriores armazenavam tags em /etc/tags
.
Sempre que atualizar um sistema AEM de uma versão anterior à 6.4, as tags devem ser migradas para /content/cq:tags
. Consulte Reestruturação do repositório comum no AEM 6.5 para obter mais informações.