Skip to content

Instantly share code, notes, and snippets.

@dougludlow
Created August 6, 2013 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dougludlow/d1c595c3afece82003fd to your computer and use it in GitHub Desktop.
Save dougludlow/d1c595c3afece82003fd to your computer and use it in GitHub Desktop.
Programmatically add a list of properties to a document type in Umbraco. In this case, add the sidebar tab and properties.
var dt = DocumentType.GetByAlias("Test");
var sidebar = new DataTypeDefinition(1424);
var note = new DataTypeDefinition(1485);
var picker = new DataTypeDefinition(1034);
var trueFalse = new DataTypeDefinition(-49);
var textString = new DataTypeDefinition(-88);
var list = new List<Tuple<DataTypeDefinition, string, string>> {
new Tuple<DataTypeDefinition, string, string>(trueFalse, "sidebarEnabled", "Enable Sidebar"),
new Tuple<DataTypeDefinition, string, string>(note, "sidebarNote", "Sidebar Note"),
new Tuple<DataTypeDefinition, string, string>(picker, "sidebarNode", "Use Sidebar From Another Page"),
new Tuple<DataTypeDefinition, string, string>(textString, "sidebarTitle1", "Title"),
new Tuple<DataTypeDefinition, string, string>(sidebar, "sidebar1", "Items"),
new Tuple<DataTypeDefinition, string, string>(textString, "sidebarTitle2", "Title"),
new Tuple<DataTypeDefinition, string, string>(sidebar, "sidebar2", "Items"),
new Tuple<DataTypeDefinition, string, string>(textString, "sidebarTitle3", "Title"),
new Tuple<DataTypeDefinition, string, string>(sidebar, "sidebar3", "Items")
};
var tab = dt.getVirtualTabs.FirstOrDefault(t => t.Caption == "Sidebar");
if (tab == null)
{
dt.AddVirtualTab("Sidebar");
dt.Save();
tab = dt.getVirtualTabs.FirstOrDefault(t => t.Caption == "Sidebar");
}
foreach (var item in list)
{
var pt = dt.getPropertyType(item.Item2) ?? dt.AddPropertyType(item.Item1, item.Item2, item.Item3);
pt.TabId = tab.Id;
pt.Save();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment