Getting Things Done in Drupal, Joomla, and WordPress: share, compare, and contrast

From DevSummit
Jump to: navigation, search


Developers look at common features & functionality and share, compare, and contrast our methods for building solutions in each of these open source content management systems. Facilitated by Jack Aponte.

facilitated by Jack Aponte


In this talk we compared terminology that the three CMSes use, and worked through an example of how to set up an events calendar in each.

Terminology comparison

Basic unit of content:

Wordpress: Post

Joomla: Article

Drupal: Node

Element on a front end page (e.g. a sidebar menu or newsletter signup)

Wordpress: Widget

Joomla: Article

Drupal: Block

Area on the page layout in which this element is called:

Wordpress: (Wordpress doesn't really work this way)

Joomla: Position

Drupal: Region

Both Drupal and Joomla have methods for displaying the region/position names on the front end

The set of php and css files that will control the site's layout and design:

Wordpress: Theme (which includes template files)

Joomla: Template

Drupal: Theme

Ways to use a base layout theme or template can be modified without permanently hacking it:

Wordpress: Using Child themes of the base parent theme

Joomla: Template styles

Drupal: Base themes

How to add functionality, and cost:

Wordpress: Plugins (which can be background processes or widgets). Usually free.

Joomla: Plugins (background processes), modules, and components (larger apps within the CMS, sometimes with accompanying plugin and modules). Often free.

Drupal: Modules and features (which may install blocks). Always always free.

Freemium, but limited, hosted versions of the CMS:


Joomla: none.


Example for comparison: Setting up an events calendar


Installing a plugin creates a custom content type, with relevant fields for date, venus, cost, etc. The plugin also creates a page, and different widgets, such as a list of upcoming events and a small sidebar calendar. In this case, the premium version of the plugin (Events Calendar Pro) allows access to php view files, so that the developer can modify the rendered html markup.


Installing a component, such as Jevents, also creates a custom content type. All events are managed in the calendar plugin, which can be displayed using a special menu type. Modules are available to display upcoming events. Alternately, some choose to display a google calendar.


Create a content type, and any custom fields, such as start date, ending date, venue address, etc. Using Views (a module), you can control how various content is displayed (for example, upcoming events, or archived events).