PublishingWeb.IsAllowingAllPageLayouts Property
Gets a Boolean value that indicates whether the available PageLayout objects that are returned by the GetAvailablePageLayouts method are the complete set of page layouts.
Namespace: Microsoft.SharePoint.Publishing
Assembly: Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)
Syntax
'Declaration
Public ReadOnly Property IsAllowingAllPageLayouts As Boolean
Get
'Usage
Dim instance As PublishingWeb
Dim value As Boolean
value = instance.IsAllowingAllPageLayouts
public bool IsAllowingAllPageLayouts { get; }
Property Value
Type: System.Boolean
Set to True if the available PageLayout objects for this PublishingWeb is the complete set; otherwise, it is set to False.
Examples
This sample restricts the set of available page layouts used for creating pages in a publishing Web so that only page layouts associated with a specified content type are available.
Before using this sample, verify that the associatedContentTypeId parameter is from a content type on the root Web of the site.
[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 RestrictPageLayoutsByContentType(
PublishingWeb publishingWeb,
SPContentTypeId associatedContentTypeId)
{
// TODO: Replace these variable values and input parameters with your own values.
bool excludeHiddenLayouts = true;
bool resetAllSubsitesToInherit = true;
// Validate the input parameters.
if (null == publishingWeb)
{
throw new System.ArgumentNullException("publishingWeb");
}
SPSite site = publishingWeb.Web.Site;
PublishingSite publishingSite = new PublishingSite(site);
// Retrieve a collection of all page layouts in the site collection
// that match the content type.
SPContentType associatedContentType = publishingSite.ContentTypes[associatedContentTypeId];
if (null == associatedContentType)
{
throw new System.ArgumentException(
"The SPContentTypeId did not match an SPContentType in the SPSite.RootWeb",
"associatedContentTypeId");
}
PageLayoutCollection pageLayoutsByContentType =
publishingSite.GetPageLayouts(associatedContentType, excludeHiddenLayouts);
// Update the Web to use these page layouts when creating pages.
publishingWeb.SetAvailablePageLayouts(
pageLayoutsByContentType.ToArray(),
resetAllSubsitesToInherit);
publishingWeb.Update();
// Verify the expected results. Note: This is not required. It demonstrates
// the results of calling the SetAvailablePageLayouts method.
//
System.Diagnostics.Debug.Assert(!publishingWeb.IsAllowingAllPageLayouts);
System.Diagnostics.Debug.Assert(!publishingWeb.IsInheritingAvailablePageLayouts);
PageLayout[] availablePageLayouts = publishingWeb.GetAvailablePageLayouts();
foreach (PageLayout pageLayout in availablePageLayouts)
{
System.Diagnostics.Debug.Assert(
pageLayout.AssociatedContentType.Id == associatedContentTypeId);
}
}
}
}
See Also
Reference
Microsoft.SharePoint.Publishing Namespace
IsInheritingAvailablePageLayouts
[:Microsoft.SharePoint.Publishing.PublishingWeb.InheritAvailablePageLayouts]