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:
- Learn Drupal 7 with NodeOne, part 2: Creating and editing nodes
- Learn Drupal 7 with NodeOne, part 3: Node administration
Try your content managing skills with these exercises:
- Boss exercise 1: Create an article
- Boss exercise 2: Creating revisions
- Boss exercise 3: Editing article summary
- Boss exercise 4: Nice URL for a page
- Boss exercise 5: Writing articles without publishing them
- Boss exercise 6: Publishing and updating post date
- Boss exercise 7: Mass update nodes
- Boss exercise 8: Change node default settings
- Boss exercise 9: Comment administration
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:
- Boss exercise 10: Create user accounts
- Boss exercise 11: Update user account information
- Boss exercise 12: Creating and assigning roles
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:
- Learn Drupal 7 with NodeOne, part 5: Managing blocks
- Learn Drupal 7 with NodeOne, part 6: More block settings
- Learn Drupal 7 with NodeOne, part 7: Menus
Try your skills with these exercises:
- Boss exercise 13: Enabling blocks
- Boss exercise 14: Block visibility settings
- Boss exercise 15: Custom blocks and more block visibility
- Boss exercise 16: Changing block titles
- Boss exercise 17: Moving blocks
- Boss exercise 18: Adding menu links
- Boss exercise 19: Adding menu items to the secondary links
- Boss exercise 20: Adding arbitrary internal links to menus
- Boss exercise 21: Changing menu item settings
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:
- Learn Drupal 7 with NodeOne, part 11: Introduction to fields
- Learn Drupal 7 with NodeOne, part 12: View modes and displaying fields
- Learn Drupal 7 with NodeOne, part 13: Taxonomy, vocabularies and terms
- Learn Drupal 7 with NodeOne, part 14: Image styles
- Learn Drupal 7 with NodeOne, part 15: Fields on comments, users and terms
Try your skills with these exercises:
- Documentation site exercises: introduction
- Documentation site exercise 1: Documentation page
- Documentation site exercise 2: Documentation collection
- Documentation site exercise 3: User information
- Documentation site exercise 4: Topic tags
- Documentation site exercise 5: Tables of attachments on comments
- Documentation site exercise 6: Retro style user images
More!
If you are interested in learning more Drupal, then the following material may be of use:
- A tutorial for the References module, useful for creating information structure on your site
- A pretty big tutorial for the Views module – the most used of all Drupal modules – used for making all sorts of lists, and displaying contextual information
- The Documentation site exercise suite, containing exercises for the Views, Flag, Rules, Page manager and Panels modules. (First exercises appear in the previous section.)
- The NodeOne Drupal learning library in general.
- More videos and tutorials found at Tutr.tv.
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.
