Per Nergård
Jul 20, 2014
  4198
(3 votes)

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 { }
}
Jul 20, 2014

Comments

Oskar Zetterberg
Oskar Zetterberg Jul 29, 2014 10:14 AM

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/

Arve Systad
Arve Systad Aug 4, 2014 12:49 PM

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).

Aug 11, 2014 03:12 PM

@Arve: Im not so sure that dynamic properties will be disappear. You are probably thinking of Dynamic Content in the XHTML editor.

Marc Erickson Legaspi
Marc Erickson Legaspi Apr 15, 2015 10:53 AM

Hi Per,

Where can I call SetupDynamicProperty() method?

Thanks.

Please login to comment.
Latest blogs
Optimizely SaaS CMS Content Types

In Optimizely CMS, there are many base content types you can define through code, such as component, image, video, folder, and sections. But today,...

Patrick Lam | Jul 29, 2024

Opti ID overview

Opti ID allows you to log in once and switch between Optimizely products using Okta, Entra ID, or a local account. You can also manage all your use...

K Khan | Jul 26, 2024

Getting Started with Optimizely SaaS using Next.js Starter App - Extend a component - Part 3

This is the final part of our Optimizely SaaS CMS proof-of-concept (POC) blog series. In this post, we'll dive into extending a component within th...

Raghavendra Murthy | Jul 23, 2024 | Syndicated blog

Optimizely Graph – Faceting with Geta Categories

Overview As Optimizely Graph (and Content Cloud SaaS) makes its global debut, it is known that there are going to be some bugs and quirks. One of t...

Eric Markson | Jul 22, 2024 | Syndicated blog