AEM Para trabajar mediante programación con etiquetas o ampliar etiquetas dentro de una aplicación personalizada, esta página describe el uso de la variable
Que interactúa con el
Para obtener información relacionada con el etiquetado, consulte:
La implementación de la marco de etiquetado AEM en permite la administración de etiquetas y contenido de etiquetas mediante la API de JCR. TagManager garantiza que las etiquetas introducidas como valores en la cq:tags
Las propiedades de matriz de cadenas no están duplicadas, elimina los TagID que apuntan a etiquetas no existentes y actualiza los TagID para etiquetas movidas o combinadas. TagManager utiliza un detector de observación JCR que revierte cualquier cambio incorrecto. Las clases principales se encuentran en la com.day.cq.tagging paquete:
TagManager
. Es la implementación de referencia de la API de etiquetado.TagManager
: permite resolver y crear etiquetas por rutas y nombres.Tag
: define el objeto de etiqueta.Para recuperar una instancia de TagManager, debe tener un JCR Session
y para llamar a getTagManager(Session)
:
@Reference
JcrTagManagerFactory jcrTagManagerFactory;
TagManager tagManager = jcrTagManagerFactory.getTagManager(session);
En el contexto típico de Sling, también puede adaptarse a un TagManager
desde el ResourceResolver
:
TagManager tagManager = resourceResolver.adaptTo(TagManager.class);
A Tag
se puede recuperar mediante la variable TagManager
, ya sea resolviendo una etiqueta existente o creando una:
Tag tag = tagManager.resolve("my/tag"); // for existing tags
Tag tag = tagManager.createTag("my/tag"); // for new tags
Para la implementación basada en JCR, que asigna Tags
en JCR Nodes
, puede utilizar directamente el de Sling adaptTo
mecanismo si tiene el recurso (por ejemplo, como /content/cq:tags/default/my/tag
):
Tag tag = resource.adaptTo(Tag.class);
Aunque una etiqueta solo se puede convertir *de *un recurso (no un nodo), una etiqueta se puede convertir *a *un nodo y un recurso :
Node node = tag.adaptTo(Node.class);
Resource node = tag.adaptTo(Resource.class);
Adaptación directa desde Node
hasta Tag
no es posible, ya que Node
no implementa el Sling Adaptable.adaptTo(Class)
método.
// Getting the tags of a Resource:
Tag[] tags = tagManager.getTags(resource);
// Setting tags to a Resource:
tagManager.setTags(resource, 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);
El válido RangeIterator
para usar es:
com.day.cq.commons.RangeIterator
tagManager.deleteTag(tag);
Es posible utilizar el servicio de replicación ( Replicator
) con etiquetas porque son del tipo nt:hierarchyNode
:
replicator.replicate(session, replicationActionType, tagPath);
El widget del formulario CQ.tagging.TagInputField
es para introducir etiquetas. Tiene un menú emergente para seleccionar entre las etiquetas existentes, incluye finalización automática y muchas otras funciones. Su xtype es tags
.
El recolector de etiquetas es un servicio en segundo plano que limpia las etiquetas ocultas y no utilizadas. Las etiquetas ocultas y no utilizadas son las siguientes /content/cq:tags
que tienen un cq:movedTo
y no se utilizan en un nodo de contenido; tienen un recuento de cero. Al utilizar este proceso de eliminación diferida, el nodo de contenido (es decir, el cq:tags
) no tiene que actualizarse como parte de la operación de movimiento o combinación. Las referencias en la variable cq:tags
Las propiedades de se actualizan automáticamente cuando cq:tags
La propiedad de se actualiza, por ejemplo, a través del cuadro de diálogo Propiedades de página.
El recolector de elementos no utilizados se ejecuta de forma predeterminada una vez al día. Puede configurarlo en:
http://localhost:4502/system/console/configMgr/com.day.cq.tagging.impl.TagGarbageCollector
La búsqueda de etiquetas y la lista de etiquetas funcionan de la siguiente manera:
La búsqueda de TagID busca las etiquetas que tienen la propiedad cq:movedTo
se establece en TagID y sigue el cq:movedTo
ID de etiqueta.
La búsqueda de Título de etiqueta solo busca las etiquetas que no tienen un cq:movedTo
propiedad.
Como se describe en la documentación para la administración de etiquetas, en la sección Administración de etiquetas en diferentes idiomas, una etiqueta title
puede definirse en diferentes idiomas. A continuación, se agrega una propiedad sensible al idioma al nodo de etiquetas. Esta propiedad tiene el formato jcr:title.<locale>
, por ejemplo, jcr:title.fr
para la traducción al francés. El <locale>
debe ser una cadena de configuración regional ISO en minúsculas y utilizar "_" en lugar de "-", por ejemplo: de_ch
.
Si la variable Animales se agrega a la etiqueta Productos página, el valor stockphotography:animals
se añade a la propiedad cq:tags
del nodo /content/geometrixx/en/products/jcr:content. Se hace referencia a la traducción desde el nodo de etiqueta.
La API del lado del servidor se ha localizado title
Métodos relacionados con:
AEM En la práctica, el idioma se puede obtener en el idioma de la página o en el idioma del usuario:
para recuperar el idioma de la página en un JSP:
currentPage.getLanguage(false)
para recuperar el idioma del usuario en un JSP:
slingRequest.getLocale()
El currentPage
y slingRequest
están disponibles en un JSP a través del <cq:definedobjects> etiqueta.
Para el etiquetado, la localización depende del contexto como etiqueta titles
puede mostrarse en el idioma de la página, en el idioma del usuario o en cualquier otro idioma.
El siguiente procedimiento describe cómo agregar un idioma (finés) al Edición de etiquetas diálogo:
Entrada CRXDE, edite la propiedad de varios valores languages
del nodo /content/cq:tags
.
Añadir fi_fi
- que representa la configuración regional finlandesa - y guarde los cambios.
El nuevo idioma (finés) ya está disponible en el cuadro de diálogo de etiquetas de las propiedades de página y en el Editar etiqueta diálogo al editar una etiqueta en la Etiquetado consola.
AEM El nuevo idioma debe ser uno de los idiomas reconocidos por la comunidad de idiomas de los que se dispone en la. Es decir, debe estar disponible como nodo debajo de /libs/wcm/core/resources/languages
.
La instalación de un Service Pack restablece la propiedad de idiomas del nodo /content/cq:tags de forma predeterminada. Por lo tanto, es necesario agregarlo desde las propiedades antes de la instalación.