Pregunta

Actualmente, he creado subsitales programáticamente en el método de Feururectoryiver y tiene una forma de crear páginas de publicación, pero se están creando en el sitio de la raíz.¿Hay alguna manera de apuntar a un subsito específico para agregar páginas de publicación a ella?

Dado que esto está en el receptor de características, estoy accediendo a la web actual como esta desde otro método usando el SPFeatureReceiver properties

SPWeb spWeb = properties.GetWeb();

Intenté algo así, pero no tuvo éxito:

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

Cualquier ayuda sería buena

¿Fue útil?

Solución

todos

terminó haciendo que las cosas funcionen

Después de obtener SPSite site = properties.Feature.Parent as SPSite;, descubrí que todo lo que tenía que hacer era agregar el resto de la URL, que podría ser algo así como "/ newpage" al resto de la URL ya que ya tenía la URL del sitio completo de las propiedades.

creó un método que pasó en el sitio y la weburl para obtener mi resultado deseado para provisar las páginas web

Actualización:

Aquí está el código que pasa estos parámetros:

Este método se utiliza para crear la página

        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
        }
    }

Luego creé otro método donde pasé por los valores a todas las páginas que quería crear:

        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");
        }

Licenciado bajo: CC-BY-SA con atribución
scroll top