Putting you in the driving seat
We maintain a belief that the best approach to building a modern website is to use a standard CMS. A good CMS not only allows the client to update and manage their own website, but also to significantly reduce the build cycle for developing a new site. We wanted a system that would have the following features:
- Store highly structured data.
- Complete separation of content and styling.
- Export and process XML/XSLT.
- Have advanced image and media handling capabilities.
- Make use of modern web technologies such as AJAX.
There are lots of content mangement systems around, but none of them fitted our requirements. So in mid 2005 we started work on Vertigo. Developed in PHP5 with up-to-date methodologies such as MVC and making extensive use of AJAX, Vertigo has the flexibility to provide a wide range of website solutions - from simple online portfolios to more sophisticated sites such as travel agencies.
System Overview
Configuration File
This provides Vertigo with the data model for the website. It consists of an entity relationship model mapped to a hierarchical structure (to make visual representation clearer); attribute names and types for each entity; exporting instructions for complex attributes such as images.
Data Store
Using the structure configuration file Vertigo builds the data model in a database, typically MySQL. All content added via the Admin interface is stored here.
Admin Interface
This provides the front end to adding, editing, managing and publishing content.
Exported Data Files
Each time you save a change using the admin interface, Vertigo updates the data store and then exports any updated content and images.
Web Page Assembler
This builds the requested webpage by applying custom-built XSLT templates to the exported data files. The neat feature about this is that it isn't reliant on the presence of Vertigo. This allows you to host the live site on a different server to the content management system. To bridge the gap we have a tool called Site Sync, which enables content to be synchronised between servers.
