/// <summary> /// Setup variations on a site /// </summary> /// <param name="site">The site</param> /// <param name="variationSettings">The variation settings</param> public void SetupVariations(SPSite site, VariationSettingsInfo variationSettings) { // Configure varaitions settings this.EnsureVariationsSettings(site, variationSettings); // Create labels this.EnsureVariationlabels(site, variationSettings.Labels.ToList()); // Create hierachies this.CreateHierarchies(site, variationSettings.Labels.ToList()); }
public void EnsureVariationsSettings(SPSite site, VariationSettingsInfo variationSettings) { var rootWeb = site.RootWeb; Guid varRelationshipsListId = new Guid(rootWeb.AllProperties["_VarRelationshipsListId"] as string); SPList varRelationshipsList = rootWeb.Lists[varRelationshipsListId]; SPFolder rootFolder = varRelationshipsList.RootFolder; // Automatic creation rootFolder.Properties["EnableAutoSpawnPropertyName"] = variationSettings.IsAutomaticTargetPageCreation.ToString(); // Recreate Deleted Target Page; set to false to enable recreation rootFolder.Properties["AutoSpawnStopAfterDeletePropertyName"] = (!variationSettings.IsRecreateDeletedTargetPage).ToString(); // Update Target Page Web Parts rootFolder.Properties["UpdateWebPartsPropertyName"] = variationSettings.IsUpdateTargetPageWebParts.ToString(); // Resources rootFolder.Properties["CopyResourcesPropertyName"] = variationSettings.IsCopyResourcesToTarget.ToString(); // Notification rootFolder.Properties["SendNotificationEmailPropertyName"] = variationSettings.IsSendNotificationEmail.ToString(); rootFolder.Properties["SourceVarRootWebTemplatePropertyName"] = variationSettings.SourceVariationTopLevelWebTemplate; rootFolder.Update(); SPListItem item = null; if (varRelationshipsList.Items.Count > 0) { item = varRelationshipsList.Items[0]; } else { item = varRelationshipsList.Items.Add(); item["GroupGuid"] = new Guid("F68A02C8-2DCC-4894-B67D-BBAED5A066F9"); } item["Deleted"] = false; item["ObjectID"] = rootWeb.ServerRelativeUrl; item["ParentAreaID"] = string.Empty; item.Update(); }