Tuesday, May 13, 2014

Add a page to Pages (Publishing Site) SharePoint 2013

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.publishingpage.contact(v=office.14).aspx

using (SPSite site = new SPSite("http://siteUrl"))
{
                using (SPWeb web = site.OpenWeb())
                {
                    PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
                    PageLayout[] pageLayouts = publishingWeb.GetAvailablePageLayouts();
                    string pageName = "pageName.aspx";
                    string checkInComment = "check in comments";
                    var targetPageLayout = from pagelayout in pageLayouts
                                                where pagelayout.Name == "CustomPageLayout.aspx"
                                                select pagelayout;
                    if (targetPageLayout != null)
                    {
                        PublishingPageCollection pages = publishingWeb.GetPublishingPages();
                        PublishingPage newPage = pages.Add(pageName, (PageLayout)targetPageLayout.FirstOrDefault());
                        newPage.ListItem[FieldId.PublishingPageContent] = "content goes here";
                        newPage.ListItem[FieldId.Title] = "page title goes here";
                        newPage.ListItem["CustomField"] = "custom field value goes here";
                        newPage.ListItem.Update();                      
                        newPage.Update();
                        newPage.CheckIn("checkin comment");
                       SPFile pageFile = newPage.ListItem.File;
            pageFile.Publish(checkInComment);
            pageFile.Approve(checkInComment);
                    }
                }
 }

No comments:

Post a Comment