/// <summary> /// Applies a layout to a wiki page /// </summary> /// <param name="web">Site to be processed - can be root web or sub site</param> /// <param name="folder">System name of the wiki page library - typically sitepages</param> /// <param name="layout">Wiki page layout to be applied</param> /// <param name="page">Name of the page that will get a new wiki page layout</param> /// <exception cref="System.ArgumentException">Thrown when folder or page is a zero-length string or contains only white space</exception> /// <exception cref="System.ArgumentNullException">Thrown when folder or page is null</exception> public static void AddLayoutToWikiPage(this Web web, string folder, WikiPageLayout layout, string page) { if (string.IsNullOrEmpty(folder)) { throw (folder == null) ? new ArgumentNullException("folder") : new ArgumentException(CoreResources.Exception_Message_EmptyString_Arg, "folder"); } if (string.IsNullOrEmpty(page)) { throw (page == null) ? new ArgumentNullException("page") : new ArgumentException(CoreResources.Exception_Message_EmptyString_Arg, "page"); } string html = ""; switch (layout) { case WikiPageLayout.OneColumn: html = WikiPage_OneColumn; break; case WikiPageLayout.OneColumnSideBar: html = WikiPage_OneColumnSideBar; break; case WikiPageLayout.TwoColumns: html = WikiPage_TwoColumns; break; case WikiPageLayout.TwoColumnsHeader: html = WikiPage_TwoColumnsHeader; break; case WikiPageLayout.TwoColumnsHeaderFooter: html = WikiPage_TwoColumnsHeaderFooter; break; case WikiPageLayout.ThreeColumns: html = WikiPage_ThreeColumns; break; case WikiPageLayout.ThreeColumnsHeader: html = WikiPage_ThreeColumnsHeader; break; case WikiPageLayout.ThreeColumnsHeaderFooter: html = WikiPage_ThreeColumnsHeaderFooter; break; default: break; } web.AddHtmlToWikiPage(folder, html, page); }
/// <summary> /// Adds a wiki page by Url /// </summary> /// <param name="web">The web to process</param> /// <param name="serverRelativePageUrl">Server relative URL of the wiki page to process</param> /// <param name="html">HTML to add to wiki page</param> /// <exception cref="System.ArgumentException">Thrown when serverRelativePageUrl is a zero-length string or contains only white space</exception> /// <exception cref="System.ArgumentNullException">Thrown when serverRelativePageUrl is null</exception> public static void AddWikiPageByUrl(this Web web, string serverRelativePageUrl, string html = null) { if (string.IsNullOrEmpty(serverRelativePageUrl)) { throw (serverRelativePageUrl == null) ? new ArgumentNullException("serverRelativePageUrl") : new ArgumentException(CoreResources.Exception_Message_EmptyString_Arg, "serverRelativePageUrl"); } string folderName = serverRelativePageUrl.Substring(0, serverRelativePageUrl.LastIndexOf("/")); Folder folder = web.GetFolderByServerRelativeUrl(folderName); File file = folder.Files.AddTemplateFile(serverRelativePageUrl, TemplateFileType.WikiPage); web.Context.ExecuteQuery(); if (html != null) { web.AddHtmlToWikiPage(serverRelativePageUrl, html); } }
/// <summary> /// Applies a layout to a wiki page /// </summary> /// <param name="web">Site to be processed - can be root web or sub site</param> /// <param name="layout">Wiki page layout to be applied</param> /// <param name="serverRelativePageUrl"></param> /// <exception cref="System.ArgumentException">Thrown when serverRelativePageUrl is a zero-length string or contains only white space</exception> /// <exception cref="System.ArgumentNullException">Thrown when serverRelativePageUrl is null</exception> public static void AddLayoutToWikiPage(this Web web, WikiPageLayout layout, string serverRelativePageUrl) { if (string.IsNullOrEmpty(serverRelativePageUrl)) { throw (serverRelativePageUrl == null) ? new ArgumentNullException("serverRelativePageUrl") : new ArgumentException(CoreResources.Exception_Message_EmptyString_Arg, "serverRelativePageUrl"); } string html = ""; switch (layout) { case WikiPageLayout.OneColumn: html = WikiPage_OneColumn; break; case WikiPageLayout.OneColumnSideBar: html = WikiPage_OneColumnSideBar; break; case WikiPageLayout.TwoColumns: html = WikiPage_TwoColumns; break; case WikiPageLayout.TwoColumnsHeader: html = WikiPage_TwoColumnsHeader; break; case WikiPageLayout.TwoColumnsHeaderFooter: html = WikiPage_TwoColumnsHeaderFooter; break; case WikiPageLayout.ThreeColumns: html = WikiPage_ThreeColumns; break; case WikiPageLayout.ThreeColumnsHeader: html = WikiPage_ThreeColumnsHeader; break; case WikiPageLayout.ThreeColumnsHeaderFooter: html = WikiPage_ThreeColumnsHeaderFooter; break; default: break; } web.AddHtmlToWikiPage(serverRelativePageUrl, html); }
/// <summary> /// Applies a layout to a wiki page /// </summary> /// <param name="web">Site to be processed - can be root web or sub site</param> /// <param name="folder">System name of the wiki page library - typically sitepages</param> /// <param name="layout">Wiki page layout to be applied</param> /// <param name="page">Name of the page that will get a new wiki page layout</param> public static void AddLayoutToWikiPage(this Web web, string folder, WikiPageLayout layout, string page) { string html = ""; switch (layout) { case WikiPageLayout.OneColumn: html = WikiPage_OneColumn; break; case WikiPageLayout.OneColumnSideBar: html = WikiPage_OneColumnSideBar; break; case WikiPageLayout.TwoColumns: html = WikiPage_TwoColumns; break; case WikiPageLayout.TwoColumnsHeader: html = WikiPage_TwoColumnsHeader; break; case WikiPageLayout.TwoColumnsHeaderFooter: html = WikiPage_TwoColumnsHeaderFooter; break; case WikiPageLayout.ThreeColumns: html = WikiPage_ThreeColumns; break; case WikiPageLayout.ThreeColumnsHeader: html = WikiPage_ThreeColumnsHeader; break; case WikiPageLayout.ThreeColumnsHeaderFooter: html = WikiPage_ThreeColumnsHeaderFooter; break; default: break; } web.AddHtmlToWikiPage(folder, html, page); }
/// <summary> /// Adds a wiki page by Url /// </summary> /// <param name="web">The web to process</param> /// <param name="serverRelativePageUrl">Server relative URL of the wiki page to process</param> /// <param name="pageLayoutUrl">Server relative URL of the publishing page layout</param> /// <param name="html">HTML to add to wiki page</param> /// <exception cref="System.ArgumentException">Thrown when serverRelativePageUrl is a zero-length string or contains only white space</exception> /// <exception cref="System.ArgumentNullException">Thrown when serverRelativePageUrl is null</exception> public static void AddPublishingPageByUrl(this Web web, string serverRelativePageUrl, string pageLayoutUrl, string title, string html = null) { if (string.IsNullOrEmpty(serverRelativePageUrl)) { throw (serverRelativePageUrl == null) ? new ArgumentNullException("serverRelativePageUrl") : new ArgumentException(CoreResources.Exception_Message_EmptyString_Arg, "serverRelativePageUrl"); } var context = web.Context as ClientContext; var list = context.Site.GetCatalog((int)ListTemplateType.MasterPageCatalog); var qry = new CamlQuery(); qry.ViewXml = string.Format("<View><Query><Where><Contains><FieldRef Name=\"FileRef\"/><Value Type=\"Url\">{0}</Value></Contains></Where></Query></View>", pageLayoutUrl.Substring(pageLayoutUrl.IndexOf("_catalogs"))); var layouts = list.GetItems(qry); context.Load(layouts); context.ExecuteQueryRetry(); var layoutEnum = layouts.GetEnumerator(); ListItem layoutItem = null; while (layoutEnum.MoveNext()) { layoutItem = layoutEnum.Current; break; } PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(context, web); context.Load(publishingWeb); int idx = serverRelativePageUrl.LastIndexOf('/'); string folderUrl = serverRelativePageUrl.Substring(0, idx); string pageName = serverRelativePageUrl.Substring(idx + 1); Folder folder = web.GetFolderByServerRelativeUrl(folderUrl); PublishingPageInformation publishingPageInfo = new PublishingPageInformation(); publishingPageInfo.Folder = folder; publishingPageInfo.Name = pageName; publishingPageInfo.PageLayoutListItem = layoutItem; PublishingPage publishingPage = publishingWeb.AddPublishingPage(publishingPageInfo); publishingPage.ListItem["Title"] = title; publishingPage.ListItem.Update(); context.ExecuteQueryRetry(); if (!string.IsNullOrEmpty(html)) { web.AddHtmlToWikiPage(serverRelativePageUrl, html); } publishingPage.ListItem.File.CheckIn(string.Empty, CheckinType.MajorCheckIn); publishingPage.ListItem.File.Publish(string.Empty); context.ExecuteQueryRetry(); }
public static void AddWikiPageByUrl(this Web web, string serverRelativePageUrl, string html = null) { string folderName = serverRelativePageUrl.Substring(0, serverRelativePageUrl.LastIndexOf("/")); Folder folder = web.GetFolderByServerRelativeUrl(folderName); File file = folder.Files.AddTemplateFile(serverRelativePageUrl, TemplateFileType.WikiPage); web.Context.ExecuteQuery(); if (html != null) { web.AddHtmlToWikiPage(serverRelativePageUrl, html); } }
public static void AddLayoutToWikiPage(this Web web, WikiPageLayout layout, string serverRelativePageUrl) { string html = ""; switch (layout) { case WikiPageLayout.OneColumn: html = WikiPage_OneColumn; break; case WikiPageLayout.OneColumnSideBar: html = WikiPage_OneColumnSideBar; break; case WikiPageLayout.TwoColumns: html = WikiPage_TwoColumns; break; case WikiPageLayout.TwoColumnsHeader: html = WikiPage_TwoColumnsHeader; break; case WikiPageLayout.TwoColumnsHeaderFooter: html = WikiPage_TwoColumnsHeaderFooter; break; case WikiPageLayout.ThreeColumns: html = WikiPage_ThreeColumns; break; case WikiPageLayout.ThreeColumnsHeader: html = WikiPage_ThreeColumnsHeader; break; case WikiPageLayout.ThreeColumnsHeaderFooter: html = WikiPage_ThreeColumnsHeaderFooter; break; default: break; } web.AddHtmlToWikiPage(serverRelativePageUrl, html); }