Drupal Experiences

This documents some things I've discovered about bringing up a web site which uses a Drupal CMS. In late Spring 2008 I began creating archives.deepspring.org, a site dedicated to archives of material from DeepSpring.org.

I must admit I'm not much of a fan of a Content Management System (CMS), at least not when it comes to me installing and designing a site with one. They are very complex things to manage, but of course they do many complex functions. I guess I'm just not a very complex fellow and that's why I invented SWS.

Anyway, as we reviewed the future needs for the proposed site, it became obvious that we needed a CMS. The question was which one. I spent lots of time trying out various CMS. It was not a pleasant experience. Most were almost impossible to figure out how to manage: How to make a simple menu? How to even create a page in some cases. There are a million bad ways to do these common simple tasks. Finally, I found CMSMatrix.Org. Who would have ever guessed there were so many CMS out there?

Looking at all the features, we chose a few candidates and settled on Drupal. I guess it was a good choice. I was immediately drawn to Drupal because it had concepts like 'menu' and a 'page' and you actually used these terms when creating menus and pages. (I'm only exaggerating a little here to suggest other CMS used bewildering terms for these.) In short I thought I had a reasonable chance to figure out how to manage a Drupal CMS. So far, it's a mixed bag, as you can see here:

  • content type book - I had a number of online books to add to the site. These were 10-50+ chapters long. Experimenting with the Drupal book I see that as you add each child page, Drupal automatically generated previous, top and next links for each. Great, just what I was looking for. Imagine my surprise to discover that you can only have eight pages in a book. Read the details here.

  • version 6 versus version 5 - I chose to use Drupal 6 because it was the latest release, so it seemed foolish to make a Drupal 5 site and then be faced with converting to 6 in a year or two. Drupal comes with a bewildering set of modules. It's good in that you have lots of choices, bad because many times a new person can't tell one from another. A really good thing about Drupal is that you can't add a module designed for release 6 to a non-release 6 Drupal. Good job, Drupal folks! The disappointing side for me was that while I searched for tools to help me manage the site, there were not a large set of modules available for release 6. This is improving, of course, but not in time for me. My bad luck really.

  • creating menus - the process to create a menu is reasonably straightforward (Home -> Administer -> Site building -> Navigation). This gives you a page of all the menus, their heirarchy and links to edit, modify or even delete the menu item. Great! It also has this amazing Javascript feature which provides handles on each menu item to allow you to drag the menu items around to put them in the order you want. Very slick.

    It is also very very slow. Maybe it was my browser, but rendering this Javascript magic would take 10-40 seconds. If I want to rearrange 10 menus, that's great. If I want to simply 'Add Item' (create a new menu item), it's all a complete waste of my time. Adding lots and lots of menu items is tedious beyond belief. I desperately wanted an API to create menu items in a batch mode (two, ten or 100 at a time). In fact how about exporting the menus into a simple ASCII file and let me edit it, easily adding my new ones, and then import the file. This is exactly what I did in FormEntry. Gosh, managing menus is a pain!

  • loading pages - the process to create a new page is very straightforward (Create Content -> Page). Fill in a few fields, copy/paste the HTML in place and save it. Don't forget to figure out the number of node that was created (passing your cursor over a link will show you it). Write it down somewhere, as you'll need this when creating a link or menu for the page. Do this 500 times and your grandchildren will be ready to read the site when you're done!

In my struggle to deal with some of these surprises in Drupal 6, I've come up with some tricks (more like hacks) to help in converting an existing site to Drupal. I do pretend that these are finished solutions in the least, but perhaps someone in the Drupal development group will see a nugget here and add a nicely designed module to solve the problems I was trying to get around. If nothing else, maybe someone else can build on this to help them with a similar problem.