Setting template to pages

Sitefinity allows you to set template to a page through the Pages API. You set the template in the PageData object. You must get the temp draft before setting the template.

To set template to a page you can use the Native API or the Fluent API.

Native API

The following example sets the specified template to the specified page:

public void SetTemplateToPage(Guid pageNodeId, Guid templateId)
{
    PageManager manager = PageManager.GetManager();
 
    var initialPageNode = manager.GetPageNode(pageNodeId);
 
    PageData pageData = initialPageNode.Page;
 
    var temp = manager.EditPage(pageData.Id);
    temp.TemplateId = templateId;
    manager.PagesLifecycle.CheckIn(temp);
    manager.SaveChanges();
 
    var bag = new Dictionary<string, string>();
    bag.Add("ContentType", typeof(PageNode).FullName);
    WorkflowManager.MessageWorkflow(pageNodeId, typeof(PageNode), null, "Publish", false, bag);
}

First, you initialize the PageManager. Then, you get the page node using GetPageNode. For more information about finding a specific page node and data, see Querying pages. Then, you get the temp draft of the PageData by calling EditPage. You set the template Id using the TemplateId property. You call CheckIn to get the master. Finally, to publish the news item in live state, you call the MessageWorkflow method of the WorkflowManager class and pass the required parameters.

Fluent API

The following example sets the specified template to the specified page:

public void SetTemplateToPageFluent(Guid pageId, Guid templateId)
{
    App.WorkWith().Page(pageId).AsStandardPage()
        .CheckOut()
        .SetTemplateTo(templateId)
        .Publish()
        .SaveChanges();
 
    App.WorkWith().Page(pageId).AsStandardPage().CheckOut().UndoDraft().SaveChanges();
}

First, you get the page with the specified Id. For more information about finding a specific page node and data, see Querying pages. Then, you create the draft by calling CheckOut. You set the template using the SetTemplateTo method. To publish the page draft, you call Publish. Finally, you delete the draft by calling UndoDraft.

Next steps

+1-888-365-2779
sales@sitefinity.com

Related topics:

Feedback

How useful is this article?

Tell us more

Submit
Your message was successfully sent.

We appreciate your feedback.

Your message could not be sent.

OK