Wednesday, January 30, 2008

Super CMS

I've been assigned a task by the company that I work for to set up a new wiki since the current one was a bit slow, dull, unorganized and just screaming at its visitors "Help me!" ;-)

I was tempted enough to just upgrade to the newer version since that would mean the quickest easiest path without having to manually migrate the content. Fortunately, my boss insisted that I find something where we can start over from scratch that can handle all we want and get the developers back to using the wiki as it currently sits there being idle.

I was excited to hear that I didn't have to migrate any data to any new wiki, so the search was on to find a newer, faster, better wiki (I won't mention the one we used, could be bad for them ;-) ).

We tried Deki-Wiki but it was such a hassle to install without the VMWare route. Everything had to be done manually, then a setup page had to be completed, then some more manual configuration, only to find that apache didn't want to work anymore, since Deki-Wiki has its own internal 'server'. Look DekiWiki looks fabulous (except I didn't get a chance to see what other functionality it had) and seems great but it wasn't worth the hassle.

We looked at other wikis like Media Wiki but it was too 'open' for our taste, we needed more ACL control, as in be able to set permissions or rights for viewing/editing/etc per person/group and to block content from non-registered viewers.

Then I thought: "What about CMS solutions"?
I remembered Joomla, and tried that. Already things were much better but unfortunately Joomla lacked the following, otherwise I might have considered using it:
  • Revision control
  • Group/Role rights managements (can individually set page rights but is totally inadequate)
  • General discussion boards, ie. Forums
  • Scripting ability
  • Can't block non-registered users from viewing content unless you specifically mark each page with a 'registered' right instead of a 'public' one.
There were some other points but I can't remember what they were.

It installed VERY EASILY, the admin pages were astounding and the web pages looked so wonderful, especially if you found the right skin (even on default).
I felt sorry because it looked so great, I even went to the module pages to see if some people developed some modules that could fill the gaps but I didn't find any that met the eye.

So I went to its brother system 'Drupal'. It sounds like a german (or something) name for a water drop (as to the Afrikaans term 'druppel') as the logo suggests.
Drupal looked interresting but I thought that I was just going to find some missing features yet again (and I was right... well somewhat).
I downloaded, installed (also VERY EASILY) and so far I was quite impressed. I could choose between MySQL & PostgreSQL (unlike Joomla which featured only MySQL since PHP and MySQL is well coupled).
By default, Drupal doesn't have everything we needed, so I visited the modules page to find:
  • Desired page ACL control
  • Good editor (Drupal doesn't come standard with a rich text editor)
  • Pagination tags (breaking up long articles/stories into pages via a tag)
  • Page concurrency control via a 'check out' system (not ideal but at least it will prevent 2 people from making changes to a page at the same time, unlike other wikis and CMSs)
  • And much more
Drupal comes standard with these:
  • Blogs
  • Tags
  • Forums
  • Page content (custom types too)
  • Excellent logging and monitoring
  • Adequate ACL
  • Skins
  • Modules
  • Notification (system or by clicking on a user's contact page to send that person an e-mail from the web interface)
  • Revision control (need to enable that per page)
  • Categories
  • Comments
  • News aggregation
  • Scheduled tasks (using Unix's CRON and Windows's Schedule service)
  • PHP scripting
  • Role based assignment to users
  • And so much more
Drupal comes standard with some modules as well that needs to be enabled but you can have a look at them. Since Drupal is PHP based, it already feels much faster than our current wiki and content can be nicely categorized, even in a forum.

I can't wait to start to implement this on our companies new server and to start setting things up.
I am very impressed with Drupal. If I were to rate it, I would give it 95% (since you need to install some modules that adds missing functionality, so much effort! ;-) ).

In the end, you need to find something that does what you want it to. I found Drupal and would recommend it to anyone.


EtienneK said...

I've never been a big fan of content management systems that try to do everything.

I like to use the best tools for the job.

For Blogs: Wordpress. Forums: phpbb. Wiki: Media Wiki. Etc.

The only thing I would have loved, though, is some sort of central user access mechanism. The problem with using 10 different tools at the moment is that your users have to register for each one. Not cool.

LA said...

Hi EtienneK,
I know what you mean but I like having things centralized and together.
We don't need to have all the best features, just the necessary ones. We need a centralized solution that will let the developers come to use and keep things easy to find.
Drupal can set tags all over the site, so if i need to know something about, lets say LinQ, then it might pull blog posts, forum posts, etc.
We need to gain access to necessary info easily. You what I mean?

Most systems however, are starting to implement the multi login source approach, ie. you can use a (for example) LDAP server for holding login credentials, instead of the app's database.