When we last saw our plucky hero, he was well on his way down into the perilous caves of the Drupal administrative interface. What dark secrets will he find there? What mysterious creatures are lurking in the shadows just waiting to pounce? Will he wander aimlessly in the void of nothingness? Where did I put my car keys? Did I feed the dog before I left the house? What's this thing on my hand ... (Damn that A.D.D.)
In this episode, we pick up with the real hands-on fun by rummaging through the different options and configuration settings and we even learn a new word: Simplexity
As I mentioned in my last article, this process was more of a discovery than a true evaluation as I didn't initially have a defined set of requirements from which to grade each of the systems. So, before I truly started digging into this beast, I decided to define the essential points as a general context for the evaluation. Better late than never, right? Here's what I came up with:
- Performance: Critical - I'm currently on a shared host plan and hope to maintain that at least for the immediate future while the site user base builds up.
- Content Categorization: Critical - The ability to easily categorize content into an organized hierarchy structure, re-organize it as needed, and tag related content that crosses several categories. For me, these are at the core of content management.
- User / Role Management: Critical - The plan is to create a community site, so flexible definition of roles and the application of those roles to users is a must.
- Ease of Administration: Important - While I don't fear a learning curve when diving into a new system, having the available administrative options well organized and relatively easy to understand is definately a good thing.
- Good Community Support: Important - Large number of users, users willing to help other users, and developers who listen to their users.
- Strong Base of Stable Extensions: Important - The number of available extensions is not as vital as the usefulness and stability of the available extensions. A good history of active development on the core library of extensions is also a very good thing.
- Selection of Available Themes: Bonus - Again, not the number of themes but more the available variety of theme styles. Also, XHTML and CSS compliance with themes is a bonus when trying to customize certain visual aspects of the site.
- Advanced Page Layout Options: Bonus - Being able to change page layout without having to mess with the PHP or HTML code is an excellent feature. I'm not affraid to get my hands dirty in code, but I'd rather not have to mess with it and then have to debug and trace dependencies if I don't have to.
- Forum Integration: Bonus - User interaction is essential to a community site and forums generally are the best venue for that interaction. A familiar forum interface for the user experience is necessary and the ability to promote content from the forum to another part of the site would be a great feature as well.
First Impression (The default menu system)
After logging into the fresh Drupal 6.x installation, I found a nicely organized menu structure in the left pane (which is the default location for the menu in the default theme, Garland). Since I was mainly interested in the system administrative functions, I went straight to that part of the menu and began poking around. It didn't take long for me to identify the different options and to which part(s) of the system they are associated.
One thing I would have liked to see beyond what's already included would be a way to search the menu options by name or key word, but even without that feature, it's not too difficult to navigate the options. Another item that would have been welcome, would have been true context sensitive help on admin pages in the form of a "Help" button. However, even with the lack of these advanced help features, a quick Google search or a visit to Drupal.org makes short work of understanding anything that isn't obvious.
Associated ratings on first impression:
- Ease of Administration: 7 - Could have better context help and search options.
- Good Community Support: 8 - Took very little time to find additional help online.
Performance
Since I don't have a dedicated server or a large group of persons at my disposal to actually do performance testing, I can only really review the performance and caching options that the system provides and research for any known performance issues in current and recent releases. So, my first stop was the to review the performance related settings available through the administrative screens by navigating to Administer => Site configuration => Performance. This one page presents all of the options for caching, page compression, and optimization with helpful text that explains each of the options and how and when they're meant to be used.
Now that I've seen the available options, I now had to research for any known performance issues. A quick Google search revealed that there were some performance related issues reported with regard to different features and extended modules. In just about all of the articles I found, there were options available to reduce the performance problems, and in many cases, interaction with the core or extension developer(s) who take an active part in fixing any problems found by the users.
Associated ratings for performance:
- Performance (options and known issues): 6 - Will hopefully be better in upcoming releases.
- Good Community Support: 8 - No change, but still impressed with the project community.
- Ease of Administration: 8 - Added 1 point for helpful descriptive text about performance options.
Content Categorization
Of course, when evaluating a CMS, this goes to the core functionality and design of the system. In this respect, I have to admit that the "taxonomy" design employed in the Drupal 6.x system was a bit confusing to me at first. I approached this project with simple concepts with regard to content hierarchies and other simple relationship models for tagging, and while Drupals taxonomy provides those options, its design in much more flexible allowing for any level of useful relationships for content. And this is where my newly learned word fell into place: Simplexity . On the surface, simple hierarchies can be defined and utilized, but under the surface, very complex content relationships can be easily maintained as well.
After creating a couple "vocabularies" with a few "terms" under each, I created a couple of demo stories in the system and proceeded to update their settings to reorganize their relationships within the system. It was very easy to re-assign categories (yes, you can have more than one category (term) associated) and manage them into my simple taxonomy I had set up for the test. I quickly realized that my simple ideas about content management were outdated and overly simplistic and that Drupal taxonomy design was an extremely flexible implementation that would easily meet my initial goals and much more.
One of the features I thought was lacking was the ability to see all the vocabularies and their terms in a single structured view in the core system. The other feature I thought was just a bit confusing was that the "create content" option in the menu system was seperate from the option to edit existing content (published or not), which was under Administer => Content management => Content. The first may be able to be changed using an extension (module) or in a future release, and the second can be changed by simply updating the default menu structures to compensate.
Associated ratings for Content Categorization:
- Content Categorization: 9 - For design and flexibility in the core "taxonomy" model.
- Ease of Administration: 7 - Subtracted 1 because vocabularies and their related terms can not all be reviewed in a simple one page view and the options related to creating and editing content were not grouped well.
User / Role Management
Of all the CMS options I had included in the initial research, user management was the feature that many articles I had found on the internet rated Drupal one of the best. There are many options to fine tune user authentication, roles, profiles (user data), and access rules. All of the standard user management options you would expect are included in the core functionality and many other features can be added using extended modules.
By default, only two roles are defined (anonymous and authenticated user), but setting up other roles is fairly straight forward. User authentication options are included with the general user options, which is a bit confusing and would probably be better in separate option views for organization. However, all the options have very useful help text on the page in which they are presented which makes them easy to comprehend.
Associated ratings for User / Role Management:
- User / Role Management: 8 - Very good options, all the essentials with some nice extras.
- Ease of Administration: 7 - Organization of options could be better but the associated help text is very good, so the plus and minus cancel each other out.
And The Rest (non-critical requirements)
For the sake of brevity, I'll cover the remaining non-critical requirements together in this section and include the key points on both the positive and negative aspects of each.
Ease of Administration - This requirement has been included in most of the critical requirements and rated accordingly. However, while I've been reviewing my notes to write this chapter of the article, I recalled the upgrade process for both the core system and modules. While this process wasn't very difficult for a tech-head like myself, it could be made much easier with the standardization of installation scripts to automate the majority of the upgrade steps. For this reason, I'd have to subtract 1 point from this category setting the final score to 6.
Good Community Support - Again, this requirement was integrated in certain aspects of the critical requirements. Overall, Drupal 6.x has a very strong user base and developer community, most of which are very good about answering peer and user support questions. I only found one exception where an extension developer was a bit "short" about answering user questions, and I won't call out that person here in this article. :~) My previous rating of 8 still stands strong for this requirement.
Strong Base of Stable Extensions - This feature, in my humble opinion, is where a popular system like Drupal really shines. I quick search in Drupal.org or Drupalmodules.com will provide an extension for just about anything a person can imagine that isn't already a part of the core system. The project pages for each extension provide very useful information on the supported Drupal versions, known issues, and descriptive text. The module pages are also moderated in a kind of wiki manner where the moderators make suggestions to make the pages informative and uniform in available content.
Another point to mention about the modules is the plug-in architecture of the core system and the update reports available in the administrative interface. Most extensions are easy to configure once they are installed (extracted into the modules folder), and the update reports let you know when a new version is available and if there are any potential security threats that warrant an urgent update schedule.
A very wide selection of available (and stable) extensions and supporting architecture rate this feature at 8.
Selection of Available Themes - I'll be brief on this one. Some nice themes with varied page layouts are available on Drupal.org, and some were just loud and obnoxious (to me anyway). For this requirement, I'd give a rating of 7, but there are probably better sources for themes that I just haven't discovered at the time of this writing. Probably the best thing to do is to get one that is close to what you want for layout options, and modify the CSS to tweak the appearance as needed. Which brings us to the next item...
Advanced Page Layout Options - I was very impressed with the system design for the core layout options. Moving different content regions to different areas in the layout is just a matter of using the "Blocks" feature to either specify location for each item with a drop-down list, or using drag-n-drop if you like. The only issue I found with the block options was a bit of initial confusion regarding menu items versus content block items on my part. This was easily overcome as I reviewed the menu options and did a small bit of research. Overall, I would rate this requirement at 7 as I would like to see more theme independent layout options added.
Forum Integration - To be honest, this is an area where Dupal falls a bit short, but then most content management systems are weak in this respect. There are extensions that help incorporate popular forum systems such as SMF, phpBB, and vBulletin, but each of these have limited integration options. The default forum, which uses the core comment module leave much to be desired, but can be greatly enhanced with the addition of the Advanced Forum module and a few other recommended modules. This feature gets my lowest rating so far at 4.
Final Thoughts
While some of the features aren't exactly the most administrator friendly at present, the extensive library of modules and customization potential makes it developer and tech-head (geek) friendly. For someone looking to put together a community site or some other site design that isn't a simple blog site, Drupal is a contender that should be high on the list of considerations.
Final ratings for Drupal 6.x:
| Requirement Name | Priority | Rating |
| Performance | Critical | 6 |
| Content Categorization | Critical | 9 |
| User / Role Management | Critical | 8 |
| Ease of Administration | Important | 6 |
| Good Community Support | Important | 8 |
| Strong Base of Stable Extensions | Important | 8 |
| Selection of Available Themes | Bonus | 7 |
| Advanced Page Layout Options | Bonus | 7 |
| Forum Integration | Bonus | 4 |
Join us again in our next episode where our brave and very handsome hero wanders into the Joomla! forrest. Until then, get plenty of rest and help the next unfortunate soul you meet. You'll feel better for the experience.
