I've implemented it using Drupal, for the user front-end, and that raised a lot of questions. Many people asked me, "why Drupal and not Joomla!" and "you're using a CMS, what's the difference between Drupal and the others".
So, I've decided to write a bit about the Trocaqui project and why Drupal.
When I started the project, I've (obviously) evaluated some options, writing from scratch, using a framework, using a CMS, etc.. I did not wish to code it from scratch nor to use some framework that would left all the hard work to me. I already knew Mambo, Joomla! and Drupal. From those I've used Mambo, which I've dropped in favor of Joomla!, since it is like the natural evolution of Mambo.
After some analysis, I've came to the point where it was either Joomla! or Drupal. I grabbed them both and perform some tests to see which would respond best to my main requirements:
- Translatable (i18n for Portuguese)
- Easy to use for the end user
- Extensible
- Expandable
- Forum support
- Image management support
- Flexible and easy user access configuration setup
- Easily costumizable
Joomla! is ready to be used just out-of-the-box. It allows one to manage text and images, it comes with a WYSIWYG text editor and is quite easy to understand. Almost everything is where one expects it to be. So, finding an option and using it is straightforward.
On the other hand, Drupal is not so usable out-of-the-box. It just supports text and doesn't came with an WYSIWYG editor.
So, some additional modules were necessary in order to expand Drupal to support my needs.
When it comes to module/plugin installation, in Drupal it is totally manual, so are the upgrades.
One has to uncompressed the file contents into a specific directory, the go to the modules section in the administration menu to activate it. Then one has to configure it.
Sometimes this is not as easy as it seems and some technical background is required in order to setup things correctly.
Drupal does not come with a WYSIWYG text editor.
Since I needed a rich text editor, I had to test editors before selecting one that worked as I needed. It was a bit painful because I had to test some and that took more time than I was initially expecting.
Drupal does not come with an image module.
A content management that cannot manage much beside text is not very useful.
Thus, the quest of an image module began. I've found Drupal has many modules that support images. And I've also found out that the reason for this proliferation of image modules is that because they all suck. There's not one good image module for Drupal, so it seems that everyone that needs one, develops one.
After some digging and testing, I've finally found an image module that suited half my needs. After some more digging, I've found another module that was suited for the other half of my needs.
Everyone that needs images on their CMS should check if Drupal modules fit their needs before going for Drupal.
Drupal working philosophy is not straightforward.
In Drupal, things are not were one expects it to be. It works with a organization and, to me, it complicates things, making it far more complicated that it should and needed to be.
Even today sometimes I take 10 or 15 seconds looking around for a specific option. It is not administrator friendly, specially if you don't work with it often.
None came with a forum solution, so I had to install one on each of the systems.
Finally I've finished setting up the systems.
Drupal had been painful so far, and I was loosing some consideration about it. But people do refer to it as a great CMS, so I decide to continue according to my plan.
It was time to evaluate things regarding my functional needs.
An here's the turning point favoring Drupal.
Joomla! does not come with flexible user parameters. But Drupal does.
In Drupal, the core user module allows one to defined specific parameters and corresponding value types in a very easy way. Probably Joomla! allows it to, but I didn't invest much time searching for such a module/plugin.
Joomla! does not allow drag-and-drop.
In Drupal, it is easy to move things using the mouse, just drag that menu option and drop it where you want it, do this option as many times as needed and the push the save button. This seems a minor issue, even from me (I'm a less WIMP than the average), but the amount of work that I was performing with such easiness allowed me to be far more productive than doing the same similar task in Joomla!.
Everything was going fine until I found a show stopper bug. I had so many exchange categories that Drupal stop ignoring the exchange category order I was specifying.
Not even the weights were working. I even tried banging directly on the database, but even though the items were not showing up in the correct order.
This forced me to stop the project for some weeks while finding the solution.
I did found out that I was not the only one complaining about this bug, it is know for years but yet, Drupal seems to be ignoring it.
I had posted this problem in Drupal forum but was starting to think in abandon Drupal because it seemed that there was no solution .
But suddenly a specific module for my problem came from Ben. He was just fantastic in helping me with this problem, he developed a small module, with a few lines of code, that solved the problem. I was on the move again.
I needed to create a template for the user to use when posting a new exchange item.
This revealed the true power of Drupal and why technical people love it. In Joomla! I needed to bang the forum module source code and use that modified module and, when a new version came out, do the same.
In Drupal I only needed to create a hook. A hook is like a handler that overrides the original code. You just say, when this event happens, I wish to do such and such. It was not easy to find out the correct data in the data structure that I needed to modify, I was new to Drupal programming. But once I've found the data I needed to modify, it revealed simple, easy and clean. I was dazzled with such simplicity and by then I had no doubts whatsoever that Drupal was the way to go.
Translating things to Portuguese also revealed much easier in Drupal. Both systems do have translation files for their modules, but Drupal allows one to translate things on the fly. Drupal has a translation interface that does not require the user to edit the translation file and upload it into the server.
Permission configuration also revealed a bit simpler in Drupal. I've just configured the read, write and administer accesses of each module for registered and non-registered users.
Finally I wanted to create a specific home page to show to everyone that landed on the site.
I've never done such thing in Joomla! and frankly, by then, I did not bothered to see what solutions were out there for this.
In Drupal there's a specific front page module that is just fantastic. I've created a specific home page for non authenticated users and another to authenticated users. It was just simple.
After all this quest here's what I've learned:
I recommend Joomla! for non-technical people and for web sites that do not require awkward requirements. It's great out-of-the-box and much easier to work with. But when things get though, you'll need a technical guy and you'll want Drupal supporting your site, even if it costs you a lot of time to learn how to use it.
./M6