Extensible and easy to customize

Fully extensible, via code and/or the Mura adminstrator

Developers have complete control over key Mura functionality within each site deployed within a Mura instance.  Located in each site's includes directory you will find local instances of key classes that can be used to override default Mura behaviors. Because your code is overriding the base functionality, but not replacing the core files, you get customization without making future Mura upgrades a hassle.

In the class extension manager (part of the Mura administrator) you are able to define sub types that extend the primary content types that Mura provides. These new extended attributes can then be further refined while in the administrator  and easily integrated into templates and site functionality. You can call these new attributes like this:  #request.contentBean.getExtendedAttribute("MyCustumVar")#, and work with them as you like.

Framework-friendly

One of the advantages of Mura is its ability to provide a solid base of functionality while at the same time getting out of your way as a developer. It was built with the sub-application in mind - it is incredibly easy to port in most front controller applications (Mura is especially fond of ModelGlue and Fusebox). Just put your custom app into the right directory, then use the built-in Mura tag to include your sub-application. [mura ]dspInclude('display_objects/customModelGlueApp/index.cfm')[/mura ] Integration complete.

Mura tag

The Mura tag is a unique and powerful feature that allows you to easily add dynamic content to a page or component within your site's WYSIWYG editor.  The Mura tag takes any single expression, and allows you to freely intermingle traditional CMS content with CFML data or functionality. You can simply call functions like this: [mura ]dateFormat(now(),'m/d/yy')[/mura ], or [mura ]createObject('component','myPath.myComponent').init()[/mura ], and you're set.

* If you use these example code snippets, be sure to remove the spaces inside the tags first.