Show Menu
화제×

AEM 애플리케이션에 태그 지정 작성

이 페이지에서는 사용자 지정 AEM 애플리케이션 내에서 태그를 사용하여 프로그래밍 방식으로 작업하거나 태그를 확장하기 위해
그리고
태그 지정에 대한 관련 정보는 다음을 참조하십시오.
  • 태그 관리를 참조하십시오.
  • 태그 사용을 참조하십시오.

Tagging API 개요

AEM에서 태그 프레임워크를 구현하면 JCR API를 사용하여 태그 및 태그 컨텐츠를 관리할 수 있습니다. TagManager는 문자열 배열 속성에 값으로 입력한 태그가 중복되지 않도록 하고, 비기존 태그를 가리키는 TagID를 제거하고, 이동되거나 병합된 태그에 대해 TagID를 업데이트합니다. cq:tags TagManager는 잘못된 변경 사항을 되돌리는 JCR 관측 수신기를 사용합니다. 기본 클래스는 com.day.cq.ta logging 패키지에 있습니다.
  • JcrTagManagerFactory - a의 JCR 기반 구현을 반환합니다 TagManager . Tagging API의 참조 구현입니다.
  • TagManager - 경로 및 이름별로 태그를 확인하고 만들 수 있습니다.
  • Tag - 태그 개체를 정의합니다.

JCR 기반 TagManager 가져오기

TagManager 인스턴스를 검색하려면 JCR이 있어야 하며 Session 다음 URL을 호출해야 합니다 getTagManager(Session) .
@Reference
JcrTagManagerFactory jcrTagManagerFactory;

TagManager tagManager = jcrTagManagerFactory.getTagManager(session);

일반적인 Sling 컨텍스트에서는 다음과 같은 경우에 TagManager 적용할 수도 있습니다 ResourceResolver .
TagManager tagManager = resourceResolver.adaptTo(TagManager.class);

태그 개체 검색

A는 기존 태그를 Tag TagManager 확인하거나 새 태그를 만들어
Tag tag = tagManager.resolve("my/tag"); // for existing tags

Tag tag = tagManager.createTag("my/tag"); // for new tags

JCR 기반 구현의 경우, JCR Tags 에 매핑되는 Nodes 경우, 리소스(예: adaptTo /content/cq:tags/default/my/tag 다음)가 있는 경우 Sling의 메커니즘을 직접 사용할 수 있습니다.
Tag tag = resource.adaptTo(Tag.class);

태그는 *a 리소스(노드가 아님)에서 *로 변환될 수 있지만, 태그는 *노드 및 리소스 모두로 변환할 수 있습니다.
Node node = tag.adaptTo(Node.class);
Resource node = tag.adaptTo(Resource.class);

Sling 메서드 Node 를 구현하지 않기 때문에 Tag 에 직접 Node 적용할 수 Adaptable.adaptTo(Class) 없습니다.

태그 가져오기 및 설정

// 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);

사용할 수 RangeIterator 있는 항목:
com.day.cq.commons.RangeIterator

태그 삭제

tagManager.deleteTag(tag);

태그 복제

태그는 다음과 같은 유형이므로 태그와 함께 복제 서비스( Replicator )를 사용할 수 nt:hierarchyNode 있습니다.
replicator.replicate(session, replicationActionType, tagPath);

클라이언트 측의 태그 지정

CQ.tagging.TagInputField 는 태그 입력을 위한 양식 위젯입니다. 기존 태그에서 선택할 수 있는 팝업 메뉴, 자동 완성 및 기타 많은 기능이 포함되어 있습니다. 그것의 유형은 입니다 tags .

태그 가비지 수집기

태그 가비지 수집기는 숨겨지고 사용하지 않는 태그를 정리하는 백그라운드 서비스입니다. 숨겨진 태그와 사용하지 않는 태그는 속성이 /content/cq:tags 있고 컨텐트 노드에서 사용되지 않는 cq:movedTo 아래 태그이며 카운트가 0입니다. 이 게으른 삭제 프로세스를 사용하면 컨텐츠 노드(즉, cq:tags 속성)를 이동이나 병합 작업의 일부로 업데이트할 필요가 없습니다. 속성 cq:tags 의 참조는 페이지 속성 대화 상자를 통해 속성 cq:tags 이 업데이트되면 자동으로 업데이트됩니다.
태그 가비지 수집기는 기본적으로 하루에 한 번 실행됩니다. 다음 위치에서 구성할 수 있습니다.
http://localhost:4502/system/console/configMgr/com.day.cq.tagging.impl.TagGarbageCollector

태그 검색 및 태그 목록

태그 및 태그 목록 검색은 다음과 같이 작동합니다.
  • TagID를 검색하면 속성이 TagID로 cq:movedTo 설정되고 TagID를 통해 이어지는 태그를 cq:movedTo 검색합니다.
  • 태그 제목 검색은 속성이 없는 태그만 cq:movedTo 검색합니다.

Tags in Different Languages

태그 관리 설명서의 다른 언어로 태그 관리 섹션에서 태그를 다른 언어로 정의할 title 수 있습니다. 그런 다음 언어 구분 속성이 태그 노드에 추가됩니다. 이 속성은 프랑스어 번역용 형식 jcr:title.<locale> 과 같은 jcr:title.fr 형식을 갖습니다. <locale> 은(는) 소문자 ISO 로케일 문자이고 "-" 대신 "_"를 사용해야 합니다. 예: de_ch .
Animals ​태그가 Products 페이지에 추가되면 값 stockphotography:animals 이 /content/geometrixx/en/products/jcr:content 노드 cq:tags 의 속성에 추가됩니다. 변환은 태그 노드에서 참조됩니다.
서버측 API는 지역화된 title 관련 방법을 제공합니다.
    • getLocalizedTitle(로케일)
    • getLocalizedTitlePaths()
    • getLocalizedTitles()
    • getTitle(로케일)
    • getTitlePath(로케일)
    • canCreateTagByTitle(문자열 tagTitlePath, 로케일)
    • createTagByTitle(문자열 tagTitlePath, 로케일)
    • resolveByTitle(문자열 tagTitlePath, 로케일)
AEM에서는 페이지 언어 또는 사용자 언어로 언어를 얻을 수 있습니다.
  • JSP에서 페이지 언어를 검색하려면 다음을 수행하십시오.
    • currentPage.getLanguage(false)
  • JSP에서 사용자 언어를 불러오는 방법은 다음과 같습니다.
    • slingRequest.getLocale()
currentPage slingRequest <cq:definedObjects> 태그를 통해 JSP에서 사용할 수 있습니다.
태깅의 경우, 현지화는 페이지 언어, 사용자 언어 또는 다른 언어로 태그를 표시할 titles 수 있으므로 컨텍스트에 따라 달라집니다.

태그 편집 대화 상자에 새 언어 추가

다음 절차에서는 새 언어(핀란드어)를 태그 편집 대화 상자에 추가하는 방법에 대해 설명합니다.
  1. CRXDE ​에서 노드의 다중 값 속성 languages 을 편집합니다 /content/cq:tags .
  2. 핀란드어 로케일을 나타내는 fi_fi - 을 추가하고 변경 사항을 저장합니다.
이제 태그 지정 콘솔에서 태그를 편집할 때 페이지 속성의 태그 대화 상자와 태그 편집 대화 상자에서 새 언어(핀란드어)를 사용할 수 있습니다 .
새 언어는 AEM에서 인식되는 언어 중 하나여야 합니다. 즉, 아래 노드로 사용할 수 있어야 합니다 /libs/wcm/core/resources/languages .