In the spirit of sharing hard-won knowledge, I want to mention here that Drupal has rich facilities for creating a complex front page display, but they are not obvious.

  • You can set any page you want to be "Home" in admin/settings/site-information
  • You can create Views with 'page' displays (actually only the main "content" area, not the whole page)
  • You can clone your theme's page.tpl.php as page-front.tpl.php and customize it as you wish
  • On the front page only, you can display Views with 'block' displays or custom content blocks
  • You can write your own theme and add extra regions for use on the front page

This information isn't hidden, but perhaps it will save you time to have it here.

What is somewhat hidden is a module called Panels. (You'll see it referred to as Panels 2, but it is currently at version Panels 3, and its url is http://drupal.org/project/panels.) Panels takes over the whole "Views for a specific page" thing--it's a web UI for laying out the front page and other landing pages. (The Panels module also requires the Chaos Tool Suite module, http://drupal.org/project/ctools.)

Panels is very ambitious in scope, but it is quite mature and currently maintained (by 'merlinofchaos', Earl Miles of CivicSpace)--it was last updated 10/15/09 (3 days ago at this writing).

I discovered Panels from: http://adaptivethemes.com/take-control-of-your-homepage-with-nodequeue-v... by Jeff Burnz and then learned a great deal about the module in a short time by watching Matt Petrowsky's video: http://gotdrupal.com/videos/drupal-panels.

Panels is a shortcut--it is a web interface that does things for you that you could do by writing your own theme and module. Some folks aren't technical enough for that, but even technical folks should consider whether the added control and potential page-load efficiency is worth their time. I plan to use Panels instead of rolling my own, at least to start.

Another module I learned about from Jeff Burnz' article is Nodequeue. This is a smart approach to tagging nodes as featured. How the editor decides which nodes should receive prominent display on the front page is a tricky problem. A node queue lets you specify as many 'featured' nodes as you want, but it only keeps the number you specify. If you create a 5-node queue, you can display a list of the 5 top stories on your home page. Create a new story and add it to your node queue, and the Nodequeue module will remove the 5th node, shift the remaining 4 down, and put the new story at the top of the list. From the editor's point of view, you just toss stories on the nodequeue. From the front page designer's point of view, you just display the node queue and everything works.

Anyway, I hope these links help, especially for those evaluating whether Drupal will meet their needs. I have Using Drupal by Byron, et. al., Learning Drupal 6: Module Development by Butcher, and Pro Drupal Development by VanDyk and none of them mentions Panels. (Using Drupal mentions Nodequeue in the context of news sites, but the other books leave it out.)