Wednesday, May 21, 2008

PublishingFeatureHandler

Feature ID 22A9EF51-737B-4ff2-9346-694633FE4416

In lack of documentation on this feature and the properties it contains, I did some reflection on the class. But the inner workings of the class is obfuscated and therefore I was only able to get the properties declared as constants. I have not tested all of the properties, so I actually do not know if they will work.

Properties in the PublishingFeatureHandler feature that you are enable to set in the ONET.XML

Like this...

<!-- Publishing feature -->
<Feature ID="22A9EF51-737B-4ff2-9346-694633FE4416">
<Properties xmlns="http://schemas.microsoft.com/sharepoint/">
<Property Key="WelcomePageUrl" Value="$Resources:cmscore,List_Pages_UrlName;/Default.aspx" />
<Property Key="PagesListUrl" Value=""/>
<Property Key="AvailableWebTemplates" Value=""/>
<Property Key="AvailablePageLayouts" Value=""/>
<Property Key="SimplePublishing" Value="true" />
...
</Properties>
</Feature>

PublishingFeatureHandler properties

NameTypeDefault value Simple publishingDefault value Complex publishingDescription
AlternateCssUrlstringnullnull

Add the css file to the application pages resided in the layouts folder.
Syntax format: ~SiteCollection/Style Library/mycustom.css

AvailablePageLayoutsstringnullnull

Syntax format: ~SiteCollection/<pagelayout path1>:~SiteCollection/<pagelayout path2>:~SiteCollection/<pagelayout path3>Example..:
~SiteCollection/_catalogs/masterpage/mypage1.aspx: ~SiteCollection/_catalogs/masterpage/mypage2.aspx: ~SiteCollection/_catalogs/masterpage/mypage3.aspx
Use the : colon as the separator.

AvailableWebTemplatesstringnullnull

AvailableWebTemplates Key Format is:LCID-[sitetemplatename][#sitetemplatenumber];LCID-[sitetemplatename][#sitetemplatenumber];LCID-[sitetemplatename][#sitetemplatenumber]
Example: 1033-BLANKINTERNET#1;1049- BLANKINTERNET #1;*- BLANKINTERNET #2;*-BLANKINTERNET#2

ChromeMasterUrlstringnullnullSyntax format:
~SiteCollection/_catalogs/masterpage/mycustom.master
EnableApprovalWorkflowOnDocumentsboolfalsetrue
EnableApprovalWorkflowOnImagesboolfalsetrue
EnableApprovalWorkflowOnPagesboolfalsetrue
EnableModerationOnDocumentsboolfalsetrue
EnableModerationOnImagesboolfalsetrue
EnableModerationOnPagesboolfalsetrue
EnableSchedulingOnDocumentsboolfalsetrue
EnableSchedulingOnImagesboolfalsetrue
EnableSchedulingOnPagesboolfalsetrue
MigrationOverrideboolfalsefalse
PagesListUrlstringnullnull
RequireCheckoutOnDocumentsboolfalsetrue
RequireCheckoutOnImagesboolfalsetrue
RequireCheckoutOnPagesboolfalsetrue
SimplePublishingboolIf not defined, the default value is true. Specifies the setup with simple or complex publishing configurations.

VersioningOnDocuments

VersioningSettingsMajorMajorAndMinor

Possible values for VersioningSettings is: Major, MajorAndMinor, None

VersioningOnImagesVersioningSettingsMajorMajorAndMinor
VersioningOnPagesVersioningSettingsMajorAndMinorMajorAndMinor
WelcomePageUrlstringnullnull

Defines the page that will act as the startup page.

Example: $Resources:cmscore,List_Pages_UrlName;/default.aspx


9 comments:

Anonymous said...

Your post is very helpfull!!!

I could set the SimplePublishing on and off, because there was a sample in onet.xml for BLANKINTERNET. However I had absolutely no idea how to set the versioning settings of the images or pages library.

I have tried the followings and it worked perfectl!

Property Key="SimplePublishing" Value="true"

Property Key="VersioningOnImages" Value="None"

Anonymous said...

Great Post - but there seems to be a small error

At AvailablePageLayouts and AvailableWebTemplates you mixed the description

Carsten Keutmann said...

Lol... I missed that..
The description on AvailablePageLayouts and AvailableWebTemplates are now fixed. :D

Anonymous said...

To Carsten:

I am experimenting with those settings for a while, but one thing that I could not found is the "Optionally limit the number of versions to retain; Keep the following number of major versions: " setting.
Could you please advice on how to set that one?

Kelsey-Seybold Clinic said...
This comment has been removed by the author.
Unknown said...

Well, I thought I found the holy grail when I stumbled across this article but it didn't have what I was looking for. Anyhow I figured it out so since you seem to be the only one wanting to keep a list of available properties for the publishing feature here is another to add to your list. It has been tested as well in Sharepoint 2010 and works great. There is a DefaultPageLayout property and the value is [~SiteCollection/_catalogs/masterpage/PageLayoutName.aspx]. This will assure that the inherit from parent site setting isn't selected and will set the default layout you specify in the property. Good work, I will definitely bookmark this page.

Abdullah Hazeb said...

thank you very much, it is very helpfull

But I could not use

VersioningOnPages as Major
and
EnableApprovalWorkflowOnPages as true

where I need this case

web designing company said...

Thanks for this blog sharing with a good information..nice to read here and have some useful points from this blog.

Anonymous said...

When you use EnableSchedulingOnPages="true"
ModcerationOnPages is default set to true also in pages list