web development and photography
Posts tagged CMS
Drupal for education
Apr 27th
Just noticed a Drupal for Education event going on at Sun’s offices in London, on 14th May:
http://www.drupal.org.uk/event/drupal-education-may-2009/14-may-2009
The event is organised by Codepositive, Sun, and Acquia, and seems to be part of a series of ‘Drupal for…’ events. The last one I went to was Drupal for Enterprise, and was pretty useful – especially for those who didn’t know anything about Drupal and wanted to get a good overview.
Interestingly, they mention on the event page that the Open University is now using Drupal for its new Platform site:
http://www.open.ac.uk/platform/
This bills itself as a ‘virtual campus’ social networking and news site for staff, students, and alumni. They even have blogs, although they’ve seemingly gone for Drupal-based blogs rather than the WordPress MU we’ve chosen for blogs.kent.
Drupal: how to choose a CMS
Apr 19th
All content management systems try to address one basic requirement: to allow people to build and maintain a website in a way that seems familiar and largely non-technical to them.
Of course, apparent simplicity so often belies considerable complexity. A system which “just” allows people to build a website in a simple way has to cater to a range of needs from a range of users.
The great challenge for a really good CMS is to provide all the things you’re likely to need to build a website, and – crucially – provide a means for adding in things later which you haven’t even thought of yet. This isn’t trivial.
Feature Creatures
When I first started looking at CMS I found it was easy to get obsessed with lists of features. Until, that is, I realized all my lists were basically the same. I ended up asking the same questions and getting the same answers. How dull.
It’s a bit like shopping for a new car and being told by the salesperson “Hey, this car has 4 wheels, a gearstick, and this amazing new thing called a ‘brake’, which lets you slow down really fast!”. “Oooo a brake?!”, you’d say. “Wow that’d be really useful”. You get the picture.
Admittedly this was just me being a bit naive. But it’s also because the CMS world is young, and it’s still possible for salespeople to get overly enthusiastic about features which are far from amazing. Most CMS companies can provide you with a very helpful checklist with all the features in their CMS ticked off. Seriously, how useful is that?
So, after two years looking at different CMS offerings I’ve found basically three things that truly differentiate CMS: cost, quality of support, and the potential for extending the system.
The best things in life are free
Some systems cost a lot of money. Really, they do cost a lot. For the cheaper ones we’re talking the cost of a rather fast car plus thousands a year in support bills. The middling ones might set you back a small house, and the really big systems will get you a yacht in the Med. In the current economic climate one seriously has to question the return on such an investment.
Some systems are free.
Drupal is open-source and free.
We chose Drupal.
So, the obvious question follows: did we choose Drupal just because it’s open-source and free?
Well, no. (But it helped.)
Will the support be any good?
Anyone starting out in Drupal has plenty of help. If you don’t have a budget at all, you can get by with your own nouse… oh and by the way, the help of some very bright and eager people all around the world.
If you do have some budget there are also plenty of companies offering expert help and development time. The great thing is that you’ve saved a whole load of cash by going for open-source and not paying some company a licence fee to start with. You can therefore focus what money you have on getting the system set up properly, and not worrying about annual ‘top up’ fees.
Luckily at Kent we have some budget, and plenty of bright people to work on adapting Drupal to our needs. An open-source Drupal therefore made perfect sense.
The future?
In fact Drupal is so powerful it’s not really a CMS. It’s a sort of a blueprint with which web developers can easily build novel components (modules, in Drupalese) that other people can then use too. Drupal just looks like a CMS because so many people have spent so much time developing with it that the end result is a pretty good CMS.
Given enough developers around the world, you can see how modules provide a vast scope for added functionality. If there’s something you really need in your system, the chances are that someone else somewhere in the world needed it too, and has already written a module for it.
One of the really attractive things about Drupal is the scope for us at Kent to contribute back to the Drupal community, so others can benefit from work we do. The more we help build up Drupal, the more other institutions might start to use it, so the more the system improves, and more people start to use it. It’s this community aspect to open-source software which is so powerful.
Large-scale
Finally, I’d like to mention a recent shift in perceptions of Drupal towards its being a scalable, enterprise-level CMS. Originally Drupal was viewed as something which could be used for small hobby websites. You know, the sort with a single contributor which generally nobody really cared too much about.
In the last couple of years more and more very big websites have started using Drupal. One that springs to mind is Red Nose Day 2009 (http://www.rednoseday.com). They had half a million visits in two days. If you’re telling me Drupal can’t cope with large-scale deployments, what you’re really telling me is your network and/or hardware can’t cope with large-scale deployments. Drupal can cope just fine.
To add to the sense of movement, a company called Acquia was recently set up by the founder of Drupal, Dries Buytaert. Its short-term aim seems to be to make money out of Drupal support, but in the long-term it does intend to help guide the progress of Drupal into the world of large-scale, enterprise-level deployments. Whether the company will succeed or not - who knows. But the fact there there is a demand for Drupal to fill a large-scale CMS role is interesting.
Summary
Content mangement systems are numerous. Ultimately they all seem to offer very similar packages. At Kent University we’ve chosen Drupal because it’s open-source and free, and allows us great flexibility in how we build our system up. An added bonus is that we should be able to contribute our work back to the community, and benefit other like-minded institutions.
Pro Drupal Development 2nd Edition by John K. VanDyk
Apr 5th
If you want to get at all serious about taking Drupal beyond a simple installation, Pro Drupal Development is going to be a massive help to you. If you’re anything like me you’ll come back to it again and again for reference and to try out some new ideas.
It covers all kinds of development areas such as building your own modules, the form API, themes, and even best practices. All this kind of stuff can be found online, but it’s a big help to have it all clearly explained in one place. Sometimes you just need someone to guide you through the maze of options that Drupal offers.
Much of the book isn’t for the faint-hearted. You need a good working knowledge of PHP and some MySQL. Most books start you off nice and easy, but here the early chapters are very much a leap into the deep-end. There’s a certain amount of reliance on just accepting fairly esoteric Drupal stuff until it’s explained more clearly later in the book.
The book also comes with plenty of examples, which you can download for free from Apress. These really help you get your head around some of the trickier ideas (I found one or two of the examples didn’t work as described – but to be fair there are some errata by the author on the Apress site).
In summary – this book is an excellent buy if you want to take Drupal to the next level but don’t know where to start.
Using Drupal by Angela Byron
Apr 5th
Using Drupal is a great little book if you’re just starting out with Drupal, and want to know which modules could be useful for you. If you’re getting into true development stuff and want to play around with Drupal a bit more, the excellent Pro Drupal Development by John VanDyk would be a much better choice.
This book was written by members of the Lullabot team, who do Drupal consulting and development work. They really know their stuff, so you feel things they suggest in this book (like choosing module x over module y) are worth listening to.
The book itself guides you through typical scenarios you might want out of a Drupal website, like wikis, a shopping cart, workflow, multilingual sites, etc, etc. Each section has some useful tips and ideas, but doesn’t go into a massive amount of depth. So again, great if you’re just starting out and want a flavour of what’s possible.
Drupal Enterprise how-to
Oct 24th
In a couple of earlier posts I mentioned how I thought Drupal could be used as an enterprise-level CMS, at least if you were willing to change modify your definition of ‘enterprise-level’ slightly.
When thinking about deploying any CMS across a large organisation or large company, one of the things you’re going to find is that you need two key things:
- separate departments will want separate sites that they can control the content of, and maybe even the look-and-feel of
- content from all those departments will need to be aggregated in some way, and reused by other departments
It’s these requirements that enterprise-level CMS cater for really well. It’s these that Drupal can only partially answer. This is why Drupal isn’t really completely enterprise ready, yet.
However it can go a long way towards that using its little-known but powerful multi-site capability. There are plenty of blogs detailing how you can do this in any number of ways, so I won’t go into details here.
Take a look at some of my delicious bookmarks for things I found really helpful in setting up a multi-site system.
Basically, the idea is that each site in your multi-site setup has its own folder in Drupal’s sites/ folder. Something like www.mydomain.com.site1 would do. Now you have one Drupal installation, but the potential for lots of separate drupal sites.
While that does cater for a really simple single codebase setup, it doesn’t let you share things like users and logins. That’s going to be crucial for any true multisite setup, because you’ll want the same user to be able to go to different parts of your overall website without having to log in to each separately.
Luckily, Drupal has a really elegant solution to this. You can easily share tables across sites using Drupal’s database prefix system. So for example you could say that site1 will have its own tables prefixed with site1_ except it will use the user table of site2 (identified by site2_) for its user data.
This is all set in each site’s settings.php file, and requires just a few lines of code to do. Simple.
And with that, you open up a whole new world of multiple sites with single signons: the first step to an enterprise-level solution.
OK, so you don’t have truly shared content across sites yet. You may never have that, but then you may never need that. RSS feeds, simple RESTful APIs… there are all sorts of other ways of sharing content. You could even get adventurous and write your own module that treats some kinds of content types differently, putting them in shared tables rather than a site’s own set of tables.
Hooked into Drupal
Oct 23rd
In my last blog I mentioned how Drupal really does seem to offer more than just the ability to get a simple site up and running quickly.
Framework
When you look at Drupal more closely you realise one key thing: it’s not really a CMS, it’s a framework. Granted, nothing quite like Symfony in terms of its level of sophistication, but a framework nonetheless. Even a fairly modest PHP developer can therefore take what’s there and build on it in quite surprising ways. The vast array of Drupal modules is testament to that.
Hooks
That’s what makes Drupal so alluring as a CMS. It’s founded on a system of hooks: naming conventions which ensure that pieces of code you write will get called in certain pre-defined situations.
The simplest example of a hook is the menu hook. If you build your own module, all you need do is put a function in it called mymodule_menu and whatever code you put in that function will get called each time the core code builds the main site menu.
The real elegance of the system is that almost everything is built from hooks. Even stuff which looks like it’s part of the core code, like user management. Well, that’s actually a module built up using hooks. If you want to build your own slightly different user module, you don’t need to change the existing one. Just copy it, taking out the bits you need, adding in your own bits. Before you know it, you’ve got your own custom user module.
Community
The learning curve can be a little daunting at first, assuming you want to get your hands dirty with some module coding. Luckily, there are loads of excellent books (I can definitely recommend Pro Drupal Development by John VanDyk), web pages, blogs, etc around to help. Just google them, they’re out there! That’s another great strength of Drupal: the community. No matter how stuck you are, how bad things look. Chances are there’s someone out there who’s been in exactly your situation and come out the other end.
Drupal as an enterprise CMS?
Oct 23rd
I’ve been looking a lot recently at Drupal not just as an open source CMS, but as a viable enterprise level CMS. Despite my earlier misgivings I think Drupal has a lot going for it, and it may be that over the next couple of years it will become a much bigger force in the world of content management.
Months of searching for a really good open source CMS had never really come up with anything that would meet my needs:
- free/cheap
- really easy for people to create and edit content
- great support, or at least a great user community I could turn to
- highly extendable by someone with sufficient coding expertise
- able to cope with lots of separate – but related – sites from just one installation
My first thought was Drupal. So simple, so lovely… but… but that’s just for small companies and society websites, right? OK, next!
Then I found MySource Matrix (developed by Squiz, an Australian company) which did everything except point 2 (and sort of failed on points 3 and 4, but that’s another story). Then I found Alfresco, which is really a document management system. As you’d expect, it did everything except point 2 because for it, web pages are just another form of document.
I was running out of ideas. But actually, after I was forced to think about the total lack of open source enterprise CMS, I started to wonder whether I really needed all 5 of the above. Maybe I just needed the first 4, and having a massively integrated multi-site system is something which I could live without.
Hoorah! Epiphany! Yes, Drupal does do everything I want. As soon as you start to realise that, Drupal seems to fit the bill perfectly.
Even better, the more I looked at multi-site capabilities, the more I saw how Drupal does allow for this, albeit in a somewhat limited way compared with the really big, expensive commercial CMS. Don’t believe people when they say that Drupal can only do small sites. It can do far more than that. With a little imagination and tinkering around it can actually do a vast amount.
Delving deeper… I saw that there are now companies offering enterprise level SLAs for Drupal. Specifically, I found Acquia. It’s a company set up by the founder of Drupal himself – Dries Buytaert – to offer the kind of hand-holding that’s put people off Drupal in the past. OK, it’s a very new company with no track record. But the signs are good.
I think the moral to this story is: make sure you know what you’re looking for from a CMS. Don’t just assume you need the most expensive powerful beast out there. Don’t even assume you need something that fits in exactly with your organisational needs. Chances are that in most situations, your needs aren’t quite so written in stone as you might think.
CushyCMS
Aug 5th
CushyCMS is a very nice little ‘CMS’ tool/service that lets you edit content on your pages easily and simply. It’s by a small Australian startup (another Australian web company?!) called Stateless Systems.

To call it a CMS is perhaps a bit much. It’s basically a clever and lovely way for you to edit content on a static webpage via FTP, along the same lines as Contribute. Oh, so you think Contribute is a CMS, and therefore so must CushyCMS be? Well then I suggest you take a cold shower and come back after the next full moon. For the rest of us, this type of paradigm is nice for editing content, but it certainly does nothing for truly managing it.
Of course Cushy’s nothing like as complex a beast as Contribute, which is in fact a big selling point. With CushyCMS I had a basic page up and edited on my website in just a couple of minutes of logging in. Nice clean user interface, filled with healthy web2.0ness. Nothing scary for a webophobe.
You also don’t have the disadvantage of having to get a copy of all that expensive Adobe stuff, because CushyCMS is not only a web application, but it’s a free one too. There is an option to pay for a ‘pro’ version, which lets you change the design of the editing interface, and thereby fool your hapless web editor into thinking they’re really logged into your/their site when they edit content, and not the CushyCMS site. Is that worth $28 a month?
Before we get too filled with shock and awe, this system isn’t going to be the ultimate answer to CMS woes for everyone just yet. To set it up, you have to have a static page already on your site. This isn’t so much about content generation as it is about content editing.
And you have to manually edit those existing pages to contain bits of html that tell Cushy ‘this is an editable section’. Again, all very similar to Dreamweaver and Contribute. So you need a slightly web-savvy person to set up a site in the first place, and then a webophobe can edit the stuff that they need to.
Another drawback is that you’re very much reliant on their (not open source) software because all content editing is done through the web application. OK, no worse than being reliant on a desktop application that costs bundles of cash, but still… what if the site goes down, or they go out of business. You won’t lose your site, but you will lose your nice little system.
In conclusion, this is actually a very simple system which lets a web developer set up a simple static site and pass over editorial control to a non web-savvy editor. It is not a CMS in any meaningful sense of the word. But it is great at what it does.
acquia
Aug 5th
Acquia is a company set up by Dries Buytaert, the guy who developed drupal, in an apparent attempt to get drupal taken more seriously by companies and institutions. The idea seems to be that Acquia (carrying on the water theme: druppel means ‘drop’ in Flemish) will provide commercial level support for drupal.

When a company or institution is considering an piece of open source software, having good support is always going to be a Big Thing. You don’t want to base your entire system support on the temperamental lone python hacker in your institution who knows how your open source code really works.
Without this level of support, drupal has until now tended to be taken seriously only by smaller companies and groups/departments within bigger institutions, who can generally manage their own installation.
There are of course tons of companies out there who already support drupal installations, but you have to take Acquia a little more seriously if only because the company is headed by the creator of drupal. There are also other supported open source CMS: Squiz’s impressive Mysource Matrix, and companies such as Netsight who support the normally very intimidating Plone.
It’s hard to tell whether Acquia will lead to a big shift in the way drupal is used, as Acquia seems to be a relatively new venture. Interesting nonetheless, and something worth keeping an eye on at least.
Matrix GUI, asset builders (and mums)
Jun 20th
After fun and a few frustrations sorting out designs in MySource Matrix in my last post (probably mostly caused by me not knowing what I was doing, and with limited time to sort things out), I’ve been looking at the overall user interface for editors.
The interface is possibly a tad intimidating for some (could you imagine your mum using it?), but the great thing about the system is that it’s flexible enough that you can build your own very simple content edit interfaces.
Lots of buttons and flashing lights…
The thing to remember here is that MySource Matrix is a powerful system, with all kinds of features on all kinds of screens. Tickboxes, drop-downs, options, buttons all over the place. It’s great, but it’s complex. And as we all know, making something easy to use is a real trick. Just think back (if you can) to the days of video recorders that no one knew how to use because they made actually fairly simple things seem very hard to do. It’s the kind of thing companies like Apple have spent decades trying to perfect.
Actually the developers of Matrix have done a reasonable job, and in any case much of the interface is only for system administrators (like me) setting the thing up.
But if all you want to do is make a new page with some text, images, and links in it (this must be like 95% of all web pages) you don’t need or want to know about all the fancy stuff in the backend, all the different types of assets, etc, etc. You probably don’t even want to know what an asset is. You just want a nice box you can type stuff into, press a button, and away you go. You want something like wordpress with all its web 2.0 goodness.
Asset builders and simple edit
Thankfully Matrix has two features which you can get to work together to build a simple editing interface the way you want it.
The simple edit interface is basically a way of allowing users to edit a page without all that backend admin stuff. On its own it’s a nice feature, but not much use if you actually want to make a new page. Asset builders are really the other side of the coin, because they give you the flexibility to allow any user to add in whatever new assets you want them to add.
So, make a new page with asset builder. Edit it with simple edit.
I have to say that I haven’t tried getting them to work together yet. I don’t even know to what extent that’s possible. What would be nice is to be able to make a new page and edit it at the same time, then either publish it or save it for later if I don’t want it to go live. That’s what I’m doing now in wordpress. That’s what google docs does. It’s intuitive and quick. That said, I’m probably hoping for too much, because bolting something that simple onto what can often be a considerably more complex process (think workflows, nested content, etc) is a real problem.
Summary
Matrix offers a very comprehensive and rich backend interface. If you want something easier for your users you can build your own very simple frontend new page/edit interface, which is a really nice feature. Users still have to go into the admin interface to delete or move those pages, and do other fairly simple operations.
I’d love to see a friendlier backend interface to Matrix, and I have no idea if that’s planned for Matrix 4 (due out sometime next year apparently). Sprucing it up somewhat would certainly turn it into a pretty much unrivalled open source CMS.