Question

Je crée une fonction qui définit le site recepteur une page maître personnalisée sur le Web racine. Je voudrais aussi que la page principale ensemble sur la racine d'être Hériter à tous les sous-sites. Quelle est la manière la plus élégante pour en assurer (en utilisant .NET)?

(Il est évident que je pouvais parcourir toutes les sous-sites et définir manuellement ..)

Était-ce utile?

La solution

Il un moyen plus facile de le faire en utilisant l'API SharePoint:

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

Autres conseils

Je pense que le mieux que nous puissions faire est quelque chose comme ce qui suit dans la méthode FeatureActivated.

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

Appelez ce passage du SPSite.RootWeb, et en spécifiant le chemin d'accès à vos pages maître. Il va récursion sur tous les sites ci-dessous qui rootweb dans la collection de sites (par exemple tous!)

Notez que vous devrez peut-être examiner si les sites ci-dessous l'utilisation différentes pages de maître comme cela peut causer des problèmes , en particulier avec la réunion Workspaces, mais peut-être d'autres.

Vous pouvez aussi avoir besoin de considérer assurez-vous que les thèmes sont désactivés et ne pas interférer avec votre apparence.

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

Cette disposition de la volonté childsites par récepteur d'événements en prenant site toplevel masterpage ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top