Code Snippet
<some function wrapper>
SPWeb newHomeWeb;
try
{
// create new Home website
newHomeWeb = topLevelSiteWeb.Webs.Add("HomeA", "Home A",
"this is the site's description",
Convert.ToUInt32(1033), "Home.stp",
false, false);
// don't inherit the parent's top link bar
newHomeWeb.Navigation.UseShared = false;
}
catch
{
// error logic
return false;
}
// get reference to the new Home's webs collection,
// so we can Add to it
SPWebCollection subSites = newHomeWeb.Webs;
// create Sub1 subsite
if (!CreateSubWeb(newHomeWeb, subSites, "sub1", "Sub 1", "",
"Sub1.stp", false, false, true, true))
{
// error logic
return false;
}
// create Sub2 subsite
if (!CreateSubWeb(newHomeWeb, subSites, "sub2", "Sub 2", "",
"Sub2.stp", false, false, true, true))
{
// error logic
return false;
}
return true;
</some function wrapper>
private bool CreateSubWeb(SPWeb HomeSite, SPWebCollection colSubSites,
string sWebPath, string sWebTitle,
string sWebDescription, string sTemplateName,
bool bUseUniquePermissions, bool bConvertExisting,
bool bUseShared, bool bAddToTopLinkBar)
{
try
{
SPWeb newWeb = colSubSites.Add(sWebPath, sWebTitle, sWebDescription,
Convert.ToUInt32(1033), sTemplateName,
bUseUniquePermissions, bConvertExisting);
newWeb.Navigation.UseShared = bUseShared;
if (bAddToTopLinkBar)
{
//add new subsite to the Top Link Bar (tabs) of the parent site
SPNavigationNodeCollection topNavLinks = HomeSite.Navigation.TopNavigationBar;
SPNavigationNode newTopLink = new SPNavigationNode(sWebTitle,
newWeb.ServerRelativeUrl + "/default.aspx",
false);
topNavLinks.AddAsLast(newTopLink);
HomeSite.Update();
newTopLink = null;
}
return true;
}
catch
{
return false;
}
}