I would like to create a component which is a parsys and can hold some specific components only. I have copied the parsys component from the foundation, and create a new component drag-drop-parsys, but when I drag it on the page, that on the parsys, I can see the green-surronding bar for "drag-drop-parsys". Can some one please let me know what should I do.
Parsys with in Parsys (drag-drop-parsys) and which can hold specific components.
Thanks for all your help.
-MG
Could you clarify why you are created an entirely new paragraph system? Generally to limit certain components to a certain parsys, you would use the "Design", a configuration that specifies exactly that. You specify in the design that X, Y, and Z components (or component groups) are available in any parsys named "your parsys name" per page component.
Here's the documentation:
http://dev.day.com/docs/en/cq/current/developing/designer.html
One solution would be to create a NEW component "my-parsys" that inherits from the system parsys component. Then the new component could restrict allowedChildren to the desired set of draggable components. Theoretically, this wouldn't require any JSP's - just the settings around your draggable parsys.
NOTE: generally, it doesn't make sense to drag a parsys directly into another parsys - that is just nesting lists of components. However, we have created "wrapper" components that themselves may have their own parsys for components inside themselves.
Related
How can I set possibility for component to setting just after one special component?
I have a component, which should be just after title component, I had some thoughts to add parsys component under title component, and add possibility to that parsys to keep just one my component, but I am still getting such fail with setting component just after title. What possible resolutions can be of my problem?
You can use cq:template node to define this.
Which is explained clearly in http://www.sgaemsolutions.com/2018/02/cqtemplate-and-cqtemplatepath.html
Thanks to SG
in aem in touch ui using sightly if I add a parsys component with some width(ex:30%) and after adding some component to it next parsys should come after that one not below of the previous component. How can I do that one?
There is not something like "fixed-fluid layout" in AEM.
You should create a layout before drop the components, you can use column control to achieve this, take a look to the documentation: https://helpx.adobe.com/experience-manager/using/custom_columns.html
Is there a way to build/configure a parsys in AEM 6.0 such that when users drag new components from the sidekick, that the parsys will show a slot to add a new component at the top instead of the bottom (Referring to the box labeled "Drag components or assets here")? For example, I have a parsys with a list of articles and the articles are by default shown in descending order. When a user goes to add a new article I'd like them to by default add a new one at the top of the list in the parsys and not have to add to the bottom then re-order all the way from the bottom up. Is this possible in AEM 6.0?
Not sure if i understand your question correctly, but to explain how parsys work:
Parsys is a placeholder which allow authors/editors to drag and drop
components.
Editors can drop a new component before/below an existing component, which means parsys is already flexible enough to add new component anywhere.
Considering Your article list example, by forcing new component always on top, you will loose feature#2. I would recommend following options:
Use OOB parsys and handle this by governance.
or Create a component which render list of articles in descending order.
I couldn't understand the need for a parbase component in CQ5. From what I read in CQ5 documentation, parbase is a component that can extend from other components. But all the components can extend other components by specifying sling:resourceSuperType property. So what is the need for a parbase component?
As per the Day documentation, "The parbase allows components to inherit attributes from other components"
If you check under "/libs/foundation/components", most of the authorable and draggable components have 'parbase' set as their 'sling:resourceSuperType' so that they can inherit the image and text rendering properties when added to a Paragraph system (Parsys Component).
This is a standard followed by all the Out-Of-the-Box components in CQ5.
While creating your own components, you don't need to add 'parbase' as a supertype, unless your components need to be enabled with drag-drop in a parsys.
AFAIK, the parbase component is never used explicitly, but only facilitates the rendering of a component when added in the Parsys.
Parbase is just a component from which you extend to get some OOTB functionality.
If I can say in technical language, Parbase is a key component as it allows components to inherit attributes from other components, similar to subclasses in object oriented languages such as Java.
For example, when you open the /libs/foundation/components/text node in the CRX Explorer, you see that it has a property named sling:resourceSuperType, which references the parbase component. The parbase here defines tree scripts to render images, titles, and so on, so that all components subclassed from this parbase can use this script.
Im using adobe CQ 5 and I have created a bunch of components.
For all these components I have set allowedParents to */parsys and I have defined the componentGroup as xyz.
My page contains the parsys component. When I enter the parsys design mode, the list of allowed components does not show the component group xyz.
Please help!
Thanks in advance
Kindly make sure that your components jcr:title is not the same as the component's name. For Eg: if the name of the component is text, then the title should at least be Text and not text. Change it and then check in the design mode, it will list your component group.
Please verify your Jcr:title (text) does not match with your component name. A difference needs to be mentioned i.e. if your component name is Title, then your jcr:title should have title. If the component is still not in sidekick after this, then add this too:
Add cq:editConfig to your component. This will enable you to add your component in sidekick. There is no need to create a dialog.
If your component does not have dialog then child node cq:editConfig enables the component to show in the sidekick. for more please visit http://www.cqtuts.com/cq5/cq5-component.html