Drupal for the Web Developer: Module and Theme Administration

In the previous installment of this series, we learned how to work with Drupal's Blocks and Menus. That leaves us Modules and Themes to finish up the Site Building section of the administration menu.

To get to the main Drupal configuration menu we'll be working from, you should visit http://YourSiteURL.com/admin/settings in your favorite web browser, or http://127.0.0.1/admin/content/ if you're working on your own local computer. We're also assuming you're logged in as Drupal's administrator. From there, select the Modules submenu (/admin/build/modules), where the default view shows you a list of the modules available on your particular system, with checkmarks showing whether they're enabled or not.

As we've mentioned previously, modules are software addons or plugins that allow you to expand the functions of your Drupal system far beyond those of a simple blogging platform. There are literally many thousands of modules available free that have been contributed by the Drupal user community; these are often called contrib modules. In fact, there are so many contrib modules that an overview is in order.

So Many Modules, Where Do I Start?

Before you start downloading anything new, take a careful look at what you already have. At /admin/build/modules, your default list of installed modules already includes the following, each of which you can enable with a single click:

Aggregator: allows you to set up RSS and Atom feeds to your site.

Blog and Blog API: let you easily set up and maintain a blog using accepted standards.

Once you enable any of these modules, you will see the new corresponding menu choice start appearing in the administration menus. For example, enabling Aggregator causes Feed Aggregator to show up at /admin/content/aggregator, where you can actually make changes to the settings (don't be confused by the same phrase Feed Aggregator in the top-level user menu; that one resolves to /aggregator, and it's used for quick displays of the feed content from other sites). Similarly, if you've enabled the matching modules, you'll see new content types such as Blog Entry, Forum Topic, and Poll showing up in the Create Content administration menu.

One of the first contrib modules you should download and install is called Administration Menu. It's quite popular and will save you quite a bit of time, since by now you've no doubt noticed that finding items in the default administration menu takes quite a few clicks. So in the interest of reducing your learning curve, visit the module's home page and get a nice CSS-based menu that lets you access everything in one go.

The original question for this section was Where do I start? and there are a number of good answers to this. You can find the most popular contrib modules on this page; this gives you a good idea of what other people have found useful. Almost everyone ends up getting a certain minimum set, and here's why:

Content Construction Kit (CCK): this extends the already flexible Content Types of Drupal to allow you to define your own data fields, essentially letting you add media of any kind to the database (without directly modifying the database, which would be messy) and defining how they display as well.

Views: the Views module effectively lets you define and display almost any content (including those data fields from the CCK) in almost any format.

Token: this is really an API that many other modules use, so that terms like [user] can be used in text and replaced with the proper value.

Pathauto: this lets you set up patterns for URLs, generally for SEO purposes with categories.

Another useful way of weeding through contrib modules is to look at the right side of the Drupal modules page, where they're categorized by type (utility, commerce, mail, etc.)

Downloading and Installing Modules

If there's any downside to the current state of Drupal software, it's probably the module installation procedure. Basically, you have to do things the old school way: download the compressed archive file (making sure you have the correct version for your Drupal installation), extract its contents, upload it to the correct directory (generally /sites/all/modules), and perhaps change a few permissions. There's an official Drupal page available that describes this process in exhaustive detail. There's also a Plugin Manager module available to solve all these problems, but it's not considered quite perfect yet, although many people use it with success. Naturally, if the Plugin Manager works for you, you can use it to bootstrap all other module installations and save yourself a great deal of time, so that's another good one to start off with.

Themes

We've saved the best for last. Compared to the many details involved in modules, administering themes is a breeze, although you'll still have to do the download-extract-upload tango to actually get new themes into your Drupal installation (they go under /sites/all/themes/, but each into their own directory that you'll have to create). Drupal comes with six themes installed by default, so you should again explore the included ones before looking through the long list of available themes.

Drupal themes are user-configurable. Go to /admin/build/themes/settings and you'll find you can easily do all this from a single menu:

Once you settle on a particular theme, it's probably best if you lock it in place. Supporting different browsers and operating systems and screen resolutions is tough enough, but allowing users to add different themes and layouts to the mix is sure to cause you grief in the form of unnecessary support problems. To lock a theme, simply go to the theme administration menu (/admin/build/themes) and make sure only one theme is enabled, and then set that theme to Default.