Frage

Ich erstelle eine Site -Funktion, die eine benutzerdefinierte Masterseite im Root -Web festlegt. Ich möchte auch, dass die auf dem Root festgelegte Masterseite alle Subsites erben wird. Was ist der eleganteste Weg, um dies zu gewährleisten (mit .NET)?

(Offensichtlich konnte ich alle Subsites durchsetzen und manuell einstellen.)

War es hilfreich?

Lösung

Es gibt eine einfachere Möglichkeit, dies mit der SharePoint -API zu tun:

SPWeb web = SPContext.Current.Web;
PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
publishingWeb.CustomMasterUrl = "/_catalogs/masterpage/mycustom.master";
publishingWeb.CustomMasterUrl.SetInherit(true, true);
publishingWeb.Update();

Andere Tipps

Ich denke, das Beste, was wir tun können, ist so etwas wie die folgende Methode.

foreach (SPWeb site in siteCollection.AllWebs) 
{
  site.MasterUrl = "/_catalogs/masterpage/mycustom.master";
  site.CustomMasterUrl ="/_catalogs/masterpage/mycustom.master";
  site.Update();
  site.Dispose();
}
private void SetMaster(SPWeb web, string masterpagePath, string custommasterpagePath) 
{
    web.CustomMasterUrl = masterpagePath;
    web.MasterUrl = custommasterpagePath;
    web.Update();

    foreach(SPWeb child in web.Webs) 
    {
        try {
            SetMaster(child, masterpage, custommasterpage);
        } 
        finally
        {
            if(child != null) child.Dispose();
        }
    }
}

Nennen Sie dies an der spichte.rootweb und geben Sie den Pfad zu Ihren Master -Seiten an. Es wird über alle Websites unter diesem RootWeb in der Site -Sammlung wiederholt (dh alle!)

Beachten Sie, dass Sie möglicherweise prüfen müssen, ob die folgenden Websites verwendet werden Verschiedene Master -Seiten wie Dies kann Probleme verursachen, insbesondere bei Arbeitsbereichen, aber möglicherweise anderen.

Möglicherweise müssen Sie auch berücksichtigen Speichern Sie die ursprünglichen Master -Seitendetails in der Grundstückstasche Für das Web können Sie sie später wiederherstellen (z. B. Deaktivierung)

Und Sie möchten vielleicht Stellen Sie sicher, dass die Themen ausgeschaltet sind Und stören Sie Ihr Aussehen und Gefühl nicht.

http://msdn.microsoft.com/en-us/library/gg447066(v=office.14).aspx

Dadurch werden die Kinderessites per Event -Empfänger durch die Meisterseite der Toplevel -Website vorgestellt ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top