Добавьте публикацию страниц для конкретных субзидентов программно в ресивере
-
10-12-2019 - |
Вопрос
В настоящее время я создал субсидирует программное обеспечение в методе 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");
}
.