The Hungarian Wesnoth Community page was the first site, where I used Drupal. And it remains the first according to Drupal development too. We have a championship over there, which required some pretty complex moduls. But Drupal is the most logical content management system out there, so I thought anything will go like a breeze. Well, it didn’t.
It may seem that Drupal has less features than Joomla for example, but you only need CCK and Views to unleash the lions. CCK enables to easily click together a new custom content, but it has it’s drawbacks. Mainly that the multiple value fields aren’t handled according to their delta values but according to their content. That means if you have three fields and you want to fill out the second one, you can, but it will be uploaded as the first one, if the first one is empty. And Views falls short on complex conditions. After revealing this errors I decided to build my own modules, which (because I already had like 100 new contents) resulted in double efforts on the same job.
There had to be one form for the registration of players. The players got randomly sorted into groups and matches got established in the groups. I had to display both the groups and matches. The championship lasts only 4 months, after that the pages will be archived, so permanent content types aren’t needed at all. This kind of module went pretty smoothly, it is much better than the former CCK version was, easier to install, easier to maintain.
But the next one, where registered site members can upload their replays, was damn difficult. Here I went for the new content type, because I wanted comments and ratings etc. I needed a custom file upload method, for which the how-to wasn’t easy to find! The Drupal API doesn’t say a word about how you should validate the uploaded file, actually it is a cross solution from other form validations. Pretty hidden if you ask, found on a user blog.
Drupal’s node and hook system is incredibly logical. But as you dig deeper the well-planned hooks turn into nasty hacks which you can only figure out by yourself or by googling wild. Now I plan to migrate another site from my custom php functions to a content management system, but I have doubt if I should use Drupal or not. I even have some plans to make a new CMS in haXe. But free time is, as always a big limit…