我有一个动态可编辑模板,页面组件上有设计对话框。设计属性保存在/ conf / myapp / settings / wcm / policies / myapp下,如下所示:
我的要求是阅读这些页面级设计属性并在Image组件中使用它们。我也在组件级别有设计对话框。因此,当我执行$ {currentStyle.property}时,它会呈现组件级设计属性。
接下来我写了一个这样的辅助类:
Designer designer = currentPage.getContentResource().getResourceResolver().adaptTo(Designer.class);
Design pageDesign = designer.getDesign(currentPage);
Style pageStyle = pageDesign.getStyle(pageDesign.getPath());
return pageStyle.get(PROPERTY_ANALYTICSPAGETYPE, String.class);
此代码尝试在cq:designPath下编写的/ etc / designs / myapp下读取页面级设计属性,而不读取/ conf策略下的页面级设计属性。 现在我如何读取/ conf策略节点并访问这些属性?
如何在组件中访问页面级设计属性?
答案 0 :(得分:2)
这应该会给你想要的结果:
ResourceResolver resourceResolver = this.request.getResourceResolver();
ContentPolicyManager policyManager = (ContentPolicyManager)resourceResolver.adaptTo(ContentPolicyManager.class);
if (policyManager != null)
{
ContentPolicy contentPolicy = policyManager.getPolicy(this.resource);
if (contentPolicy != null) {
this.myProperty = ((Boolean)contentPolicy.getProperties().get("myProperty", Boolean.valueOf(false))).booleanValue();
}