blogarchive

Over the last six months, I've been working on numerous projects that require me to work with extended attributes in Mura CMS. While it's easy to create them manually, creating them programatically provides even more functionality and flexibility.

  • Jan 11, 2010
  • Pat Santora
  • Developers

Over the last six months i've been working on numerous Mura CMS projects here at Blue River, and these projects often require me to work with extended attributes. While it's easy to create them manually, creating them programatically provides even more functionality and flexibility.

 

For those who are not familiar with extended attributes they allow common Mura nodes (pages, files, users, portals, etc.) to have additional fields assigned to them. This allows you to create highly structured content in Mura CMS.

Throughout the system these are referred to as subTypes (example: "Page / CustomType"). VERY nice to have whenever you might need to store more data than what Mura comes bundled with.

Now while working on a plugin project I was required to setup some extended attributes dynamically. So after I wrapped up the project I decided to push out some example code here for everyone to use.

How to build a new subType

 

<!--- create a new subType ---><cfset subType = application.classExtensionManager.getSubTypeBean() /><cfset subType.setType( "Portal" ) /><cfset subType.setSubType( "newPortalType" ) /><cfset subType.setBaseTable( "tcontent" ) /><cfset subType.setSiteID( "your siteId" ) /><!--- we load the subType in case it already exists ---><cfset subType.load() /><!--- save the subType ---><cfset subType.save() />

how to assign attributes to your "default" subType's extend set

<!--- get the default extend set. this is automatically created for every subType ---><cfset extendSet = subType.getExtendSetByName( "Default" ) /><!--- create a new attribute for the "default" extend set ---><!--- Note that AutoApprove does not exist yet, but getAttributeBy Name will look for it and if not found give me a new bean to use ---><cfset attribute = extendSet.getAttributeByName( "AutoApprove" ) /><cfset attribute.setLabel( "Auto Approve Topics" ) /><cfset attribute.setType( "RadioGroup" ) /><cfset attribute.setOptionList( "Yes^No" ) /><cfset attribute.setOptionLabelList( "Yes^No" ) /><cfset attribute.setDefaultValue( "Yes" ) /><!--- save the attribute ---><cfset attribute.save() />

That's it! Having the ability to manipulate extended attributes can be quite powerful, so be careful and have fun!

----------------------------------

Pat Santora
Team Blue River

Developers

Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Michael Evangelista
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Michael Evangelista
Blog Post
By Michael Evangelista
Blog Post
By Grant Shepert
Blog Post
By Matt Levine
Blog Post
By The Mura Team
Blog Post
By Pat Santora
Blog Post
By Pat Santora
Blog Post
By Matt Levine
Blog Post
By Matt Levine
Blog Post
By Matt Levine
Blog Post
By Eddie Ballisty
Blog Post
By Sean Schroeder
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert
Blog Post
By Grant Shepert

Marketers

Blog Post
By Andrew Medal
Blog Post
Blog Post
By Ronnie Duke
Blog Post
By Sean Schroeder