웹 사이트 콘솔 사용자 지정(클래식 UI) customizing-the-websites-console-classic-ui
웹 사이트(siteadmin) 콘솔에 사용자 지정 열 추가 adding-a-custom-column-to-the-websites-siteadmin-console
웹 사이트 관리 콘솔을 확장하여 사용자 정의 열을 표시할 수 있습니다. 이 콘솔은 를 구현하는 OSGI 서비스를 만들어 확장할 수 있는 JSON 개체를 기반으로 구축됩니다 ListInfoProvider
인터페이스. 이러한 서비스는 콘솔을 만들기 위해 클라이언트에 전송되는 JSON 개체를 수정합니다.
이 단계별 자습서에서는 다음을 구현하여 웹 사이트 관리 콘솔에서 새 열을 표시하는 방법을 설명합니다 ListInfoProvider
인터페이스. 이 템플릿은 다음 단계로 구성됩니다.
- OSGI 서비스 만들기 및 이 번들을 포함하는 번들을 AEM 서버에 배포합니다.
- (선택 사항) 새 서비스 테스트 콘솔 빌드에 사용되는 JSON 개체를 요청하기 위해 JSON 호출을 실행하여
- 새 열 표시 저장소에서 콘솔의 노드 구조를 확장하여 다음을 수행합니다.
- 디지털 자산 콘솔
- 커뮤니티 콘솔
OSGI 서비스 만들기 creating-the-osgi-service
다음 ListInfoProvider
인터페이스는 다음 두 가지 방법을 정의합니다.
updateListGlobalInfo
, 목록의 전역 속성을 업데이트하려면,updateListItemInfo
를 눌러 단일 목록 항목을 업데이트합니다.
두 메서드의 인수는 다음과 같습니다.
request
, 연결된 Sling HTTP 요청 개체,info
, 업데이트할 JSON 개체(전역 목록 또는 현재 목록 항목)resource
: Sling 리소스입니다.
아래 샘플 구현:
-
추가 주형 각 항목에 대한 속성인
true
페이지 이름이 e, 및false
그렇지 않은 경우 -
추가 stasedCount 속성. 목록에 대해 전역적이며, 별개 목록 항목의 수를 포함합니다.
OSGI 서비스를 만들려면:
- CRXDE Lite에서, 번들 만들기.
- 아래에 샘플 코드를 추가합니다.
- 번들을 빌드합니다.
새 서비스가 작동 중입니다.
package com.test;
import com.day.cq.commons.ListInfoProvider;
import com.day.cq.i18n.I18n;
import com.day.cq.wcm.api.Page;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
@Component(metatype = false)
@Service(value = ListInfoProvider.class)
public class StarredListInfoProvider implements ListInfoProvider {
private int count = 0;
public void updateListGlobalInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException {
info.put("starredCount", count);
count = 0; // reset for next execution
}
public void updateListItemInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException {
Page page = resource.adaptTo(Page.class);
if (page != null) {
// Consider starred if page name starts with 'e'
boolean starred = page.getName().startsWith("e");
if (starred) {
count++;
}
I18n i18n = new I18n(request);
info.put("starred", starred ? i18n.get("Yes") : i18n.get("No"));
}
}
}
- 구현은 제공된 요청 및/또는 리소스를 기반으로 정보를 JSON 개체에 추가해야 하는지 여부를 결정해야 합니다.
- 만약
ListInfoProvider
구현은 응답 개체에 이미 존재하는 속성을 정의하며, 해당 값은 사용자가 제공하는 속성으로 덮어쓰여집니다.
다음을 사용할 수 있습니다 서비스 등급 다중ListInfoProvider
구현 을 참조하십시오.
새 서비스 테스트 testing-the-new-service
웹 사이트 관리 콘솔을 열고 사이트를 탐색할 때 브라우저가 ajax 호출을 실행하여 콘솔을 빌드하는 데 사용되는 JSON 개체를 가져옵니다. 예를 들어 /content/geometrixx
폴더를 만들 때 AEM 서버로 다음 요청이 전송됩니다.
http://localhost:4502/content/geometrixx.pages.json?start=0&limit=30&predicate=siteadmin
포함된 번들을 배포한 후 새 서비스가 실행 중인지 확인하려면 다음을 수행하십시오.
-
브라우저를 다음 URL로 가리킵니다.
http://localhost:4502/content/geometrixx.pages.json?start=0&limit=30&predicate=siteadmin
-
응답에는 다음과 같이 새 속성이 표시됩니다.
새 열 표시 displaying-the-new-column
마지막 단계는 웹 사이트 관리 콘솔의 노드 구조를 조정하여 모든 Geometrixx 페이지에 대한 새 속성을 오버레이하여 표시하는 것입니다 /libs/wcm/core/content/siteadmin
. 다음과 같이 진행합니다.
-
CRXDE Lite에서 노드 구조를 만듭니다
/apps/wcm/core/content
유형 노드 사용sling:Folder
구조를 반영하다/libs/wcm/core/content
. -
노드 복사
/libs/wcm/core/content/siteadmin
아래에 붙여 넣습니다./apps/wcm/core/content
. -
노드 복사
/apps/wcm/core/content/siteadmin/grid/assets
to/apps/wcm/core/content/siteadmin/grid/geometrixx
및 가 속성을 변경합니다.-
제거 pageText
-
설정 pathRegex to
/content/geometrixx(/.*)?
이렇게 하면 모든 geometrixx 웹 사이트에 대해 그리드 구성이 활성화됩니다.
-
설정 storeProxySuffix to
.pages.json
-
편집 storeReaderFields 다중값 속성 및 추가
starred
값. -
MSM 기능을 활성화하려면 다음 MSM 매개 변수를 다중 문자열 속성에 추가합니다 storeReaderFields:
- msm:isSource
- msm:isInBlueprint
- msm:isLiveCopy
-
-
추가
starred
노드(유형) nt:구조화되지 않음) 아래의 )/apps/wcm/core/content/siteadmin/grid/geometrixx/columns
다음 속성을 사용합니다.- dataIndex:
starred
문자열 유형 - 헤더:
Starred
문자열 유형 - xtype:
gridcolumn
문자열 유형
- dataIndex:
-
(선택 사항) 표시하지 않을 열을 놓습니다
/apps/wcm/core/content/siteadmin/grid/geometrixx/columns
-
/siteadmin
는 기본적으로 을 가리키는 별칭 경로입니다/libs/wcm/core/content/siteadmin
.siteadmin 버전으로 리디렉션하려면
/apps/wcm/core/content/siteadmin
속성 정의sling:vanityOrder
에 정의된 값보다 큰 값을 갖도록/libs/wcm/core/content/siteadmin
. 기본값은 300이므로 더 높은 값은 모두 적절합니다. -
웹 사이트 관리 콘솔로 이동하고 Geometrixx 사이트로 이동합니다.
-
새 열은 주역 를 사용할 수 있으며, 다음과 같이 사용자 지정 정보를 표시할 수 있습니다.
샘플 패키지 sample-package
이 자습서의 결과는 웹 사이트 관리 콘솔 사용자 지정 패키지 공유에 있는 패키지.