Why it was Built
Roddeh CMS was built with the objective of simplifying the task of providing a CMS solution for flash websites.
A typical CMS is designed to manage HTML based websites. Integrating a flash website with such CMS solutions typically requires a large effort from both flash developers and a developer to setup the CMS, prepare webservices etc. Roddeh CMS was designed to absorb this effort.
Features
Roddeh CMS allows administers to modify complex data and manage media in a simple interface.
Modeling Data
The following concepts are supported when modeling data.
- Classes/Data Types.
- Singleton Classes/Data Types.
- Multiple levels of inheritance for Classes/Data Types.
- Abstract Classes/Data Types.
- References between instances of Classes/Data Types.
The following simple types are supported for modeling the properties of a Class/Data Type.
- string
- int
- float
- boolean
- array
- object
Uploading Media
Site administrators are able to upload media to folders that have been defined by the flash developer that setup the site CMS.
Multiple Environments
A flash developer can easily define several environments so a site administrator can preview their changes before they are published to the world. The site administrator can then move content between environments without having to manually copy and paste their changes which often leads to human error. Environments can also be used in this fashion to archive old content that may be retrieved at a later date.
Versioning of Content
As site content is updated previous versions are automatically saved allowing the site administrator to roll back to older versions.
No Databases
Roddeh CMS does not use any databases to store data or metadata of any sort. No need to engage a backend developer with database experience.
No Webservices
Due to the nature of how Roddeh CMS stores its data no webservice development is required in order to transfer the data from the webserver to the flash website. All the content of the site is stored in static JSON files. This content is downloaded by the flash website, interpreted based on the definition files and the objects are reconstructed in memory. All of this is done for the flash developer by a library of classes provided with Roddeh CMS.
Code Generation
Typically a flash developer would need to write the model classes for their website. Roddeh CMS has a feature that will generate all the model classes based on the definition files and then bind them to the data that is downloaded from the CMS making integration pain free.
How it Works
Roddeh CMS uses JSON (Javascript Object Notation, more info here) to store, transmit, define and transform data. JSON is a format that allows for modeling of complex data structures that are easily consumed by Object Oriented languages like Flash/Actionscript.
Definitions
Roddeh CMS uses definition files written in JSON to describe the data to be stored. A definition file lists all the properties/fields that are associated with that type of data. The following is an example definition file that could be used to model a book.
{
"singleton":false,
"abstract":false,
"properties":{
"title":{
"type":"string",
"maxLength":50
},
"author":{
"type":"string",
"maxLength":50
}
"price":{
"type":"float"
},
"image":{
"type":"string"
},
"inStock":{
"type":"boolean"
}
}
}
Transforms
Transforms are used to instruct the CMS interface on how the data will be manipulated through forms. The corresponding transform for the above definition is given as an example below.
{
"properties":[
{
"name":"title",
"label":"Title",
"control":"TextInput"
},
{
"name":"author",
"label":"Title",
"control":"TextInput"
},
{
"name":"price",
"label":"Price",
"control":"TextInput"
},
{
"name":"image",
"label":"Image",
"control":"FilePicker"
},
{
"name":"inStock",
"label":"In Stock",
"control":"CheckBox"
}
]
}
Bringing it Together
The CMS interface uses the definition and the transform to understand the type of data that it is dealing with. It can then generate a form in Flex that is used to manipulate that data. This process is illustrated in the diagram below:

Requirements
Server requirements
- Webserver (Apache, IIS, etc)
- Php 5.2+
Client requirements
- A web browser
- Flash 9+