Variations without Custom Site Definitions

If you are going to create custom content types and custom layout pages, then for Variations (multilingual sites in MOSS07) to work, you currently are required to create custom site definitions with your custom content types built in.

The reason for this is that when Variations creates a new site or sub-site, it uses the Site Definition that was used for the original root site. So if you created the original root site using the Publishing Site Definition with it's standard welcome page, your new variation will be created with that Site Definition. But then there are two problems. The Pages library is not enabled for any of your custom content types. And probably you created a new welcome page with a custom layout page built on a custom content type, and the one created by Variations will be the OOB welcome page. Thus errors are thrown, pages show up blank, no content appears to be propagated.

Again, the preferred process with a new Publishing/Variations site is to build out an initial version of the new site. Define all the content types in the UI, create layout pages in SharePoint Designer based on those content types. Then have your users use it, provide feedback, and do as many iterations until everything is just right, and then turn around and build the custom site definitions with your now perfectly designed content types.

But a recent client of mine could not possibly do this. Because the site had to be up on such and such a date, there wasn't time to build custom site definitions much less have the custom content types completely defined in advance.

We built the site, it went live on time, and then after the fact I tried to figure out if I could get Variations to still work.

And what I found is that:

  1. When you create a new Label, set Hierarchy Creation to create the "Publishing Sites Only" - no pages
  2. After the sites have been created, rename the old welcome page (to default2.aspx for instance)
  3. Then make a change on the home page of the site so that a new version will propagate (this appears to both add the custom content type to the Pages library, and add the custom page)
  4. After propagation, go and delete the old welcome page out of the library (may need to repoint the Welcome Page to your new page first)
  5. Now all other pages within that site will propagate correctly
  6. repeat for each site in the site site collection

Only just at the beginning of testing this work around, but so far everything appears to work fine.

Unfortunately one has to do this every time a new site is added, but then -- hopefully there will be a fix for this whole issue coming before too long...