Use Case: We have an accordion component that we can drag and drop on the page(page is made using editable template). Accordion component consists of a container and inside it, we can drag accordion entries. Accordion entry has a parsys in which we can include any component but we want to restrict it to few components only.
I have tried using component property in /etc/designs/<my-project>/jcr:content/<template>/accordionEntryParsys but it didn't work for me. I am still able to add any component inside the accordion entry parsys. Is there something I am missing?
Solved! Go to Solution.
I would recommend you to use template editor for this where you can control/configure usage of component via policy configuration.
But, this is similar question asked earlier, please have a look at Setting access rights at component level and How to restrict the parsys to specific components
//
UI solution :- https://docs.adobe.com/docs/en/aem/6-2/author/page-authoring/default-components/designmode .html#Enable/Disable Components - Touch-Optimized UI
Link:- http://stackoverflow.com/questions/23275062/restrict-the-components-in-aem-5-6-1
// Restrict the components
In CRXDE, under /etc/designs/[your design]/jcr:content, you can define nodes to represent each of your templates & their paragraphs & list the allowed components for each.
The format is a node for each template that contains a node for each parsys (both [nt:unstructured]).
The parsys node then has a sling:resourceType defined of foundation/components/parsys and a components property of String[]. For an example, check out how the Geometrixx one is defined: http://localhost:4502/crx/de/index.jsp#/etc/designs/geometrixx/jcr%3Acontent/contentpage/p ar
You could then extract this via VLT, which gets stored as a .content.xml file under etc/designs/[your design].
Alternatively, you can create that file by hand, too. E.g. the following would define 'Your Design' as allowing default "text" and "image" components on the "yourParsys" paragraph of "yourTemplate".
<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
cq:template="/libs/wcm/core/templates/designpage"
jcr:primaryType="cq:PageContent"
jcr:title="You Design">
<yourTemplate jcr:primaryType="nt:unstructured">
<yourParsys
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/parsys"
components="[foundation/components/text,foundation/components/image]"/>
</yourTemplate>
</jcr:content>
</jcr:root>
This allows you to move this file across instances (e.g when deploying a CRX package) so that you don't have to configure environments individually & which components are allowed where can also be managed by version control.
// How to restrict components in a particular parsys ?
Make sure to configure the property "components" as type string[] with list of all the components.As an example for geometrixx you can refer /etc/designs/geometrixx/jcr:content/contentpage/par/@components.
Views
Replies
Total Likes
I would recommend you to use template editor for this where you can control/configure usage of component via policy configuration.
But, this is similar question asked earlier, please have a look at Setting access rights at component level and How to restrict the parsys to specific components
//
UI solution :- https://docs.adobe.com/docs/en/aem/6-2/author/page-authoring/default-components/designmode .html#Enable/Disable Components - Touch-Optimized UI
Link:- http://stackoverflow.com/questions/23275062/restrict-the-components-in-aem-5-6-1
// Restrict the components
In CRXDE, under /etc/designs/[your design]/jcr:content, you can define nodes to represent each of your templates & their paragraphs & list the allowed components for each.
The format is a node for each template that contains a node for each parsys (both [nt:unstructured]).
The parsys node then has a sling:resourceType defined of foundation/components/parsys and a components property of String[]. For an example, check out how the Geometrixx one is defined: http://localhost:4502/crx/de/index.jsp#/etc/designs/geometrixx/jcr%3Acontent/contentpage/p ar
You could then extract this via VLT, which gets stored as a .content.xml file under etc/designs/[your design].
Alternatively, you can create that file by hand, too. E.g. the following would define 'Your Design' as allowing default "text" and "image" components on the "yourParsys" paragraph of "yourTemplate".
<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
cq:template="/libs/wcm/core/templates/designpage"
jcr:primaryType="cq:PageContent"
jcr:title="You Design">
<yourTemplate jcr:primaryType="nt:unstructured">
<yourParsys
jcr:primaryType="nt:unstructured"
sling:resourceType="foundation/components/parsys"
components="[foundation/components/text,foundation/components/image]"/>
</yourTemplate>
</jcr:content>
</jcr:root>
This allows you to move this file across instances (e.g when deploying a CRX package) so that you don't have to configure environments individually & which components are allowed where can also be managed by version control.
// How to restrict components in a particular parsys ?
Make sure to configure the property "components" as type string[] with list of all the components.As an example for geometrixx you can refer /etc/designs/geometrixx/jcr:content/contentpage/par/@components.
Views
Replies
Total Likes
Thanks a lot for the help. It worked.