Expand my Community achievements bar.

SOLVED

Field Level Inheritance - MSM

Avatar

Level 1

Hi,

How to achieve field level/properties inheritance on components when rolling out pages [Similar to Page Properties: Language, Redirect ]?

For example, a component has 3 properties/fields A, B and C.

Component on English Page: 
A="English"; B="en"; C="lang"

Component on French Page: 
A="French"; B="fr"; C="lang"

Generally, when I rollout the English page, all three properties are copied to French. If i have to change A and B property on French, I have to break the inheritance for the entire component. But my requirement is that the inheritance be maintained at field level rather than component level. 

We can see this behavior on few of the Page properties on the Live Copies. We need the same functionality on Component properties as well.

Please help.

Thanks in Advance,
Shirley
 


 

1 Accepted Solution
5 Replies

Avatar

Correct answer by
Level 10

Avatar

Level 10

The docs say that inheritance is at component or page level. 

Live Copy Inheritence: Select to cause child pages to inherited the Live Copy configruation of the current page

Component Inheritance
As another demonstration of the power of Live Copy, we can manage it at the component level. On a Live Copy page, we can use the Live Copy tab to disable or enable Live Copy on each component of the page.

Here are some good topics that cover this subject. 

http://aempodcast.com/2013/live-copy/live-copy-and-msm-custom-configuration/#.Vbo7rPlVhBc

http://docs.adobe.com/docs/en/cq/5-6-1/administering/multi_site_manager.html

Also - as mentioned in this article - look at some of the rollout configurations provided with Geometrixx.

I am not reading anything in the docs that says you can maintain a relationship at the field level. 

Avatar

Level 2

Set "fieldEditLockMode" property to "true" to your component dialog to enable cancelling of properties inheritance. Works with AEM 6.0

 

[img]2015-08-19 13_39_54-CRXDE Lite.png[/img]

[img]2015-08-19_12_02_29.png[/img]

Avatar

Level 2

Hi,

I having the same challenge: I need a field level based inheritance of a component since I need to avoid cancelling the whole component inheritance and therefore all fields.

I found the property "fieldEditLockMode" in this article: aem - CQ5 - Cancel individual property inheritance of a Live Copy component - Stack Overflow. Adding this to the component dialog let the small locks appear in front of the field in the dialog. But when I cancel the inheritance of a field, changing the content, close dialog and rollout again from blueprint the lock is closed and content is snyced. Is there ​any other things that I have to set up to let this work?

I could not find any official doc at Adobe

We are using AEM 6.1 SP2.

Appreciate your help and experience!

Thx

Avatar

Level 2

Hello ,

Apart from adding the fieldEditLockMode, May be you will have to also overlay the MSM JS to add  the  properties jcr:mixinTypes and cq:propertyInheritanceCancelled whever you cancel inheritance of a propery.

For Eg.

jcr:mixinTypes Name[] cq:LiveRelationship, cq:LiveSyncCancelled, cq:PropertyLiveSyncCancelled

cq:propertyInheritanceCancelled String[] property1