Share via


PublishingWeb.InheritAvailableWebTemplates Method

Available Web templates that are associated with this PublishingWeb object and that are inherited from the parent PublishingWeb class.

Namespace:  Microsoft.SharePoint.Publishing
Assembly:  Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)

Syntax

'Declaration
Public Sub InheritAvailableWebTemplates
'Usage
Dim instance As PublishingWeb

instance.InheritAvailableWebTemplates()
public void InheritAvailableWebTemplates()

Exceptions

Exception Condition
[System.InvalidOperationException]

The root site cannot inherit properties.

Remarks

After calling this method, the GetAvailableWebTemplates() method returns the same set of Web templates that are specified in the parent PublishingWeb class. The IsInheritingAvailableWebTemplatesproperty is True. The IsAllowingAllWebTemplates property returns the same value as the parent PublishingWeb class.

Calling this method on the root site is not supported and results in an error.

Examples

This sample demonstrates setting and saving property values on a publishing Web. Before building and running this sample, verify that Publishing feature has been enabled for the SPWeb, and that the defaultPageFileId is SPFile.UniqueId for the new default page.

[c#]

using SPContentTypeId = Microsoft.SharePoint.SPContentTypeId;
using SPContentType = Microsoft.SharePoint.SPContentType;
using SPSite = Microsoft.SharePoint.SPSite;
using SPFile = Microsoft.SharePoint.SPFile;
using SPWeb = Microsoft.SharePoint.SPWeb;
using PublishingSite = Microsoft.SharePoint.Publishing.PublishingSite;
using PublishingWeb = Microsoft.SharePoint.Publishing.PublishingWeb;
using PageLayoutCollection = Microsoft.SharePoint.Publishing.PageLayoutCollection;
using PageLayout = Microsoft.SharePoint.Publishing.PageLayout;

namespace Microsoft.SDK.SharePointServer.Samples
{
    public static class PublishingWebCodeSamples
    {
        public static void SetPublishingWebProperties(SPWeb web, System.Guid defaultPageFileId)
        {
            // TODO: Replace these variable values and input parameters
            // with your own values.
            string newTitle = "your Title";                     // new PublishingWeb.Title value
            string newDescription = "your Description";         // new PublishingWeb.Description value
            bool resetInheritPageLayouts = true;                // new PublishingWeb.IsInheritingAvailablePageLayouts value
            bool resetInheritWebTemplates = true;               // new PublishingWeb.IsInheritingAvailableWebTemplates value

            // Validate the input parameters.
            if (null == web)
            {
                throw new System.ArgumentNullException("web");
            }

            // Get the PublishingWeb wrapper for the SPWeb 
            // that was passed in.
            PublishingWeb publishingWeb = null;
            if (PublishingWeb.IsPublishingWeb(web))
            {
                publishingWeb = PublishingWeb.GetPublishingWeb(web);
            }
            else
            {
                throw new System.ArgumentException("The SPWeb must be a PublishingWeb", "web");
            }

            //  Retrieve the SPFile.
            SPFile newDefaultPageFile = publishingWeb.Web.GetFile(defaultPageFileId);
            if( (null == newDefaultPageFile) ||
                !newDefaultPageFile.Exists )
            {
                throw new System.ArgumentException(
                    "The Guid does not match an SPFile on the SPWeb",
                    "defaultPageFileId");
            }

            // Set new values on the PublishingWeb.
            publishingWeb.Title = newTitle;
            publishingWeb.Description = newDescription;
            publishingWeb.DefaultPage = newDefaultPageFile;
            if( resetInheritPageLayouts && 
                !publishingWeb.IsInheritingAvailablePageLayouts  &&
                !publishingWeb.IsRoot)
            {
                publishingWeb.InheritAvailablePageLayouts();
                System.Diagnostics.Debug.Assert(publishingWeb.IsInheritingAvailablePageLayouts);
            }
            if (resetInheritWebTemplates && 
                !publishingWeb.IsInheritingAvailableWebTemplates &&
                !publishingWeb.IsRoot)
            {
                publishingWeb.InheritAvailableWebTemplates();
                System.Diagnostics.Debug.Assert(publishingWeb.IsInheritingAvailableWebTemplates);
            }

            // Save the new values on the PublishingWeb.
            publishingWeb.Update();
        }
    }
}

See Also

Reference

PublishingWeb Class

PublishingWeb Members

Microsoft.SharePoint.Publishing Namespace

GetAvailableWebTemplates

GetAvailableCrossLanguageWebTemplates

AllowAllWebTemplates

InheritAvailableWebTemplates

SetAvailableWebTemplates

SetAvailableCrossLanguageWebTemplates

Update