Joomla vs. Drupal — A Comprehensive Comparison - Content Types and Site Navigation

By Justin Kerr
March 15, 2014

Table of Contents

Content Types and Structures

Proper construction of a site’s architecture and content structures yields not only a fertile base from which to launch a site, but also a stable, versatile platform for continued growth of site content. Implementation of content types and structures includes setting out the nature of the content the site is to display, as well as creating the hierarchical structures used to organize and display that content.

This process is one of the first areas where significant differences in approach, capabilities and costs appear when comparing Drupal and Joomla content management systems.

Drupal iconDrupal

In Drupal, site structures are planned and built from scratch using special sets of tools and conventions. Drupal’s site structures require significant work and expertise to implement properly, but they can support very high versatility, many different use cases, and extremely complex site architectures.

One characteristic of Drupal’s approach to structuring content is the requirement that the implementer define the different types of content that appear in the site. Building a Drupal “Content Type” requires selecting and ordering a set of Fields for that Content Type, as well as defining other parameters about how that type of content is accessed and presented. Each individual item of content in the site (which Drupal calls a “Node”) must be built within a defined Content Type.

Drupal organizes collections of Nodes through custom tagging processes called Vocabularies. A Vocabulary is a collection of terms defined by the site implementer: The terms within a Vocabulary can be organized with a flat structure, a parent-child hierarchy, or defined in an ad hoc manner as content items are entered into the system. Vocabularies are then associated with Content Types through a special Field type. A Drupal site can have multiple Vocabularies, and more than one Vocabulary can be applied to a single Content Type. Developer-defined “Taxonomy” and “Views” settings lay out the parameters by which Node content is collected and displayed; these elements can then be associated with menu items or other interface elements to help determine which content is displayed to the end user.

Drupal 7 offers a further layer of structural abstraction via Entities: a set of extensible, base classes for primary types of content (e.g. Node, user, comment), which can then be customized further via Bundles, which are extensions of a base entity class. Among other things, Drupal Entities provides the ability to implement custom fields – and field-tied capabilities – for all content and system objects, providing even more flexibility for site architects and implementers. 

Through the process of defining Content Types, Vocabularies, Taxonomy and Entities, the Drupal site implementer enjoys a tremendous amount of flexibility in structuring the site’s content items and organization: In fact, this process provides more than enough rope with which inexperienced implementers can hang themselves. Proper planning is essential for project success, and a good deal of time may be required to figure out the best way that Drupal’s organizational structures can support project goals, especially for complex websites.

Joomla iconJoomla

Out of the box, Joomla includes several “core” types of content that a site implementer can immediately use; these include Articles (Joomla’s default for a general web page), Banners, Contacts, Newsfeeds and Weblinks. Each of Joomla’s core content types contains capabilities and settings supporting that specific type of use, and they are all available as soon as Joomla is installed.

Joomla uses a nested category/sub-category hierarchy as the default method for organizing its content. A single content item can reside at any level of a Joomla category tree (or it can remain as “uncategorized”), and it can only reside in one location at a time. Joomla supports an unlimited number of category/subcategory levels, and categories can have their own extra data and features associated with them.

Third-party software extensions are used to support non-core content types for Joomla, and nearly every type of need for this is met through Joomla’s expansive software ecosystem (headquartered at the Joomla Extension Directory). For those who need completely custom content types, several third-party Content Construction Kit (or CCK) extensions are available for installation into Joomla. Likewise, for projects where content items must reside in multiple categories, third-party tagging extensions are required to add this functionality to Joomla. (Content tagging is available as a core feature in Joomla 3.)

Dollar sign iconCost Conclusions

Joomla’s default support for basic content types and a structural hierarchy makes it much faster and less expensive to implement structured site content. Most Joomla sites employ its general-purpose Article content type as the main method for containing web page content, and use the default categories/subcategories system to keep things organized. In contrast, Drupal sites require implementers to plan and create content types first before meaningful content build-out can begin. (Note that Drupal 7 does ship with a couple very basic content types.) This process takes at least a handful of hours; much longer for sites with specialized content items and complex content relationships. In general, Drupal’s site structural build-out will take at least 50 percent more time than conducting the equivalent work on Joomla sites.

That being said, certain types of complex projects and site requirements may even out the costs: For example, if a site requires multi-categorization of content, or specific, custom content types, the process of installing and configuring the required third-party Joomla extensions can escalate to the work required for content structuring and organization in Drupal.

A much higher level of experience and expertise is required to properly manage Drupal’s implementation of content characteristics and structure than using Joomla’s default methods.

Site Navigation

Website navigation elements in a content management system typically consist of menus, comprised of individual menu items. Both Drupal and Joomla follow this convention, with the ability to support multiple site menus in a variety of configurations. Both Drupal and Joomla also benefit from third-party developers who supply additional, plug-in software that can enhance the appearance and behavior of menus.

Drupal iconDrupal

Drupal controls site menus via its Menu Module, which allows for creation, editing and deletion of menus on the site (as well as providing a “Block” which can then be associated with a Drupal theme’s “Region,” or layout area). In order for a menu to contain a link pointing toward internal site content, that menu must be associated with the particular Content Type of the targeted page.

New menu items can be added from a Node’s edit screen (so that the Node becomes the menu link’s target); or directly from a menu itself, which requires input of a target path using Drupal-specific syntax. Menu items can be reordered within a menu, but not moved from one menu to another.

Joomla iconJoomla

Joomla’s Menu Manager lets implementers create, edit and delete menus, as well as control the items within a particular menu. When creating a new menu item, Joomla first requires selection of the type of content toward which the menu item points (be this Joomla Articles, Contacts, Weblinks, or a non-core content type supported through a third-party extension). Once the destination type of content is defined, additional parameters for that menu item allow for control over further display options and more specific targeting of content. Menus are placed on the page by associating a menu with a Joomla Module, then placing that module into a layout Position as determined by the relevant Joomla template. In Joomla, menu items can be rearranged and moved from one menu to another.

Dollar sign iconCost Conclusions

The processes of building menus and configuring menu items are mature and well-supported in both Drupal and Joomla, and do not require excessive labor. It may take slightly longer to implement menus in Drupal, but the time expense is still nominal for both (assuming, of course, that other project elements are also implemented with competence).