Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AEM6 component allowedChildren not working

Tags:

aem

Using AEM6 i want to restrict the type of components in a parsys.

  • I have a parsys in a page.
  • i drag a custom component from the sidebar to the parsys page.
  • The custom component also has a parsys.
  • I can drag sidebar components into my component parsys.
  • In the custom component parsys all the operations work as expected, drag, drop, reorder, delete.

Using allowedChildren and / or allowedParents in the custom component and child parsys (.content.xml) has no effect, i can not restrict the type of components in component parsys.

In AEM6 how can i restrict the type of components in a parsys?

like image 528
Alex Falcoeiras Avatar asked Aug 22 '14 16:08

Alex Falcoeiras


1 Answers

Not sure if this has changed in AEM 6 compared to CQ/AEM 5.X but you can define which components are allowed within the design mode. If you want to have this deployable with your code you can have the definition in the design xml:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
    jcr:primaryType="cq:Page">
    <jcr:content
        jcr:primaryType="nt:unstructured"
        jcr:title="My Design"
        sling:resourceType="wcm/core/components/designer">
        <mypagecomponent jcr:primaryType="nt:unstructured">
            <par    jcr:primaryType="nt:unstructured"
                sling:resourceType="foundation/components/parsys"
                components="[group:My Group A]">
                <section jcr:primaryType="nt:unstructured"/>
                <myparcontainer jcr:primaryType="nt:unstructured"
                    <par    jcr:primaryType="nt:unstructured"
                        sling:resourceType="project/components/myparsys"
                        components="[group:My Group B]">
                        <section jcr:primaryType="nt:unstructured"/>
                    </par>
                </myparcontainer>
            </par>
        </mypagecomponent>
    </jcr:content>
</jcr:root>

The allowedChildren and allowedParents filters are quite complex to use and cannot be combined. I gave up using them in CQ/AEM 5.X

like image 74
Thomas Avatar answered Sep 20 '22 13:09

Thomas