protected override SPFile CreateDataObject() { SPFile page = null; try { if (ParameterSetName == "List") { var web = Web.Read(); SPList list = List.Read(web); page = WikiPageUtilities.AddWikiPage(list, WikiPageName, true); } else { page = WikiPageUtilities.AddWikiPage(Folder.Read(), WikiPageName, true); } } catch (Exception) { throw new Exception("The specified wiki page already exists and will not be overwritten."); } if (page != null) { WikiPageUtilities.AddLayoutToWikiPage(page.Item, WikiPageLayout); } return(page); }
protected override WebPart CreateDataObject() { string pageUrl = null; switch (ParameterSetName) { case "Manager_File": case "Manager_Assembly": case "Manager_File_WikiPage": case "Manager_Assembly_WikiPage": pageUrl = Manager.PageUrl; break; case "File_File": case "File_Assembly": case "File_File_WikiPage": case "File_Assembly_WikiPage": pageUrl = File.FileUrl; break; } if (pageUrl == null) { throw new SPCmdletObjectNotFoundException("No page was specified."); } SPFile file = (new SPFilePipeBind(pageUrl)).Read(); Hashtable props = null; if (CustomReplaceText != null) { props = CustomReplaceText.Read(); } switch (ParameterSetName) { case "File_Assembly": case "Manager_Assembly": return(AddWebPart(file, null, Assembly, TypeName, WebPartTitle, Zone, ZoneIndex, DeleteExisting, props, ChromeType, Publish)); case "File_File": case "Manager_File": return(AddWebPart(file, Identity.Read().OuterXml, null, null, WebPartTitle, Zone, ZoneIndex, DeleteExisting, props, ChromeType, Publish)); case "File_File_WikiPage": case "Manager_File_WikiPage": return(WikiPageUtilities.AddWebPartToWikiPage(file.Item, Identity.Read().OuterXml, WebPartTitle, Row, Column, AddSpace, props, ChromeType, Publish)); case "File_Assembly_WikiPage": case "Manager_Assembly_WikiPage": var wp = AddWebPart(Assembly, TypeName); return(WikiPageUtilities.AddWebPartToWikiPage(file.Item, wp, WebPartTitle, Row, Column, AddSpace, ChromeType, Publish)); } return(null); }
protected override void UpdateDataObject() { SPFile page = null; if (ParameterSetName == "List") { var web = Web.Read(); SPList list = List.Read(web); page = list.RootFolder.Files[WikiPageName]; } else { page = Folder.Read().Files[WikiPageName]; } if (page != null) { WikiPageUtilities.AddHtmlToWikiPage(page.Item, Html, Row, Column, Prepend); } }
protected override void UpdateDataObject() { SPFile page = null; if (ParameterSetName == "List") { var web = Web.Read(); SPList list = List.Read(web); page = list.RootFolder.Files[WikiPageName]; } else { page = Folder.Read().Files[WikiPageName]; } if (page != null) { WikiPageUtilities.SetWikiPageLayout(page.Item, WikiPageLayout); } }
public static Microsoft.SharePoint.WebPartPages.WebPart AddToWikiPage(string pageUrl, string listUrl, string title, string viewTitle, int row, int column, bool linkTitle, string jsLink, PartChromeType chromeType, bool addSpace, bool publish) { using (SPSite site = new SPSite(pageUrl)) using (SPWeb web = site.OpenWeb()) // The url contains a filename so AllWebs[] will not work unless we want to try and parse which we don't { SPFile file = web.GetFile(pageUrl); // file.Item will throw "The object specified does not belong to a list." if the url passed // does not correspond to a file in a list. SPList list = Utilities.GetListFromViewUrl(listUrl); if (list == null) { throw new ArgumentException("List not found."); } SPView view = null; if (!string.IsNullOrEmpty(viewTitle)) { view = list.Views.Cast <SPView>().FirstOrDefault(v => v.Title == viewTitle); if (view == null) { throw new ArgumentException("The specified view was not found."); } } bool checkBackIn = false; if (file.InDocumentLibrary) { if (!Utilities.IsCheckedOut(file.Item) || !Utilities.IsCheckedOutByCurrentUser(file.Item)) { checkBackIn = true; file.CheckOut(); } // If it's checked out by another user then this will throw an informative exception so let it do so. } string displayTitle = string.Empty; Microsoft.SharePoint.WebPartPages.WebPart lvw = null; try { lvw = new XsltListViewWebPart(); if (list.BaseTemplate == SPListTemplateType.Events) { lvw = new ListViewWebPart(); } if (lvw is ListViewWebPart) { ((ListViewWebPart)lvw).ListName = list.ID.ToString("B").ToUpperInvariant(); ((ListViewWebPart)lvw).WebId = list.ParentWeb.ID; if (view != null) { ((ListViewWebPart)lvw).ViewGuid = view.ID.ToString("B").ToUpperInvariant(); } } else { ((XsltListViewWebPart)lvw).ListName = list.ID.ToString("B").ToUpperInvariant(); #if !SP2010 if (!string.IsNullOrEmpty(jsLink)) { ((XsltListViewWebPart)lvw).JSLink = jsLink; } #endif ((XsltListViewWebPart)lvw).WebId = list.ParentWeb.ID; if (view != null) { ((XsltListViewWebPart)lvw).ViewGuid = view.ID.ToString("B").ToUpperInvariant(); } } if (linkTitle) { if (view != null) { lvw.TitleUrl = view.Url; } else { lvw.TitleUrl = list.DefaultViewUrl; } } if (!string.IsNullOrEmpty(title)) { lvw.Title = title; } lvw.ChromeType = chromeType; displayTitle = lvw.DisplayTitle; WikiPageUtilities.AddWebPartToWikiPage(file.Item, lvw, displayTitle, row, column, addSpace, chromeType, publish); } finally { if (lvw != null) { lvw.Dispose(); } if (file.InDocumentLibrary && Utilities.IsCheckedOut(file.Item) && (checkBackIn || publish)) { file.CheckIn("Checking in changes to page due to new web part being added: " + displayTitle); } if (publish && file.InDocumentLibrary) { file.Publish("Publishing changes to page due to new web part being added: " + displayTitle); if (file.Item.ModerationInformation != null) { file.Approve("Approving changes to page due to new web part being added: " + displayTitle); } } } return(lvw); } }