Join us this Friday for AI in Action at the Virtual Happy Hour! This free virtual event is open to all—enroll now on Academy and don’t miss out.

 

Deep Clone of ContentArea (Shared and For This Page/Block)

Vote:
 

Hi guys,

I've been looking around for some code that will do a deep clone of a Content Area from one page/block to another. I already have something similar on the SetDefaultValues that works for only shared blocks but I wondered if anyone had any examples or code that can do a more deep clone.

E.g I have a setting in our main site settings that's a combination of shared blocks and page level blocks. I want a service/function that can deep clone from this configuration ContentArea on the settings to another, copying any shared references but also recreating all the blocks on that page/block level with all the values. 

I can see that in the docs https://world.episerver.com/documentation/class-library/?documentId=cms/7/ab3bbfb1-5fdd-6650-3ebf-5e59f8f98490 there is a Copy method but I wondered if anyone had created something or used this without having to re-invent the wheel?

Thanks,

Scott 

#188643
Feb 28, 2018 11:55
Vote:
 

Hi pal,

I think Episerver language mananger has copy functionality (when you are creating new content in new langauge) - maybe there are some code cheats to look up?

#189706
Mar 23, 2018 8:40
Vote:
 

Thanks Valdis, I've actually managed to accompish this. At the moment it's on a specific content type but I'm going to make it generic and post about it when I get the chance. I just ended

  1. Hooking in to the Events_CreatedContent for the types I want to clone
  2. using some reflection to work out the types that I want to clone
  3. Reloading the IContent from the IContentRepository
  4. Checking if the parent items's ContentTypeID == 3
  5. If it's 3 then it's a shared block so just add a content link
  6. If it's not 3 I used the IContentRepository.Copy method to clone the block in to the new item

Work pretty well apart from a weird exception about a properly not allowing nulls, but its a property that doesn't exisit anywhere lol. At the moment it's wrapped but I want to try and resolve it.

#189712
Mar 23, 2018 9:20
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.