我有一个AEM容器组件,它只包含parsys,我可以拖放除相同容器组件之外的任何组件。有没有办法可以限制在“容器的解析”中使用这个容器组件,但是应该可以在“内部的parsys”中使用。
这样做是为了避免将容器组件嵌套在另一个容器组件中。
任何指针都将受到高度赞赏!!
答案 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
。