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);
        }
示例#3
0
        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);
            }
        }
示例#5
0
        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);
                }
        }