State of eliminating special cases with Drupal themes, regions and blocks

My previous blog post entitled On a mission to improve page regions in Drupal 7 outlined how special casing things like custom help settings, the mission statement and footer message make understanding and using Drupal harder and general assumptions not being applicable to set text formats or visibility on such items. Having the somewhat special content region was also another example. After more work in this area, I'd figure I post a status update for those who'd like to have a bigger picture overview:

  • System help text is now a block in Drupal 7. You can offer your users to customize it (turn it on/off themselves) or hide excessive help text on certain pages. Since the help block is placed in a help region, you can add custom help to any pages with custom visibility settings tailored to your needs. You can use full text format support for these blocks. No more special user registration guidelines or contact page help settings. It is all general now and way more powerful. I was alerted that content type help is another special case which is not yet migrated. The issue used to track that remaining task is at (but does not have a patch yet, contributions welcome!)
  • I've suggested migrating the site mission statement to a block. Since that was overloaded both as a (badly implemented) markup aware site mission and an RSS site description, the patch migrates the mission statement to a block and adds a standalone setting for the RSS site description. Similar migration path to the help blocks. Patch to review and test at
  • New since my last blog post: site settings in Drupal 6 and before also includes the footer message. This is even easier to eliminate then the site mission, since it is not overloaded for any other reasons. It should be migrated to a footer message block (which the user can then retitle based on their previous use of the block to "Copyright", "Affiliate links" or whatever). Patch for review and testing at
  • Finally, I've been working more on the "main content region as a block" functionality, which lets you reposition your main content and put blocks above and below it without having special _top and _bottom block regions to get your desired result. This patch makes all Drupal 7 themes required to have a "content" region to ensure that users cannot easily break their sites. You'll not be able to enable themes which don't implement this region. Also, the main page content block is required to show up in some region for the same reason. Feedback is more then welcome at

I hope we can get through these soon, since I have even more ideas on eliminating funky special cases in site building and theming making site setup and theme authoring even easier.


Gábor Hojtsy's picture

Solving the per-content type help migration spilled over into re-introducing per-content type block visibility to Drupal with patch to review and test at

Rob Russell's picture

Making regions for themes in Drupal 6 is very convenient. I like the idea of extending that further with the required content region. Mission statement as a block makes sense too. This all reinforces the concept that content goes in blocks and blocks are assigned to regions and simplifies the mental model for admins.

One question this raises for me is about how to rearrange content based on the size of the region it's assigned to. For example, a menu may make sense with a horizontal layout for a wide region but make more sense vertically for a tall region. Or, to choose something that can't be fixed easily in css, a large region may want a complex pager for content in it but a small box may be better served by a small pager control. Other constraints like a minimum size for a region that a block will go in could turn up too. Maybe someone's already dealt with these issues but I haven't seen it yet.

Anyway, sounds like some good progress, thanks.

Gábor Hojtsy's picture

Yes, you can use CSS to deal with these issues. Such as use #footer-region .menu {} to style the menu in a wide region and #sidebar-left .menu{} to style your menu in a tall region.

Robert Castelo's picture

Great work. I've been doing some exploration of creating a grid theme feature and having content as a block makes things a lot easier.

Gábor Hojtsy's picture

The missing admin blocks also make it hard to debug the upgrade path. If anyone want to help there, check out:

Gábor Hojtsy's picture

The missions elimination patch got in! Now that I went on to reroll the footer patch ( I realized that there is one very odd setting remaining in the site information settings. Namely the anonymous user name. That should be a user setting. Submitted a patch with illustrations at

Add new comment