Slides from my PHP North West 2009 talk "Building an Anti-CMS (and how it's changed our web team)" based on my experiences leading Edge Hill University's Web Services team.
1. Building an Anti-CMS (and how it’s changed our web team) Michael Nolan http://twitter.com/MikeNolan/ http://www.michaelnolan.co.uk/ http://blogs.edgehill.ac.uk/webservices/ http://joind.in/621/
21. Loremipsumdolor sit amet, consecteturadipiscingelit. Nullabibendum, urna non luctus tempus, purusurnaposuere nisi, velfeugiatorcifelis in turpis. Curabiturvenenatiseros et enimlaoreet a sollicitudinipsumhendrerit. Quisqueurnaarcu, egestasnecvarius non, consectetur vitae libero. Nullarutrummalesuadasuscipit. Donecbibendumiaculisdolor sit ametmollis. Last updated: 10 seconds ago
85. Building an Anti-CMS (and how it’s changed our web team) Michael Nolan http://twitter.com/MikeNolan/ http://www.michaelnolan.co.uk/ http://blogs.edgehill.ac.uk/webservices/ http://joind.in/621/
So a little bit of background information about me and where I work.
Not in Birmingham
We train lots of these (teachers)
And these (nurses)
corporate website
portal
student communities. And of course attending lots of meetings.
So what is an Anti-CMS?
Allow non-technical users to update content
Provide a uniform template across the site
Keep sites up to date
Whole bunch of other stuff.
Because everyone else has one! In the higher education sector, most institutions went through this process in the last five or six years. Many are now on their second or third CMS.
The reality of many CMS deployments is:
The wrong people are given access to create content
Given training on how to use the system,
not how to write for the web
CMS inhibit creativity
Slow to adapt to new technologies
Little access to internals meaning often you need to go back to the vendor for extensions
They built the /programmes website and more recently /music and it turns out we did a similar kind of thing but without knowing it and obviously not as well!
They explained how they get a domain expert to sketch their world. Ignore what the resulting website is going to look like and concentrate on real things. In their case TV or radio programmes, channels, series and so on.
Course information was a trickier proposition but fortunately around the time we were redeveloping this area of the website another project did all the hard work for us.
An XML format called XCRI-CAP defines course information for marketing purposes quite neatly and we were able to convert that into a database.
To get a little bit technical, we use a web framework called Symfony.
The Propel ORM is built into this making defining database models a piece of cake.
From these models an "admin generator" can automagically create an interface to create and manage records in the database.
Editing a few YAML configuration files and customising some templates results in a nice interface to the database.
With some test data in the database we can start to work on how the front end should work. This is often done from two directions simultaneously by developer and designer. The designer is creating Photoshop mock-ups of how these would ideally look
while the developer outputs nice, hopefully semantic HTML representing the data we want to display. Through several iterations these come together to the final working design.
Where there’s an established structured way of presenting information like a microformat
We can use that as the basis of our code so here’s an example of a vCard we can create from the database.
Which can then be styled to look pretty.
This can be a delicate balancing act. Pay too much attention to designs and you end up making horrible hacks to the code while we all know what happens when you leave a developer to design websites!
Hopefully we end up with some nice looking, usable and accessible designs for each area of the site but we can do more than this. Now that we’re managing our data in a structured way we can start to reuse it across our sites.
So as well as a central news site
we can show stories from the stakeholder magazine
or those related to a particular department on their website just a little extra coding and tagging stories correctly.
In our Anti-CMS we use tags
or more specifically machine tags to say how different types of data is linked.
We can also do things that regular CMSs do but more customised to our requirements.
So when searching for courses you can see useful details rather than a random snippet of text from the page.
Likewise event search results have things like embedded microformats. Stefan is doing a session on how Zend and Symfony can be used together and I think Lucene might be one of the things he talks about.
Recently we were able to add search as you type to course searches in just a few minutes using a jQueryplugin hooked up to a JSON feed.
The talk title also promised to tell you how it changed our web team.
Part of our approach to this is questioning whether publishing to the corporate website is the best place for everything or if a blog or an area on our extranet wiki would be a more appropriate place for their content.