cq5 - livecopy - 如何判断页面是实时副本以及查找其父项的子项

use*_*656 5 aem

我们的设置有各种网站,其中一些是来自主站点的现场照片.我们正在尝试确定我们所在的网页是否为livecopy.如果是这样,试着让它的父母和父母的子女.这允许我们确定每个页面的兄弟姐妹,然后使用我们想要的方式.

这是否可以使用cq轻松实现?

Tom*_*wek 7

检查页面是否为实时副本

您可以使用LiveRelationshipManager,从资源解析器适应:

resourceResolver.adaptTo(LiveRelationshipManager.class)
Run Code Online (Sandbox Code Playgroud)

如果传递的资源是其他东西的实时副本,它有hasLiveRelationship返回的方法true.您可以调用此方法传递当前组件资源.

父母和兄弟姐妹

用法PageManagerPage方法:

// resource - current component resource
ResourceResolver resolver = resource.getResourceResolver();
PageManager pageManager = resolver.adaptTo(PageManager.class);
Page currentPage = pageManager.getContainingPage(resource);
Page parentPage = currentPage.getParent();
Iterator<Page> siblings = parentPage.listChildren();
Run Code Online (Sandbox Code Playgroud)