Domanda

Attualmente, ho creato i sottosezioni a livello programmatico nel metodo Featureureceiver e hanno un modo per creare pagine di pubblicazione, ma vengono create sul sito di radice.C'è un modo per indirizzare uno specifico ribaltamento per aggiungere pagine editoriali ad esso ??

Poiché questo è nel ricevitore funzione che sto accedendo al web corrente come questo da un altro metodo utilizzando SPFeatureReceiver properties

SPWeb spWeb = properties.GetWeb();
.

Ho provato qualcosa del genere ma non ha avuto successo:

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

Qualsiasi aiuto sarebbe buono

È stato utile?

Soluzione

ALL

ha finito per ottenere cose da lavorare

Dopo aver ottenuto SPSite site = properties.Feature.Parent as SPSite; ho scoperto che tutto ciò di cui avevo bisogno è stato aggiungere il resto dell'URL che è stato possibile essere qualcosa come "/ Newpage" al resto dell'URL poiché ho già avuto l'URL del sito completo dalle proprietà.

ha creato un metodo che è passato nel sito e il Weburl per ottenere il risultato desiderato per provvedere le pagine Web

Aggiornamento:

Ecco il codice che passa questi parametri:

Questo metodo viene utilizzato per creare la pagina

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

Quindi ho creato un altro metodo in cui ho passato i valori a tutte le pagine che volevo creare:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top