Добавьте публикацию страниц для конкретных субзидентов программно в ресивере

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/92971

Вопрос

В настоящее время я создал субсидирует программное обеспечение в методе featureceiver и иметь способ создания издательских страниц, но они создаются на корневом сайте.Есть ли способ нацелиться на определенный субсит, чтобы добавить издательские страницы ??

Поскольку это в ресивере функций, я получаю доступ к текущей сети, как это, из другого метода, используя SPFeatureReceiver properties

SPWeb spWeb = properties.GetWeb();
.

Я попробовал что-то вроде этого, но не был успешным:

        SPSite site = properties.Feature.Parent as SPSite;
        {
            using (SPWeb oSPWeb = site.OpenWeb("http://www.mysite.com/newsite"))
            {
                // page creation code
            }
        }
.

Любая помощь была бы хорошей

Это было полезно?

Решение

Все

закончил получать вещи для работы

После получения генеракодицетагкода я обнаружил, что все, что мне нужно было сделать, это добавить остаток URL, который могло быть что-то вроде «/ NewPage» до остальной части URL, поскольку у меня уже имел полный URL-адрес сайта от свойств.

создал метод, который проходил на сайте и WebURL, чтобы получить желаемый результат для проведения веб-страниц

Обновление:

Вот код, передаваемый им эти параметры:

Этот метод используется для создания страницы

        private void CreatePage(SPSite site1, string cWebUrl, string cPageLayout, string cPageName, string cPageTitle)
        {
        try
        {
            using (SPWeb spoWeb = site1.OpenWeb(cWebUrl))
            {
                PublishingWeb pWebRoot = PublishingWeb.GetPublishingWeb(site1.RootWeb);
                PublishingWeb pWeb = PublishingWeb.GetPublishingWeb(spoWeb);
                PageLayout[] layouts = pWebRoot.GetAvailablePageLayouts();
                PageLayout pl = GetPageLayout(layouts, cPageLayout);
                if (pl != null)
                {
                    //Create My Pages
                    PublishingPage newPage = pWeb.GetPublishingPages().Add(cPageName, pl);
                    newPage.Layout = pl;
                    newPage.Title = cPageTitle;
                    newPage.Update();
                    newPage.CheckIn("");
                    pWeb.Update();
                }
            }
        }
        catch (Exception ex)
        {
            //Error Handling code
        }
    }
.

Тогда я создал другой метод, в котором я передал значения всем страницам, которые я хотел создать:

        private void CreatePages(SPSite site)
        {
           CreatePage(site, "/", "MyPage1.Minimal..aspx", "Page1.aspx", "Page1");
           CreatePage(site, "/", "MyPage2.Minimal.aspx", "Page2.aspx", "Page2");
           CreatePage(site, "/", "MyPage3.Minimal.aspx", "Sitemap.aspx", "Sitemap");
        }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top