This article is part of the Plone vs. Drupal analysis.
You may have deployed a content management system solely for security purposes, or because you had many thousands of pages to publish online. But, often, it is because your website is very complex and requires advanced features to be implemented. For some of those features (hopefully most of them, for the sake of your budget), there are add-on modules out there that will do the work for you.
The Quest for Modules
First things first: based on the feature you want to implement, you need to find the proper add-on. I strongly advise against using your favorite search engine with a few keywords describing your need. It is difficult to evaluate a product based on what the authors' website says and there are many malwares out there waiting for you. Instead, going to plone.org or drupal.org will give you a full listing of products with filters by compatibility, popularity, etc.
Let us deal with a common example: an add-on module to create forms, publish them online, and manage the information which is input using them.
- On plone.org, the homepage search for "form" is a bit hard to digest, so I logically go to the download page and find the filters I'm looking for to refine my search. Browsing the results, I pick the #5 as the previous ones don't seem to be forms. I also notice the second link about captchas, since it is something I could use along with webforms. I now have "PloneFormGen" and "collective.z3cform.norobots" but no need to panic: their deployment has to be simpler than their names!
- On drupal.org, straight from the homepage, I search for "form". Search results are displayed with select drop-downs to allow me to refine my searches. Looking for modules only, ranked by popularity, I reach an interesting result. The first two links are not exactly what I'm looking for, but links #3 and #4 called respectively "Webform" and "CAPTCHA" look promising.
Just get a sense of scale, there are about 230 modules available for Plone 4 and 5200 for Drupal 6.
- Add the name of the product to the proper config file, or to the proper egg's setup.py (30 sec)
- Run the buildout (then pin the product to its current version to prevent future incompatibilities) (4 min)
- Launch the site and enable the product in Site-Setups --> Add-On Products section (2 min 30 sec)
- Observation :
- A proficient Plone developer with a well structured buildout will install a product in no time. However the process above is not beginner friendly and won't work on the unified installer's graphical user interface.
- Download the compressed product (1 sec)
- Decompress the product and move it into the proper location (1 min)
- Load the site and enable the product in Administer --> Site-Building --> Modules (2 min)
- If you have quite a few modules installed, on top of the long listing of default modules, it will take you a minute to find where to enable your module.
There is a serious difference here between Plone and Drupal's ease of installation for modules. Drupal is not only faster, it also makes it easier for average (or even beginner) level users to add a new module to their site. In case you have many different products to install however, Plone would be more efficient. You just have to type all their names down in the config file for an overall deployment time which barely changes. You will have to go download all the products and manually move them to do the same with Drupal.
A new version is available for your form product, with all the improvements and bug fixes you requested in the product's tracker... hurray! Now it is time to update the product.
- Plone: simply pin the product to its new version in the proper config file and re-run buildout. You will then be able to upgrade it from Site-Setups --> Add-On Products.
- Drupal: it is the exact same process as the original module installation. You will need to download the product again and move it to the right folder. You can download the product from the Administer --> Site-Building --> Modules section. There seem to be an easier way to update multiple modules: http://drush.ws/#pm-updatecode this is probably more than worth a shot!
For the first time in our series, we reached an example (with Plone's install of a product) of task that a non-technical person won't be able to perform with a reasonable amount of time and effort. Not to mention the potential version incompatibilities that could occur, forcing you to a time consuming version-pinning dance. Installing a product will be easier with Drupal.
Third-party products are not quite as secure as the CMS core and the overall security of your site can considerably decrease as you install add-ons. This is because products don't get as much attention as the core CMS; so it's more likely for bugs to make it through. And should bugs be reported, they are not always fixed in a timely manner (if at all).
What is your favorite add-on module? How easy is it to deploy? Do you have a bad experience with a module you want to share?