【问题标题】:CQ5 currentPage.listChildren() does not list all the pagesCQ5 currentPage.listChildren() 没有列出所有页面
【发布时间】:2014-11-17 14:32:18
【问题描述】:

我有一个页面说 xyz,其中包含许多子页面。一些子页面是“启用CUG”的。在我的 jsp 中,我调用了currentPage.listChildren(),但这仅在我以管理员身份登录时列出启用了 CUG 的页面。如果匿名用户点击此 jsp 的 url,则不会列出启用 CUG 的页面。下面是我的jsp代码:

Iterator<Page> itr = currentPage.listChildren();

                while(itr.hasNext()) {

                    Page ctxPage = itr.next();
                    String url =  hostName + ctxPage.getVanityUrl()+".html";
                    %>
                        <a href="<%=url%>"><%=url%><br/>
                    <%
                    }
                }

我也尝试使用here描述的方法以管理员身份登录工作区,但没有成功。

感谢任何帮助,谢谢!

【问题讨论】:

    标签: aem sling


    【解决方案1】:

    我认为这种行为是有意的 - 只有属于指定为 CUG 的用户组的用户才能查看这些页面。

    现在取决于您需要列出这些页面的目的。

    最简单的解决方案是将“每个人”添加到这些特定页面属性的 CUG 部分中的允许组中。但这违背了最初拥有 CUG 的目的。

    注意:这样做将允许“每个人”访问这些页面 - 这可能不是您想要的。

    补充: 如果您想保留访问权限,您需要进入节点级别并直接访问存储库。 这里展示了如何获得“具有管理员权限的资源解析器”: https://cqwemblog.wordpress.com/2013/12/29/ways-to-access-jcr-repository-in-cq5/

    然后您可以使用此资源解析器来获取您的页面并访问它的子页面。

    【讨论】:

    • 这样做的目的是在我的站点地图中列出这些页面。因此,当匿名用户点击 url example.com/sitemap.xml 时,cug 启用页面 url 应该显示在站点地图中。
    • 如果您正在输出 URL,我假设您希望匿名用户也能够访问这些页面?
    • 只有经过身份验证的用户才能访问这些页面,但它们需要在站点地图中列出。
    • 嗯,好的,所以你需要保留访问权限 - 然后查看我的更新
    • 感谢@mish 您的输入帮助了我,在我按照此处描述的方法stejan.ch/blog/tag/cq5 后问题得到了解决
    猜你喜欢
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2017-09-28
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多