Duplicate pages
To duplicate an existing page within Sitefinity CMS, perform the following:
- Use the
PageManagerclass to create a new page node - To create a new page, call
CreatePage()method.
You need to specify the parent node, the unique identifier, and the node type. - Copy the page data of the node, using the
CopyPageData()method.
EXAMPLE: To duplicate a page, you can use the following code snippet:
C#
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?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.
Get started with Integration Hub | Sitefinity Cloud
This free lesson teaches administrators, marketers, and other business professionals how to use Sitefinity Integration Hub to create automated workflows between Sitefinity and other business systems.
Web Security for Sitefinity Administrators
This free lesson teaches administrators the basics about protecting your Sitefinity instance and your 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 ASP.NET Core and take advantage of its decoupled architecture and modern development model.