Duplicate pages

NEW TO SITEFINITY?

To duplicate an existing page within Sitefinity CMS, perform the following:

  1. Use the PageManager class to create a new page node
  2. To create a new page, call CreatePage() method.
    You need to specify the parent node, the unique identifier, and the node type. 
  3. Copy the page data of the node, using the CopyPageData() method. 

EXAMPLE: To duplicate a page, you can use the following code snippet:

using System;
using System.Linq;
using System.Text.RegularExpressions;
using Telerik.Sitefinity.Modules.Pages;
using Telerik.Sitefinity.Pages.Model;
namespace SitefinityWebApp
{
public class DuplicatePages_DuplicatePageNative
{
public void DuplicatePageNative(Guid sourcePageId, string pageName)
{
Guid pageId = Guid.NewGuid();
var manager = PageManager.GetManager();
PageNode sourcePage = manager.GetPageNodes().FirstOrDefault(x => x.Id == sourcePageId);
if (sourcePage != null)
{
// Create the new page node
PageNode parent = manager.GetPageNode(sourcePage.ParentId);
PageNode pageNode = manager.CreatePage(parent, pageId, sourcePage.NodeType);
// Copy the source page data
PageData sourcePageData = sourcePage.GetPageData();
PageData pageData = pageNode.GetPageData();
if (sourcePageData != null && pageData != null)
{
manager.CopyPageData(sourcePageData, pageData);
pageData.Description = pageName;
pageData.DateCreated = DateTime.UtcNow;
pageData.LastModified = DateTime.UtcNow;
}
// Set the page node properties
pageNode.Name = pageName;
pageNode.ShowInNavigation = true;
pageNode.UrlName = Regex.Replace(pageName.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-");
pageNode.Title = pageName;
// Publish the page node
pageNode.ApprovalWorkflowState = "Published";
manager.SaveChanges();
}
}
}
}

Want to learn more?

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?