避免在AEM 6中嵌套组件

时间:2017-04-11 21:58:36

标签: aem

我有一个AEM容器组件,它只包含parsys,我可以拖放除相同容器组件之外的任何组件。有没有办法可以限制在“容器的解析”中使用这个容器组件,但是应该可以在“内部的parsys”中使用。

这样做是为了避免将容器组件嵌套在另一个容器组件中。

任何指针都将受到高度赞赏!!

1 个答案:

答案 0 :(得分:1)

您可以通过在/etc/designs/<your-project-name>中添加设计来实现此目的。

JCR结构看起来像这样:

+-+ etc
  +-+ designs
    +-+ <your project> (cq:Page)
      +-+ jcr:content (nt:unstructured)
        +-+ <name of your page template> (nt:unstructured)
          +-+ parsys (nt:unstructured)
            +-+ <name of your container component>
              +-+ parsys (nt:unstructured)
                +-* components String[]

最重要的是components类型的String[]属性。这是允许放置在容器组件的parsys中的组件列表。列表中的组件由sling:resourceType标识。

示例:

components=[/apps/<your-projectname>/components/<component-name>,...]

此机制可让您对页面或其他组件中允许的组件进行细粒度控制。

如果您尚未使用/etc/designs,则可能需要更新页面模板并将cq:designPath设置为/etc/designs/<your-project-name>

要了解其工作原理,您可以查看可在此处找到的geometrixx设计/etc/designs/geometrixx/jcr:content

相关问题