Drupal 7: From the Simple to the Advanced

Whenever I am asked what is the most important factor to consider in choosing a CMS, the answer is easy: versatility. This is why I recommend Drupal to everyone I know. It allows you to set up your CMS exactly as you like it, from basic settings to API, which allows you to write your own modules, and modify Drupal — its like finding a magic wand.

Meanwhile, it's been two years since the last time Drupal was covered in detail on Smashing Magazine. In the following article, I strove to provide some more current information about Drupal 7, starting with the basics, and ending with a description of how to write your own modules.

10 Drupal Best Practices, or the Rules of Good Form

Just as a play begins with the curtain-raising, so the launch of a site begins with proper CMS setup. What should be paid attention to after the initial installation of Drupal? I have provided you here with 10 best practices which will help you set up your system as quickly as possible.

1. Configure the Content Type, and Display Settings in Fields

By default, Drupal has two content types, Article and Basic Page (Structure » Content Types), but it also allows you to create your own types, and configure how they are displayed with the Fields module, which, beginning with Drupal 7, has been built-in to the core of the CMS.

“Using the Fields Module with Drupal 7”, Peter WebExplorations (8:39 minutes)

A short tutorial which shows how to create content types, and customize fields using Fields.

“Adding fields in Drupal 7”, LevelTen Drupal Labs (9:58 minutes)

A more in-depth tutorial dealing directly with field configuration.

2. Use Taxonomy to Create Tags and Categories

Taxonomy (Structure » Taxonomy) helps you to organize content, and give structure to your site. With Taxonomy, you can define any number of categories and tags, nested however you choose, which will later “wrap” the content on your site.  

“Learn Drupal 7 with NodeOne, Taxonomy, vocabularies and terms”, NodeOne.se (11:19 minutes)

A video-tutorial about configuration of taxonomy on your site.

Drupal 7 Tutorial Part 13: Drupal 7 Taxonomy, Vocabulary, Terms, Tags, Categories Concepts, AnilSagar

What is taxonomy, and how do you use it? (An illustrated guide)

3. Turn on Reports to Track Changes to the Site.

As far as I'm concerned, Reports is one of the most interesting parts of managing a site with Drupal. It tracks the behavior of users on the site, and tells you about errors on the site; in short, it knows everything that happens on your site when you're not around.

That said, don't forget the Reports » Status Report page, which provides a general summary of the state of the site. Any lines that are not green, require careful study.

When you learn to read these reports correctly, you can correct mistakes on the site and avoid future problems.

“Statistics: tracking referrers, page hits, etc.”, Drupal Community Documentation

This tutorial shows you how to activate all the functions of Statistics (by default, some options are turned off in Drupal).

4. Check the Permissions for Anonymous and Registered Users

Though I'm sure your site is working correctly when you work with the admin account, I recommend that you check the Permissions for various other roles regularly (Administration » People » Permissions). Go down the list, are the settings to your liking? Visit the site as an unauthorized user(User » Logout). Is everything displayed correctly?

“Introduction to Drupal 7 Users and roles management”, Kalin Chernev (14 slides)

A presentation about users and role management with illustrations.

“Learn Drupal 7 with NodeOne, Managing users and permissions”, NodeOne.se (11:21 minutes)

A video-tutorial, explaining how to correctly configure Permissions and User Roles.

5. Choose a Theme for the Site and the Administration Section

There are around 400 user-contributed themes for Drupal 7, but I'm also fond of the default themes.

  • Bartik — because it has a large number of columns, supports the new standards, and is easy to customize.
  • Seven — because it is a clean, minimalist administration theme.
  • Stark — because it is an intuitive starting theme for developers. It helps you understand the basics.

Other than Stark, there are many great basic themes to help you better understand theming: Zen, Basic, Omega and many others. You can find them in the Themes section on Drupal official website.

My favorite alternative administration theme is Rubik — a good-looking theme based on Tao.


Rubik theme

6. Customize Menus and Blocks

The Blocks section allows your to easily create a look and design for you site. In many themes, blocks can be placed in the header, footer, left and right margins, and the content area. However, there are more complex themes, with a myriad of columns based on a grid. As a result, there are more ways you can place the blocks.

The arrangement of the blocks is affected by their weight: lighter blocks float up, or move forward, and heavy ones sink down. The drag and drop feature makes this very easy to do.

“Learn Drupal 7 with NodeOne, Managing blocks”, NodeOne.se (08:31 minutes)

A short introduction course about block customization.

The Menu section is where you change the menu points and their locations. Almost any point can be turned on or off, and have its name or path changed.

“Working with Menus”, Drupal Community Documentation

How to quickly customize a menu in Drupal 7.

7. Adjust the Image Style

Working with images has become easier in Drupal 7, when compared with Drupal 6, because of the Image module, and built-in support of image syles (Configuration » Media » Image Styles).

You can define not only the image parameters, but also the output style for various types of content, and for the full version and teaser.

“Using Image Styles in Node Display in Drupal 7”, Lullabot (5:49 minutes)

A crash-course in how to adjust image display in nodes.

“Learn Drupal 7 with NodeOne: Image styles”, NodeOne.se (09:23 minutes)

How to adjust the image display style.

8. Adjust Text Formatting and Install WYSIWYG

Configuration » Content authoring » Text formats

I use the Plain Text format when writing manually (to use all possible HTML tags, makes no sense and takes up too much time).

When I transfer code from Adobe Dreamweaver, I tend to use the Full HTML setting.

For other users, to whom I've given access, I always change to the Filtered HTML setting, where I point out the available tags, because unskilled use of HTML can do damage to your site.

Other than that, I make it a rule to install the Wysiwyg module (Configuration » Content authoring » Wysiwyg profiles), which I do not use myself, but give to other users together with Filtered HTML.

9. Use the Toolbar and Shortcut Sections

At first, it can be hard not to get lost in the settings. Even experienced users lose a lot of time going from one section to the other (not always correctly).

Use the Toolbar and Shortcut sections (Configuration » User interface » Shortcuts) for fast access to the necessary functions. This is an effective way to quicken the pace of work with Drupal; you can add the necessary sections to the bookmarks toolbar and not have to remember their locations.

“Dashboard, Shortcuts and Blocks in Drupal 7”, Learn By The Drop (9:33 minutes)

This video talks about the Shortcuts features.

10. Uninstall Unwanted Modules

Next, I will discuss what I consider to be the most useful modules for Drupal, but before that, I recommend you turn off all the modules you won't be using in the core (in the Modules section). This will improve site performance and reduce page rendering time, as well as the number of queries sent to the SQL database.

Always uninstall unnecessary modules by going to Modules » Uninstall, in order to reduce clutter in the database.

“Drupal Modules: The What, When, Where, Why, and especially How”, Sharon Krossa

How to correctly uninstall modules in Drupal 7.

Expanding on the Basic Features

A complete list of all the modules would be as never-ending as the endless functionality of Drupal, but I would like to point out the ones that I myself have used since I first became acquainted with this CMS. All modules can be downloaded on the Modules page.

Drupal and Content

For better or for worse, the basic features of Drupal are not enough to easily write an HTML post, or to quickly add multimedia content, that is, video, audio and images.

WYSIWYG — Allows you to add a variety of WYSIWYG (What-You-See-Is-What-You-Get) content editors to your site. The most popular are FCEditor and TinyMCE, but you can also choose a more minimalist one, such as NicEdit, or others.

Tutorial: Drupal WYSIWYG Module — Installing a Rich Text Editor

Image Resize Filter An easy way to change the size of images when you've added a WYSIWYG.

Insert — Allows you to insert images with the push of a button in a WYSIWYG.

Tutorial: Inserting an Image Into Your Wysiwyg

Media — For adding media and text area with a convenient file browser.

Tutorial: Adding media to your Drupal site

Drupal and SEO

SEO — It's not a myth, nor merely a notorious abbreviation, but a way to make your site available to a wider audience. Without basic promotion, your site will lose out on valuable visitors.

SEO Checklist — A step-by-step guide to SEO for your site. One of my favorite modules, because it brings together all best practices for good promotion. It was written by Ben Finklea, who has also authored a SEO book.

Summary: Drupal SEO video from Lullabot

Pathauto — Automatically generates URL aliases based on a pattern system, organized according to content type.

Tutorial: Pathauto + Token Screencast

XML sitemap — A module for the creation of an XML sitemap, which will help search engines index your content.

Tutorial: XML Site Map for Drupal 7 — Screencast

Page Title — Gives you the ability to edit meta-tags in the title separately from the header in the node.

Tutorial: Page Title Configuration

Google Analytics — Integrates your site with statistics from Google Analytics.

Tutorial: Module A Day: Google Analytics

Drupal and Display

Views One of the most well-known and functional modules, which possible will be built-in to Drupal Core in Drupal 8. It allows you to customize settings for display of blocks, pages, and attachments, as well as create filters and conditions. When used with Fields, Views reveals Drupal's hidden potential :).

Tutorial: Learn Views with NodeOne, part 2: What is Views?

Panels — Another module from the developer of Views. It allows you to position panels with pieces of information on the page without knowing CSS or HTML drag and drop. Information can be displayed based on Contexts, it is all covered in the instructions.

Tutorial: Panels 3: Videos

Display Suite — Also used in the construction of a drag and drop interface. The advantage of Display Suite is that it comes with ready-made display presets, making it even more user friendly.

Tutorial: Display Suite Screencasts

Drupal and System

Drush — A command prompt for Drupal, which will be helpful first and foremost to developers. Using the console, you can install and configure modules, and work with any site.

Tutorial: Installing Drupal using SSH and Drush, Drush Commands

Backup and Migrate — A backup site for Drupal (databases and files on FTP). Backups are done at a scheduled time.

Tutorial: Drupal Backup and Migrate Module Tutorial

Rules — Gives you the ability to automatically perform executed actions based on events that take place on your site.

Handbook: The Tiny Book of Rules

Captcha — Spam-blocker for the comment section using Captcha.

Tutorial: How to Use Captcha in Drupal 7

Modernize for Drupal

This category includes support for modern standards, and integration with popular services. The list will be short and to the point.

Twitter — Integration with the website Twitter. Allows you to repost from twitter, and display tweets on the site in the form of a block.

Tutorial: Twitter Module

OAuth Connector — Login to Drupal via Twitter, LinkedIn, Facebook, Google (Google+ and more), and Flickr.

Share Buttons (AddToAny) by Lockerz Login to Drupal via Twitter, LinkedIn, Facebook, Google (Google+ and more), and Flickr.

HTML5 Tools HTML5 toolset for your site.

MediaElement HTML5 template for playing audio and video on your site. It gives you the option to change the standard template for youtube if you don't like it.

Tutorial: Media Element — Drupal 7 Audio and Video

10 Resources That Will Enhance Your Skills

  1. Community Documentation — A must-have for any Drupaller, and an inexhaustible source of knowledge. The Drupal Cookbook in particular is a great starting point for a beginner.
  2. Community Forum — A place, where you can ask any questions related to Drupal, and receive an answer with a higher level of accuracy than you would get elsewhere.
  3. Drupal Planet — A Drupal community, where you can track the latest news, and events, and find the newest tutorials and screencasts.
  4. Drupal Ladder — Website which contains screencasts and lessons to help people learn about and contribute to Drupal.
  5. Lullabot Podcast — One of my favorite resources. It gives the impression that people really love Drupal, and strive to improve it and make it popular. Notable sections include Videos and Blog.
  6. Drupalize Me — Comprehensive courses from the Lullabot team. Parts of their videos are available for free.
  7. Drupal Video Podcast — A myriad of free, helpful podcasts at various difficulty levels, and on various themes.
  8. DrupaLove Videos — 50 screencasts about Drupal 7. However, videos on Drupal 6 will also be helpful, all the more so considering that they are free.
  9. Learning library — A collection of themed videos, and many relevant screencasts for Drupal 7.
  10. Drupal TV — Unfortunately, I cannot provide any Russian-language resources here (many of the readers do not know Russian), but in this section, you will find a collection of videos in English about Drupal.