Drupal for Beginners
Welcome to Drupal!
Hi, Drupal beginner! Welcome to the world's most powerful, flexible, open-source content management system. Even if you have a stellar background in web design, programming, or other tech, you'll probably hit a few minor roadblocks as you start picking up Drupal. And if you aren't a techie, there'll be plenty to learn.
But contrary to things you may have heard, Drupal is getting easier to use all the time, and even the non-techie can create and manage a site with this powerful stuff. Here are some notes on what to expect, and ways to make progress faster, from a fellow user who's probably not far (if at all) beyond you on the learning scale.
Drupal is a content management system (CMS) for entering and editing content, dynamically arranging data on the fly, and displaying it as pages. It's not for creating static web pages based on .html files. It's for putting content (articles, product info, whatever) into a database, and flexibly organizing that content into web pages however you like.
Some say Drupal isn't even a CMS; rather, it's so flexible that it's a content management framework, a toolbox from which you build your own CMS. Then again, others roll their eyes at that description. Leave that debate to the philosophers; either way, you can build neat stuff with Drupal.
Who uses it?
Organizations and sites including IBM, Google, Nike, BBC, CNN, Reuters, Popular Science, NASA, MTV, AOL, Nokia, Sun Microsystems, AT&T, Fedex, Forbes, Warner Bros, Universal Music, Sony Music, Virgin, Slate, Lucas Arts, MacWorld, Adobe, NATO, the UN, Novell, Harvard University, MIT, Stanford University, Yahoo!, Greenpeace, Amnesty International, Human Rights Watch, The Onion, the French government, the Dutch government, the British government, the US White House, Linux Foundation, Java.net, Internet Systems Consortium, Electronic Arts, Metallica, Michael Jackson, Eric Clapton, and Drupalace.com. It's found particular favor among collaborative communities (such as political campaign sites), online newspapers and magazines, and educational institutions. Find thousands of beautiful Drupal-based sites at Drupalsites.net.
What's so great about it?
- A CMS like Drupal lets you separate those who create the site, those who administer it, and those who add or edit content. The tasks involved with these can be broken down and distributed as you like. In other words, there's no need for a central "webmaster" charged with everything.
- From the start, Drupal was made for collaboration, with great capabilities for user and "role" management, community moderation, multiple blogs, polls, etc. An extensive and flexible permission system lets you control what roles can do what.
- Drupal is designed to be modular. You can pare a site down to very basic functionality, or add just about any feature via thousands of building block-like modules. There are modules to add or enhance e-commerce, social networks, speed and performance, multimedia, link management, user group management, search, surveys, events, WYSIWYG editing, security, podcasting, CRM, advertising, scheduling, email newsletters or notices, project management, administrative reports... everything.
- If you are a developer, you can modify modules or create your own, to give your site unique functionality. It's open source, so nothing is hidden.
- Drupal works with well-known, robust, open-source components such as databases and web servers. There's nothing in Drupal to "lock in" your data or otherwise put you at the mercy of a vendor.
- A single Drupal installation can run multiple sites (whether subdomains or multiple domains). There are no complications such as a "master site" and "sub-sites"; all sites are served equally and happily by the Drupal installation. The benefit: You need only maintain one installation for all the sites.
- Drupal's tools for organizing content, such as an extensive system for keyword tagging, are among the best out there. You don't need to shoehorn content into restrictive hierarchies.
- Drupal even lets you modify data types ("content types"), or create your own.
- Drupal cleanly separates a site's structure and content from its graphic appearance, meaning either can be modified independently of the other.
- You can use any of hundreds of user-contributed graphic themes, modify one of these to your liking, or develop your own from scratch.
- Drupal handles multilingual sites.
- Drupal offers excellent security, thanks to a dedicated security team and full disclosure of issues.
- There's plenty of Drupal documentation and support, both commercial and free: videos, tutorials, books, seminars, training, service providers, and more.
- Drupal places importance on accessibility and adherence to web standards.
- Drupal is very SEO-friendly.
- Drupal costs nothing.
- Most importantly, Drupal is "future-friendly". Perhaps more than any comparable CMS, it'll let you restructure everything or add countless new features as your site grows. It'll scale beautifully as your users increase. It'll keep improving as the developer base releases new updates. It'll stay exciting as the user community keeps growing.
So it's perfect, right?
Drupal installation and setup is well within the capabilities of many non-technical users, but it makes no claim to be the simplest system in that area.
Because of its modular "tool kit" approach, a fresh Drupal installation is fairly bare-bones. Turning it into the site you want will probably require some module installation and configuration. (Image handling and WYSIWYG editing are two examples of features that many users will want to add to a new Drupal installation.)
Unlike traditional sites built on static pages, or even the approach taken by some CMSs, Drupal's flexible, dynamic way of handling content doesn't create a hierarchical organization of pages. That's a wonderful thing for some sites, but some site creators will want that organization (or might feel uncomfortable without it). Fortunately, you can achieve the same effect in Drupal; it'll just take some familiarization with the ways to do so.
Any sort of gorgeous graphic appearance is possible with Drupal, but the existing selection of ready-to-go graphic themes is not as extensive as some CMSs' selections. Tweaking is often needed to get the look you want.
Finally, not every feature is top-of-the-line; for example, many users replace the simple built-in forum system with more full-featured alternatives.
In short, Drupal is great as a platform to take a site anywhere. But if you want the simplest setup for limited needs, something else may serve you well. (For example, you could set up a feature-rich blog more quickly with WordPress, although it wouldn't have as much flexible expansion capability as a Drupal-based blog.) See Is Drupal the right tool for the job? for more.
The first big questions
How is a CMS like Drupal different from conventional web site building?
A CMS like Drupal isn't for making static, fixed web pages. It stores your site's content – articles, pages, blog postings, images, and so on, as well as information like your site's name and layout – in a database. The CMS then generates your site's pages "dynamically" from that database, following rules that you set.
With Drupal, anyone with permission can add or modify the database's content from a normal web browser, with no special software. When you make a change, such as changing the name of a menu item, or changing the site's logo, you're making that change to the database that all pages are generated from. That means the change is instantly made throughout the site, without your needing to modify a dozen pages individually.
The point: With Drupal, think in terms of creating content, not pages. Think of the data or other content you want as the core of the site – articles, product data, links, downloads, images, whatever – and what form those should take. You can then use Drupal to arrange or rearrange those pieces of content into pages however you like.
What do I need to know? Do I need to know programming/HTML/graphic design?
Good question. First, if you just want to administer a Drupal site – adding and editing content, maybe changing some basic site settings – you really don't need specialized tech knowledge, at least if the site was set up ready-to-go. Here's the lowdown on what you need to administer a Drupal site. Or, to summarize in a 25-cent version:
- You don't need to know programming of any sort (unless you want to do fancy stuff), though you'll want to be comfortable with configuration of many options and settings.
- You don't need to know HTML (though it won't hurt!), unless the site requires you to format text with HTML tags. If the site is set up with WYSIWYG text editors, you only need to be comfortable with word processor-style formatting controls.
- You don't need to know graphic design; you can use any of many user-contributed graphic themes as-is. Uploading images, too, requires no special skills, other than those to first create or acquire the images on your own. On the other hand, if you'll be designing or modifying the site's graphic appearance, CSS and graphic skills will help.
If you're only looking to add or edit content, and not do much else in the way of administration, the requirements are even lighter; in particular, you won't need to deal with configuration beyond that of the content you're working on.
How about initially installing Drupal and setting up a site? Is it hard?
If you'll be doing those tasks on your own, you'll want a degree of comfort with managing files on remote servers, working with MySQL databases, reading (and following!) a fair amount of documentation, and so on.
It's not necessarily hard, but many would-be users won't enjoy it. If you don't like lots of initial configuration work, find a Drupal pro to do that for you, and then take over as manager of the newborn site.
What tools do I need?
You don't need any specialized software to administer a site or edit its content. As briefly mentioned above, you configure the site, post content, and so on through the same web browser you use to view the site.
There is no special mode in Drupal that reveals "control panels" or other admin tools. Rather, various administration forms, and forms to edit or create content, appear as pages (or sidebar "blocks") of their own, online and "live" like any other page – with the important distinction that they only appear for users with proper access permission! (See more at In Drupal, viewing a page and editing a page are almost the same)
This way of administering a site feels odd to some newcomers from other CMSs. But you'll soon find it natural and sensible to interact with the "live" site itself, not with separate administration interfaces.
What's stored on the server? Where are the web page files?
This is where things really differ from old-style web development based on creating static .html files. What you won't find in the file structure of a Drupal installation are actual files for each of a Drupal site's pages. The pages don't exist as files, as they're generated by Drupal on the fly.
What's key for most users is this: If the basic Drupal installation is already done, there may be no need to deal with, or even know, the structure of files on the server! That should be a comfort for a non-technical user who just wants to configure a Drupal site or edit content, not initially install a site or perform modifications to internal files. Admins and contributors can just work on the site via the site itself, and ask a technical administrator to handle tasks like upgrades or module installations.
What do those crazy words mean?
Drupal employs some unique terminology. A few quick pointers:
- The word "node" is important (if not intuitive). Think of it as "piece of content" – a blog post, an article, a poll, what have you. It lives in the database and is made up of sensible fields (title, body text, creation date, etc.). Drupal has several ready-made types of nodes (aka "content types"), each with fields appropriate for its intended use; you can modify these to your liking or create completely new content types.
- "Node" is not the same as a "page", i.e., a web page. Drupal creates pages out of many components: typically one or more nodes, surrounded by a header, some menus, possibly sidebars with blocks of extra info, and so on. To clarify the difference: Users create nodes (articles or other content); Drupal creates pages out of those nodes and other page elements.
- The word "taxonomy" refers to the system for tagging and organizing content by keywords. Drupal calls those keywords "terms", and groups of terms "vocabularies".
- You won't get far in Drupal discussions without seeing the word "Views". This is an optional – but generally essential – add-on for organizing content into lists. With Views, you can create custom database queries to select and display just the content you want. (Yes, Drupal does that without Views, but Views increases the power dramatically. It's a rich topic; start learning more from this Views documentation.)
- "CCK" (Content Construction Kit) also pops up a lot. It's an add-on that lets you define new types of custom nodes – say, a "Product" content type with fields for name, description, price, etc., or an "Artist" content type with fields for name, genre, biography, etc. Like Views, CCK is optional but is increasingly a core part of how people make Drupal do amazing tricks. (Start learning more from this CCK documentation.)
To add a dash of challenge to terminology, the thousands of people involved in Drupal creation and documentation may not always use the same word with complete consistency. Nor is standardized usage always crystal-clear; for example, there's a content type called "page" (one specific type of node) which, understandably, gets confused with the generic meaning of "page" (any web page).
Fortunately, a little bit of reading will quickly get you on track with Drupal terminology. Start with these:
Great starting points
The headquarters for all things Drupal is Drupal.org.
The first stop on the Drupal.org itinerary is the documentation ("handbooks") section, particularly Getting Started. Within that, check out The Drupal overview for the big picture, and General concepts to really start learning. (Also bookmark Acronyms and expressions used on Drupal.org to aid your reading. You don't need to go through that list and read all the definitions; just refer to it if a term you don't understand pops up.)
Other key sections within Getting Started include the popular, beginner-friendly Drupal Cookbook guide, documentation for some important core modules and contributed modules, and Drupal FAQs. The sections Drupal 6 and Drupal 5 (depending on your Drupal version) are also full of helpful stuff, like basic sections on administering a site and adding content.
The documentation covers a lot of stuff, and content aimed at beginners is mixed in with that for pros, so it can be hard to find the instructions you're looking for. A good idea is to browse through the documentation menus for a while to see what sort of content is in there, and take note of the items that look helpful. (Also see these tips on searching for info Drupal.org.)
On my own site, I have beginner-level instructions for administering a Drupal site: Easy Drupal Admin Manual (EDAM).
You'll find notes on creating pages, configuring basic site options, and so on. However, EDAM is aimed at the administrator of a site that's already set up; there's no information on, for example, installing and configuring new modules. The Drupal.org documentation will be much more helpful there.
Using the Drupal.org forums
One extremely useful source of help and information is the forums at Drupal.org. It's a very active forum: The biggest catch-all container for general questions about a running site, Post installation, receives dozens and dozens of new questions every day. That's means there's very likely a past or current participant with an answer to your question – yet it can be difficult to find that answer in the mountain of posts, or even get the attention of current users.
What's more, questions of interest to site developers, site administrators, and Drupal programmers are all jumbled into the same pot. Likewise, the simplest and the most complex questions imaginable all swirl together.
Don't be scared off. Take a look at the forums list to get a sense of what sort of questions you'll find, and which forum should receive your question.
The Drupal.org forums can be very friendly to beginners – though as with most any forum, it's not overly difficult for a newcomer to annoy the regulars. There's a great page of Tips for posting to the Drupal forums; don't post until you've read those closely.
One bit of advice I'm not seeing on that page: Don't quickly make a second post to ask "Can't anyone answer my question?" It may take time before anyone sees your question, and even more time before a helpful but busy soul can make a response. Some forum veterans recommend no "bump" post for at least 24 hours.
Even with a bump or two, some questions unfortunately go unanswered. If a long time goes by (a week?) with nothing, try re-posting with changes to the title and content.
Also: when you see questions that you can answer, do so! That'll not only help the inquirers, it'll take a load off of experienced users and let them get around to answering your questions.
Finally, rest assured that there are other places to talk Drupal out there. Check for appropriate forums or comment threads on your favorite Drupal- or CMS-related websites. One example is the Drupal-tagged section of Stack Overflow.
Best practices for Drupal
For developers, Drupal.org has a useful section on best practices. For the administrator or content editor, this site has a simple list of Best Practices for Site Admins. (Please suggest more best practices!)
Common how-to questions
The below are a few beginner questions that I see pop up most frequently online (especially on the Drupal.org forums):
Help! I logged out and can't get back in!
Don't be embarrassed; it seems every beginner does this. Fortunately, it's always simple to log in again.
How do I place my content on the <something> page?
"I made a 'news' page; now how do I place an article on that page?" It's a really common question among beginners, even those with experience using other CMSs.
Expanding a little more on an earlier topic: With Drupal, you don't create a page and then decide what nodes will go on that page. Rather, you 1) create nodes, each of which by default gets its own path; and 2) create instructions telling Drupal to create a page on the fly from a node or nodes, and from other components (header, blocks, etc.).
(One exception to the above: the front page. It's the one instance in which you can tell Drupal to place nodes on a specific page, though even there "front page" is something Drupal builds on the fly, and not a static file.)
The "instructions" you create can be as simple as linking a menu item to a node's path; click that menu item, and Drupal builds a page around that node. Or an instruction can be a more complex path that tells Drupal to build a page around a list of all nodes tagged with a certain keyword. Or using Views, it can be a path that fetches a certain group of nodes and displays it a certain way. And so on. Building instructions out of settings, add-on modules, paths, etc., you can give Drupal very detailed orders on how to select and display certain nodes as part of a page.
All the above is an oversimplification, but the ideas helped me "get" Drupal at the start. (If it's essentially a misguided take, I welcome correction from the more experienced!)
The following links might be useful to anyone with questions about the relationship between nodes and pages:
How do I make a <fill in blank> site?
A news site... Corporate site... Product catalog... Video hosting site... Basic blog... Wiki... Members-only sites... Whatever it is, someone's probably done it in Drupal.
Over at Site recipes in the Drupal.org documentation section, helpful contributors have described what modules, settings, and so forth they've used to build specific kinds of sites.
If that doesn't have what you're looking for, try the Drupal showcase forum, which has everything from short notes on the "recipes" behind simple sites to extensive case studies of big-name sites built with Drupal.
What modules should I look at?
Whichever ones you need for your site, of course. Bare-bones Drupal is a little sparse, so chances are you'll want to beef up features via a good handful of modules – but with over 4000 available so far, where to start?
Great Modules for the Drupal Beginner is an overview of some common, popular modules a beginner might want to check out first. Take a read.
Other helpful resources
On the interwebs
It's worth a second mention: The Drupal.org documentation, also known as Drupal handbooks, is your best all-round source of documentation.
As for what else is out there, check my links page for all the tutorials and documentation sources you could want.
One good ebook for Drupal newbies is Drupal 6: Ultimate Community Site Guide, a tutorial that takes the reader through complete construction of an operational site loaded with community features. See my review of the ebook.
Other items of interest on Drupalace.com
Anything on this site might be of interest to a beginner, so poke around. A few recommendations in addition to what's been pimped so far:
SEO, Traffic and Revenue: Drupalace's Online Manual (STARDOM): An in-progress compilation of notes and advice for achieving goals with an operative site.
Drupal New Site Setup Checklist: This checklist starts out with a ready-made "blank" site template that I use, so it won't answer all your questions about creating a site from scratch. It might be of some help, though.
Question Bank: Miscellaneous "how to" questions, whether answered or not...
Drupal musings: Pretty much all the rest of the content on this site. Miscellaneous blog posts and the like.
Drupal is a little more challenging at first than some of the simpler web site systems out there, but it's definitely possible to quickly make great sites with Drupal, even for technical non-wizards. And once you're up and running, you'll find that the features and functions you can add are far wider with Drupal than with more limited systems.
(I think I'll coin a motto: "Drupal: It's not as scary as its logo." : )
Good luck and have fun!
What do you think?
Beginners, was this page helpful? Are there some important newbie questions left unanswered, or some answers needing clarification?
Experienced Drupalists, is there some key advice for beginners missing here? Did I write anything to lead the newbie astray? Would you recommend this overview to a beginner looking for an overview and some starting pointers?
Your feedback is greatly welcomed.