AEM 6.3 - 如何读取动态可编辑模板的组件帮助程序中的设计属性

标签 aem aem-6

我有一个动态可编辑模板,在页面组件上带有设计对话框。设计属性保留在/conf/myapp/settings/wcm/policies/myapp 下,如下所示:

enter image description here

我的要求是读取这些页面级设计属性并在图像组件中使用它们。我也有组件级别的设计对话框。因此,当我执行 ${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 策略节点并访问这些属性?

如何访问组件内的页面级设计属性?

最佳答案

这应该会给你想要的结果:

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();
    }

关于AEM 6.3 - 如何读取动态可编辑模板的组件帮助程序中的设计属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49618149/

相关文章:

aem - CQ5 : Inheriting/Extended Dialogs

aem - Adobe CQ5 parsys 组件不可见

javascript - 在 Javascript 中获取作者 [AEM] 选择的对话框属性值

wildcard - AEM 6.4 : Using wildcards in filter definition

java - ADOBE CQ 5.5 反向复制(发布者 -> 作者)由代码触发,但根本不运行

maven - 我们如何为pom.xml创建一个build.gradle等效文件来构建和部署AEM代码?

aem - 了解CQ5 Lucene索引规则

java - AEM 6.5 - 缺少 AuthenticationSupport 服务。无法验证请求

javascript - 使用 Javascript Use API 获取标签列表