This is the documentation for concrete5 version 5.6 and earlier. View Current Documentation

The Drupal Approach

In Drupal themes we define Regions that can output content. The equivalent in concrete5 is known as Areas. The major difference is that concrete5 Areas automatically enable edit-in-place, which can then be used to add content blocks into the Area. This ultimately achieves the same thing as the Drupal Block Menu by tying blocks to theme regions.

The largest difference between Drupal themes and concrete5 themes is that concrete5 provides more of a "single-page template" approach similar to ExpressionEngine. This is in contrast to Drupal where themes are built in layers with one theme wrapping around another. On some Drupal sites, as many as 250 different theming files might be involved in rendering 1 single page. It is for this reason that custom Drupal Theming is generally very time consuming and costly.

The concrete5 Approach

concrete5 in contrast takes a much saner approach, for each different Page Type used in the site you simply create a template file inside your theme that includes your HTML and defines your Area (regions). Typically template elements you want to reuse throughout the site will be stored as "Template Elements" and included into each template file.

It is possible that a Drupal developer might miss some positive aspects of Drupal's theming system which are not present in concrete5. For instance the fine-grained inheritance that Drupal themes are capable of. concrete5 does not appear to have the same level of inheritance, although I'm yet to explore this aspect of theming in-depth.

Additional concrete5 Features

Some additional theming features present in concrete5 include the following:

  • Use multiple themes on a single site, themes can be selected on a page-by-page basis.
  • Create "single pages" that basically don't use a theme, but instead use a simple View output, akin to an MVC view in CodeIgniter or CakePHP.
  • Customize theme styles such as colors and more through the concrete5 Dashboard.

Adapted from concrete5 From a Drupal Perspective by Joel Milne

Loading Conversation