How does SPSPORTAL provision without a folder?

After seeing the templateID detail ( varkalav wanted to know since there is no SPSPORTAL folder in the 12\TEMPLATE\SiteTemplates folder, how does it map…   Here is my response:

Just follow the path that the product does.  When we load, we deserialize all of the information in the webtemp*.xml files.  This truely is the starting point for templates.  Let’s follow the path together for the item in question:

<Template Name=”SPSPORTAL” ID=”47″>
    <Configuration ID=”0″ Title=”Collaboration Portal” Type=”0″ Hidden=”FALSE” ImageUrl=”/_layouts/1033/images/template_corp_intranet.png” Description=”A starter site hierarchy for an intranet divisional portal. It includes a home page, a News site, a Site Directory, a Document Center, and a Search Center with Tabs. Typically, this site has nearly as many contributors as  readers and is used to host team sites.”
ProvisionAssembly=”Microsoft.SharePoint.Publishing, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c”  ProvisionClass=”Microsoft.SharePoint.Publishing.PortalProvisioningProvider”  ProvisionData=”SiteTemplates\\WebManifest\\PortalWebManifest.xml”
      RootWebOnly=”TRUE” DisplayCategory=”Publishing” VisibilityFeatureDependency=”97A2485F-EF4B-401f-9167-FA4FE177C6F6″>

The key item here is to notice the ProvisionData attribute.  So lets take a look at
<portal xmlns=”PortalTemplate.xsd”>
    <web name=”Home” siteDefinition=”SPS” displayName=”$Resources:spscore,PortalManifest_Home_DisplayName;” description=”$Resources:spscore,PortalManifest_Home_Description;”>

It then goes on to define the subwebs, but what you’ll see here is that the root is actually defined with the SPS site definition.  That is why you don’t see a SPSPORTAL folder–because we are using the SPS folder.  Do keep in mind however that as we have ProvisionData, we also have a ProvisionClass driving the provisioning of this definition.  So its not as simple as “we just use the SPS Site definition.  In Microsoft.SharePoint.Publishing.PortalProvisioningProvider, there is specific internal code driving many other actions that take place as a part of provisioning a SPSPORTAL site.

Comments (0)