Ananya
Ananya

Reputation: 91

Programmatically accessing sitecore layouts, templates and moving it to other site

We have a need to programmatically access the layouts/ templates of one sitecore site and move it to another site under different folders basically the intent is to restructure the existing site which is already in production.

Could anyone tell me how do we go about it?

Upvotes: 0

Views: 602

Answers (2)

Klaus Petersen
Klaus Petersen

Reputation: 301

I would look into using Sitecore Powershell Extensions (look at marketplace). It is a perfect fit for a usecase like this.

Upvotes: 0

Yan Sklyarenko
Yan Sklyarenko

Reputation: 32240

Instead of writing a custom "one-time-use" tool for this, I would recommend you to get advantage of a standard "Transfer Items" application. You can find it in Sitecore Control Panel: go to Database > Transfer Items to Another Database.

So, what you basically need to do:

  • plug in the master database from the target new site to this older site, like "master_new" or something. This will require the web.config modification. The section on SDN about publishing targets should have a guideline how to do this
  • run the "Transfer Items" application, select the templates / layouts you needs on the first page, select this "master_new" database as a target database and the place in the content tree to transfer to on the second one
  • run the actual transfer

If your layouts / templates are groups into folders, this process will take the minimal time - much less comparing to creating your custom script...

UPDATE: Some sample code how to trigger this application programmatically:

UrlString url = new UrlString(UIUtil.GetUri("control:TransferToDatabase"));
Context.ClientPage.ClientResponse.ShowModalDialog(url.ToString());

Upvotes: 3

Related Questions