【发布时间】:2014-09-04 10:11:50
【问题描述】:
我有一个页面 (A),它是另一个页面 (B) 的 LiveCopy,它是另一个蓝图页面 (C) 的 LiveCopy。有些页面从 LiveCopy 到蓝图页面的层次结构较长。
那么我如何以编程方式找到某些 LiveCopy 页面的蓝图页面?我找到了solution 如何检查页面是否为 LiveCopy。但是如何找到她的蓝图页面呢?
提前致谢
【问题讨论】:
我有一个页面 (A),它是另一个页面 (B) 的 LiveCopy,它是另一个蓝图页面 (C) 的 LiveCopy。有些页面从 LiveCopy 到蓝图页面的层次结构较长。
那么我如何以编程方式找到某些 LiveCopy 页面的蓝图页面?我找到了solution 如何检查页面是否为 LiveCopy。但是如何找到她的蓝图页面呢?
提前致谢
【问题讨论】:
您将再次使用 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);
上述getLiveRelationship 方法上的false 指的是“高级状态”——没有提及根据JavaDocs 的含义,除了计算它'耗时' .
【讨论】: