我有一个页面(A
),它是另一个页面(B
)的LiveCopy,它是另一个蓝图页面(C
)的LiveCopy。某些页面具有从LiveCopy到蓝图页面的更长层次结构。
那么如何以编程方式找到某些LiveCopy页面的Blueprint页面呢?我找到了solution如何检查页面是否为LiveCopy。但是如何找到她的蓝图页?
提前致谢
答案 0 :(得分:2)
您将再次使用Tomek在该答案中链接的LiveRelationshipManager。
首先致电getLiveRelationship
&然后询问返回的LiveRelationship来源:
Resource pageA; //LiveCopy of Page B;
LiveRelationshipManager liveRelationshipManager = resourceResolver.adaptTo(LiveRelationshipManager.class);
PageManager pageManager = resourceResolver.adaptTo(PageManager.class);
LiveRelationship liveRelationship = liveRelationshipManager.getLiveRelationship(pageA, false);
String pageBPath = liveRelationship.getSourcePath();
Page pageB = pageManager.getPage(pageBPath);
上面的false
方法上的getLiveRelationship
指的是“高级状态” - 根据JavaDocs的说法,没有参考它是'耗时'计算。