private void CreatePartnerTabbedPage(SPWeb web, SPList sitesList) { // Create a new page for listing Partner Site Collections if (PublishingWeb.IsPublishingWeb(web)) { PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web); PublishingPageCollection availablePages = pubWeb.GetPublishingPages(); PublishingPage partnerSitesPage = availablePages[Constants.PartnerSitesPageUrl]; if (partnerSitesPage == null) { // The Partner Sites page should be based on the same layout as the top sites page. PublishingPage topSitesPage = availablePages[Constants.TopSitesPageUrl]; partnerSitesPage = availablePages.Add(Constants.PartnerSitesFileName, topSitesPage.Layout); partnerSitesPage.ListItem[titleFieldId] = Constants.PartnerSitesTile; // We can not use the Field Id of the the Description field, because it is not static. partnerSitesPage.ListItem[Constants.DescriptionField] = Resources.PartnerSitePageDescription; partnerSitesPage.Update(); SPFile partnerSitesPageFile = web.GetFile(partnerSitesPage.Url); AddListViewWebPartToPage(sitesList, partnerSitesPage, partnerSitesPageFile); // Add a tab to the Tabs control. SPListItem newTab = web.Lists[Constants.TabsList].Items.Add(); newTab[Constants.TabNameField] = Constants.PartnersTabName; newTab[Constants.PageField] = Constants.PartnerSitesFileName; newTab[Constants.TooltipField] = Constants.PartnerSitesTooltip; newTab.Update(); } } }
// method for creating publising page private string CreatePublishingPage(string pageName, string pageLayoutName, bool isLandingPage) { string createdPageURL = string.Empty; // elevated privilages as not all user will have permission to create a new page SPSecurity.RunWithElevatedPrivileges(delegate() { // get current web SPWeb oWeb = SPContext.Current.Web; string fullPageUrl = string.Empty; PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(oWeb); /* Get the publishing web page collection list. */ PublishingPageCollection publishingPageCollection = publishingWeb.GetPublishingPages(); //GetPageLayoutName(application); if (!string.IsNullOrEmpty(pageLayoutName)) { /* Search for the page layout for creating the new page */ List <PageLayout> layouts = new List <PageLayout>(publishingWeb.GetAvailablePageLayouts()); PageLayout pageLayout = layouts.Find( delegate(PageLayout l) { return(l.Name.Equals(pageLayoutName, StringComparison.CurrentCultureIgnoreCase)); }); /*page layout exists*/ if (pageLayout != null) { PublishingPage newPage = null; newPage = publishingPageCollection.Add(pageName + ".aspx", pageLayout); newPage.Title = pageName; newPage.Update(); SPList li = newPage.ListItem.ParentList; if (li.EnableModeration == false) { li.EnableModeration = true; li.Update(); } newPage.CheckIn("page checked in"); newPage.ListItem.File.Publish("page published"); newPage.ListItem.File.Approve("page approved"); /* Set newly created page as a welcome page */ if (isLandingPage == true) { fullPageUrl = oWeb.Url + "/Pages/" + pageName + ".aspx"; SPFile fileNew = publishingWeb.Web.GetFile(fullPageUrl); publishingWeb.DefaultPage = fileNew; } publishingWeb.Update(); createdPageURL = newPage.Uri.AbsoluteUri.ToString(); } } }); // return new page url return(createdPageURL); }