DIY Drupal basics course

This blog post contains notes that, I hope, will allow you to do a one-day Drupal basics course – without any instructor!

Note that this tutorial requires that you already have a Drupal 7 site installed. If you have problems with this, please check out screencasts at Tutr.tv for help, or try a pre-installed Drupal site (such as found on WebEnabled, Drupal Gardens and many web hosts).

Some Drupal background

Drupal is usually called a content management system (CMS) – a software you use to publish and manage content on the web. By web developers, however, Drupal is often treated as a content management framework – a tool used to build end-user friendly content management systems.

There are a number of content management systems/frameworks available, such as WordPress, MS SharePoint and Joomla! and Django. (On the Nordic market the brands Escenic, EPiServer and Polopoly are also common.) Drupal can be characterized by the following properties:

  • It is open source, meaning that anyone is free to use, learn from, copy and modify the software. (It is also free of charge.)
  • It has a big and vibrant community, even compared to other large open source projects. (Some would say that it is actually the community that is Drupal, and the software just a byproduct.)
  • It has a large degree of flexibility, allowing even non-coding developers (“site builders”) to create advanced functionality on their sites. This is usually done by combining Drupal core with a number of contributed modules.

Criticisms of Drupal include that its user interface is unnecessarily difficult, and that it is problematic to move content and settings between different sites.

The first version of Drupal was created in 2001, by a (then) student called Dries Buytaert. With the release of Drupal 6 in early 2008, Drupal became an “enterprise level” CMS. The most recent version – Drupal 7 – was released in January 2011, with more than a thousand individuals directly contributing to the core code. At the time of writing, the Drupal community consists of nearly 650 000 people spread all over the world. Between 1.5 and 2 percent of the websites on the internet use Drupal, including site such as whitehouse.gov, economist.com and grammy.com.

All serious Drupal developers – coders, site builders, so-called themers and others – take part in the Drupal community, whose central hub is found at http://drupal.org/. The same goes for many Drupalistas generally not considered developers: designers, project managers, trainers, and even clients. Taking part of the community allows you to know how Drupal as a project is evolving and moving forward, and it also allows you to connect with others to share ideas, solutions and creativity.

Using Drupal: managing content

For most people using Drupal, all or most of the work consists of managing content in one way or another – posting news, promoting material to the front page, updating articles, and so on.

Learn about managing content here:

Try your content managing skills with these exercises:

Note that in previous versions of Drupal, content was often called “nodes”. This term ispretty common among Drupal developers, and is still used by quite a few contributed modules.

Managing users and permissions

Drupal allows fine-grained control over who is allowed to do what on the site. When logged in with user account 1 – the maintenance account – you bypass all access checks, but other accounts can be given permissions to post content, change site settings and even manage permission levels.

Learn more here:

Try your skills in managing user accounts with these exercises:

Menus and blocks

Depending on how the permissions are set on your site, editors may or may not be able to change things like menu links and sidebar content (“blocks”). When building a site, however, this is one of the tasks that Drupal developers do.

Learn more about menus and blocks:

Try your skills with these exercises:

Fields

One of the more powerful features of Drupal is the ability to extend and customize the information that can be stored in content: a standard article holds a title, tags, body and an image – but could be extended to also hold file attachments, multiple images, embedded videos, geographical coordinates, and what not. Drupal developers say that content is fieldable.

Furthermore, it is possible to use Drupal’s interface to determine how each inputted piece of data will be displayed, which is particularly useful when it comes to images.

In a standard Drupal installation it is not only content that is fieldable, but also comments on content, user accounts and so-called taxonomy terms. This flexibility in modifying a website’s information structure is unique to Drupal.

Note that managing fields is (usually) not something done by site editors or even site administrators, but by developers only. However, this is up to how the permissions on the site is set, and how site updates are managed.

Learn more about fields here:

Try your skills with these exercises:

More!

If you are interested in learning more Drupal, then the following material may be of use:

I know there are a lot of coders who want to learn Drupal, and expect to start coding more or less right away. If you do this, you are very likely to end up with duplicating a lot of work that a lot of people have spent a lot more time to solve in a more efficient way. You will also end up with websites that are a complete disaster to maintain. If you want to use Drupal in an efficient way, the best way is to start learning Drupal core and the most-used contributed modules. Period.