CMS7 programmatically create dynamic property
Haven’t used dynamic properties in a long while, but yesterday when building an external module I thought that a dynamic content reference property would be perfect for my needs.
But I wanted to create it programmatically so the deployment would only be copying of files.
I only found a blog post for CMS6. Lucky for me it wasn’t to much that differed. CMS7 code below:
private void SetupDynamicProperty(){var TabDefinitionRepository = ServiceLocator.Current.GetInstance<ITabDefinitionRepository>();var PropertyDefinitionTypeRepository = ServiceLocator.Current.GetInstance<IPropertyDefinitionTypeRepository>();var PropertyDefinitionRepository = ServiceLocator.Current.GetInstance<IPropertyDefinitionRepository>();try
{PropertyDefinition pd = new PropertyDefinition();
pd.ContentTypeID = 0; // 0 == Dynamic property
pd.Name = "YourPropertyName;
pd.EditCaption = "HandbookStartPage";
pd.Type = PropertyDefinitionTypeRepository.Load(4); // 4 == PageReference
propertyDefinitionRepository.Save(pd);}catch { }
}
For people wanting the CMS 6 solution here is the blog post mentioned above, http://blog.sigma.se/en/Development/Oskar-Zetterberg/Dates/2014/1/Create-dynamic-properties-programmatically/
One should probably be a bit careful by using Dynamic properties in new CMS 7/7.5 projects though - I have a strong impression that dynamic props will disappear in the not too distant future to be replaced by inline usage of content elements (blocks, pages, products, media, you name it).
@Arve: Im not so sure that dynamic properties will be disappear. You are probably thinking of Dynamic Content in the XHTML editor.
Hi Per,
Where can I call SetupDynamicProperty() method?
Thanks.