Easy Drupal Admin Manual (EDAM)

...for the beginning or even completely non-technical administrator of a Drupal site

Easy Drupal Admin Manual (EDAM)

Welcome to Drupalace.com's beginner-friendly online instructions for building, maintaining, and doing great things with a Drupal web site!

I'm naming these instructions the Easy Drupal Admin Manual, or EDAM. Like the cheese: appealingly mild, and suitable for the gourmand and the first-time cheese-eater alike. (With a slightly nutty taste, say some.) All without the red wax coating.

The name is also a friendly nod to the Dutch origins of Drupal itself.

Who is this for?

These instructions are not aimed at the typical Drupal developer or tinkerer who might normally peruse this site and similar online Drupal resources. They're instructions I originally wrote and posted elsewhere for personal clients – primarily non-technical ones at that. As such, they're a slighly oddball sort of Drupal manual.

Early pages assume no knowledge whatsoever of what a content management system, open source, or Drupal are. Overall, the manual will be very basic for even a moderately technical user. It's my attempt to make site admin possible for a client who may be completely new to site management and related topics like file uploads, browser-based text editors, etc.

(In hindsight, I was a wee optimistic that completely non-technical clients, even with good, hand-holding documentation, could smoothly take over a Drupal site, but that's another story. For now, I'd like to make the pages public as they are.)

Target readers

Caveats! (That means "Beware!")

I'm relocating these pages to this site, where I hope more Drupal users – client or not! – will find something useful within. But a few warnings are in order.

First, the instructions are geared only to Drupal 5.x.

Second, most of the pages were written around the beginning of 2007. That doesn't mean much in terms of the Drupal content, but the text reflects practices of mine that were even more primitive then than now. As one example, there's a heavy emphasis on forming links and node lists based on taxonomy ID numbers, as I was not then hep to the slicker method of using Views.

Third, the text was written specifically for clients, not for generic unknown users, and strongly reflects the ways I personally like to set up and explain sites. That may or may not be good for your purposes. Likewise, it contains nothing about installing Drupal; again, it's for clients, who wouldn't be concerned with that task.

Fourth, I cheerfully taken some non-standard liberties with terminologies where I've found the usual Drupal way to be confusing. (I'll try to clean my idiosyncracies up a bit where they may be too odd for the casual visitor; let me know if something doesn't make sense.)

Finally, this manual is wildly incomplete, and is very much a work in progress. It'll keep changing as I find better ways to do things; as viewers report problems, solutions, and discoveries; and as Drupal itself keeps improving.

With the above in mind, I don't know whether this manual is appropriate for inclusion in a more public forum (like drupal.org). For now, I'll keep the goods here, see what the reaction is, and make appropriate improvements.

Thank you!

Your feedback is wildly appreciated!

Welcome to Your Site

So, you've set up a raw Drupal site, or have been handed the keys to a site – but you don't know much about where to go from there. (This manual assumes you've already got a fresh site and administrator access to it. If not, see Getting Started at drupal.org.)

First things first: Welcome to Drupal! 

What's Drupal?

Your site is built on Drupal, an open-source content management system. What that means is:

Open source:

The software behind the site is built by a global network of volunteers. Their goal is first to create the ideal software that they themselves want to use, and second to share that with anyone who wants to make use of it. The "source" – the programming code that makes up the software – is open for anyone to view and modify.

That's different from traditional proprietary software owned and sold by the developer: you can only use proprietary software under the specific terms allowed by the developer, and generally can not see or modify the source code at all.

With open source, you don't get a developer or vendor ready to lead you by the hand, but you don't get the handcuff treatment either. With assistance from friendly folks in the open source developer and user community, and a little self-learning on your own, you'll benefit from the freedom.

Content management system:

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. Drupal then generates your site's pages "dynamically" from that database, following rules that you set.

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.

A content management system isn't the best solution for all web sites. But it is for many web sites.

More about Drupal

Drupal's home base is at http://www.drupal.org. You can learn a lot there to enhance these instructions, especially from these sections:

Drupal Handbooks: http://drupal.org/handbooks. Lots of info; a bit overwhelming!

Drupal Cookbook: http://drupal.org/node/120612. Part of the above handbooks, concentrating on basics for new Drupal users. Helpful stuff!

End User Guide: http://drupal.org/node/6261. Also part of the handbooks. Information focused on the non-administrator user – helpful both to you, and to any site visitors to whom you give permission to add comments, create content, or otherwise interact with your site.

You're in charge

As administrator, you are in control of your own site: you add and modify content, set the site's basic rules, control its functionality, and so on. Drupal makes that task far, far easier than it would be for an old-fashioned static web site, letting you wield great features that would have taken a small army of webmasters not long ago.

Ways you can control how the site works include:

As with all powerful things, though, there's some learning to do, and there will be questions. This online manual is one of many resources to help you out. Read it and try things out as you go.

First Steps: Please Read!

A few up-front things to get out of the way. If you're a beginning Drupal administrator, especially one without experience in content management systems, please read these pages!

Understanding These Instructions

Instructions on understanding the instructions. It's all easy stuff, I promise.

Alphabetizing

A small but important thing. There are many words we'll need to use in discussing your site that have normal, everyday meanings, but also have special technical meanings within Drupal. A perfect example is "page": it's impossible to discuss a web site without referring to "pages" left and right, yet Drupal also speaks of a special, specific kind of content it calls (confusingly enough) "page".

Context often makes the difference clear, but I like precision in words. It's easy to add that clarity in text: I'll write "normal" words normally, and capitalize those with special meaning in Drupal. So, words like "page", "term", and "vocabulary" have their normal, generic meanings, but "Page", "Term", and "Vocabulary" have special technical meanings.

Note that other sites, books, etc. aren't likely to capitalize like this; it's an EDAM exclusive. Even administration forms within your site, and the helpful little blurbs of instruction that appear there, don't use this capitalization. Context should make things clear in those spots. Usually. Good luck!

Referring to pages on your site

We'll often want to refer to a specific page address (URL) on your site. But that'll differ for every site, as the domain differs for every site.

I'll write it like this example:

<your site domain>/node/add

Replace <your site domain> with your actual domain, and you're in business.

For example, if your site's domain is "www.drupalace.com" (which it isn't, by the way), then you get to the URL

<your site domain>/node/add

by typing

www.drupalace.com/node/add 

into your browser's address field.

Referring to menu items

To send you to a specific page on your site, the manual will often ask you to click on such-and-such link in so-and-so menu. I'll write it starting with the menu's name, followed by the menu item to click, followed by additional sub-items (if any). An example:

Navigation menu » Create content » Blog entry

That tells you to go to the Navigation menu (about which much will be said later), click the item "Create content", and from the additional menu items that appear from there, click "Blog entry".

Important Terminology!

A name for everything

Drupal is an open-source content management system awash in accolades for its flexibility and power. That said, some of the terminology that Drupal's creators and users make use of can sound a bit odd. In fact, I'm tempted to go ahead and replace a bunch of those terms with more sensible ones, but that would cause you trouble when reading resources outside of this site.

So let's learn a few key words that Drupal uses. That will make it easy for you to understand instructions from any source, and talk with other users and experts.

Remember: Special "Drupal words" get capitalized in this manual (though not generally in other resources). A "page" is any web page; a "Page" is a special type of page. And so on.

If any of the definitions here are incorrect or if more words need defining, please speak up!

The list

node

It's out of alphabetical order, but this one comes first. "Node" is a key piece of terminology in Drupal. Each "piece of content" you create is usually stored as a node. Typically this will be an "article" of some sort, such as a blog posting, a news story, a corporate info page, and so on. But Drupal allows many kinds of nodes, including polls, forum topics, ratable product reviews, and much more.

Building a site with Drupal is largely about creating and then manipulating nodes: you create the nodes that are the meat of your site, and then instruct Drupal in where and how to make those nodes appear as part of the site. Naturally, you can also tell Drupal to keep a node hidden (as a work-in-progress draft, for example), delete a node, and so on.

There's no need to capitalize "node", as it's not going to be confused with any other use of the word.

administer

This is a "computer-sounding" word that puts fear into some newcomers, but it's nothing sinister. Managing your site – adding or changing what's on it, modifying how it works, and so on – is administering the site. That's what you'll be doing, with more ease than you may have thought possible. You're ready to become an...

administrator

A person who is authorized to edit or otherwise manage the site. "Admin" is a common abbreviation. Drupal allows many levels of admin; sufficiently high levels can set what lower levels are allowed to do. It's possible to set many levels of admin, each with a very finely-detailed list of permitted administrative actions.

alias

See path, alias, and URL.

block

A typical site has its "main" information displayed as a node, or a list of nodes, in the center. But there may also be menus, lists, links, ads, and other information off to the sides of the page. These are "blocks", and you're in control of them on your site: you can create, modify, and relocate them. You can of course turn them on or off – even for specific pages only.

A sample block containing a site's main menu.

sample block

As used by Drupal, "block" shouldn't get confused with other uses of the word, so there's no need to capitalize it.

browser

A browser is a program used for viewing web pages: Firefox, Safari, Internet Explorer, OmniWeb, and so on. (If you refer to that software as "the Internet", please stop.)

One of the great things about your Drupal site is that you also administer it using the same browser; no separate software is required.

Category

Drupal lets you assign keywords, or "Terms", to your nodes. The language it uses to discuss this, however, is frankly confusing. Here's your guide:

  • Term: A Term is a keyword or tag that you associate with a node. Useful Terms include words like "news", "product", "pets", anything you can think of that classifies your content. With Terms to classify your content, you can easily organize it. For example, you can create a menu item called "News from the Pet World", which is set up to display any nodes that have the Terms "news" and "pets" attached – i.e., the articles you've written about pet-related news.
  • Vocabulary: A Vocabulary is a number of Terms grouped together for convenience. For example, you might have a Vocabulary called "Product Type", containing Terms like "sweater", "jacket", "socks", etc., for use with any node that describes a product.
  • Taxonomy: This is a somewhat vague word to indicate the overall way Terms are used to classify and organize nodes in your site. You likely won't need to worry about this word; if you see it in some document discussing Drupal, just know that the topic concerns Terms and Vocabularies.
  • Category: This is a confusing word: some Drupal documents say it means the same thing as Taxonomy, others seem to equate it with Vocabulary. I'll try to avoid using it, and stick to discussing the words that Drupal is clear on: the "Terms" that act as tags for your nodes, and the "Vocabularies" that are groups of Terms. (But just to keep things complicated: to set and edit your Terms and Vocabularies, you need to visit a form titled "Categories".)

content

Content is a vague word. It's the stuff you fill your web site with: news, stories, photos, you name it. Most content on a site is either text or images, though your content may include streaming movies, downloadable files, and other more exciting things.

Much of your content will exist as nodes (see above), with each node being a specific story, article, blog post, poll, etc. But everything placed within blocks, menus, and so on is also content.

Drupal

The strange name of the content management system you'll be working with. Drupal is used to make countless dynamic web sites, including this one. Drupal lets the administrator – you – command how and when your content appears, in what configuration, to what viewers. And that's just for starters. Drupal is a very flexible and powerful system. (It's not the easiest to get started with, though, which is where many beginners appreciate a helping hand.)

The online headquarters for Drupal developers and users is www.drupal.org.

excerpt

An excerpt (also called teaser) is a short form of a node's content, typically shown in place of the full node in lists.

For example, you might have a blog display excerpts from your last 10 posts, instead of the full posts. Each excerpt might be the first paragraph or two from the full post, or a separate short text introducing the blog post. Readers would then click on the post's title, or a "Read More" link, to display the full post.

field

A field is a text box, check box, etc. into which you (or another user) inputs data. When you log in, you type your ID and password into the appropriate fields. When you create a new node, you input information and settings into the appropriate fields, in a form that's full of fields. And so on.

form

I'm using this word for pages that are for editing content or settings. A form could be a page for creating content (a blog posting, an article, etc.), or could be a page for modifying site settings (such as setting the position of blocks).

front page

The first page that site visitors see. Many sites use the front page to display a list of nodes: blog postings, news, products, anything. But users with a little skill can also create a custom front page, such as a single large "splash page" image.

Navigation menu

A menu that appears to an administrator when logged in. The menu appears in a block headed by your user name, and contains links to all the important controls you need to create content, administer the site, log out, and more.

node

See node at the top of this list.

node-list page

There's no accepted name for this, so I'm making one up. A node-list page is a page that doesn't present a single node as its focus, but rather lists several nodes, whether full nodes (like complete news stories) or excerpts (like the first paragraph of news stories, followed by a 'Read More' link).

page

As mentioned many times in this manual, I'll try to avoid a common cause for confusion by using "Page" (capitalized) to mean a specific type of node that Drupal calls "page", and by using "page" (uncapitalized) to mean a web page.

If you're new to content management systems like Drupal, always keep in mind the big picture: You don't use Drupal to create whole pages, top to bottom, like webmasters did in the old days (you know, a few years ago). You use it to create the "components" of your web site – the nodes that contain your articles, info, etc.; the blocks that add other features; the menus for navigation; and so on – and tell Drupal how to put all those together into pages. Drupal does the actual page creation lifting from there.

path, alias, and URL

A path is the internal "address" of a node or other content item that can be specified via the browser. Your site will automatically give such content a path like node/14.

An alias is an alternative, friendlier path, which can be used in place of the less-friendly path that Drupal creates. For example, when Drupal gives your product info page the unexciting URL node/14, you can add the alias product_info.

Note: Drupal administration pages aren't always as consistent in their use of the words; some places freely mix "path" with "alias". Meanings should usually be clear, though. In any case, the usage in this manual is pretty standard tech usage, so capitalization isn't needed.

URL generally refers to the Internet address of a content item. For example, sticking with the above examples, visitors can reach your product info page at the URL <your site domain>/node/14 or the URL alias <your site domain>/product_info.

Taxonomy

See Category.

teaser

See excerpt.

Term

See Category.

Theme

A Theme is a set of instructions, stored as a number of files on the web server, that define a specific graphic design and layout for your site. The Theme specifies things such as text design, placement of site elements, background colors, and so on. You can choose freely from available Themes, changing the entire look of your site with a couple of clicks. Those with advanced programming and design skills can create new themes.

URL

See path, alias, and URL.

Views

A View is a very powerful, flexible way to create a list of nodes and display the list on a page. Using Drupal's Views function, you set criteria – say, all Blog entries published in the last month by user Jim – and Drupal returns those nodes as a list, called a View. You can also tell Drupal how to present the resulting list – say, titles only, or titles and excerpts, all arranged alphabetically or arranged by date or whatever you like.

Views let you create pages or blocks listing the content you want to present, in the way you want to present, and are a great feature for the Drupal admin to learn.

Vocabulary

See Category.

Best Practices for Site Admins

I'll keep a list here of best practices that will make your job easier.

Use a good browser

Your site should display well on any modern browser. Unfortunately, some administrator functions may not work perfectly on all browsers. Here's a list of known issues:

  • Safari: Support for text editing features, such as TinyMCE, are experimental on Safari 2.x or lower, and may not work well. Safari 3.x may work well, but test before attempting to post a long article. If there's any doubt, consider using Firefox instead.
  • Internet Explorer 6 or lower: These older, but still very common, versions of Internet Explorer don't have particular incompatibilities with Drupal; they're just poor products. They don't support tabs, which can make your admin job much easier (see below); they can't handle modern PNG graphics, which you may want to use; and they're horribly insecure. Consider upgrading to Internet Explorer 7, or even better, Firefox.

For a good, Drupal-friendly browser, it's hard to get much better than Firefox, but use whatever you like and works well for you. In any case, though, follow this advice:

Use browser tabs

Modern browsers like Firefox, and browsers like Internet Explorer 7, support browser tabs. Administering your site requires you to open one page or form after another; you're working with pages over the Internet, and there can be an annoying lag with every link or 'Save' button.

The job is much smoother opening every link in a new tab. Open the main administration page in the first tab

Navigation » Administer 

and maybe the Create content page in the second

Navigation » Create content

and any other often-visited pages in additional tabs.

Leave those pages open, and from there, open new administrative pages, or new content pages, in new tabs. The benefit: less waiting to return to often-used pages again and again, and while you're waiting for a page to save or open, you can switch to another page's tab and do some work there.

Experiment in private

If you're experimenting with big changes, overhauling the layout, or otherwise tweaking the site a lot, visitors may see confusing shifts in design (or see in-progress changes you didn't yet want to reveal). Consider taking your site off-line while you work.

Save long text during input

It's easy to forget this when things are working well, but when you administer your site you're communicating with a server that may be thousands of kilometers away, via Internet byways of imperfect stability. Add in the possibility of local trouble on your own computer, and once in a rare while, a page you're working on may go "poof!" without making it into the site database first.

If you're creating a long bit of text, consider copying the work in progress every few minutes, and pasting it into a word processor document locally. Just in case.

Editing text outside the site

You can even do your writing in your favorite word processor, and paste the finished work into the form for your new site page. Just watch for one thing: your word processor and your site's text fields may handle line returns and other formatting details differently; you may have to perform some clean-up in the web form after pasting in the text. But the task will in some cases be easier than doing all the writing inside your site's forms.

Play carefully with Themes

Your site may have multiple graphic Themes available (see Configuring Your Theme). It's fun to switch Themes and try on a new look, but be careful – some Themes will just look awful with a given site. Worse, the occasional Theme may screw up the appearance of the Themes form so much that you can't switch back to a safe Theme!

Before playing with Themes, follow this safety tip: open the Themes form twice (in two separate browser windows or tabs). Experiment using one only. If you should run into that rare bug of a messed-up Themes page, use the backup open Themes page to switch to a safe Theme.

Super Quick Guide (for the experienced and the brave)

Unless you've got experience and confidence with content management systems like this, I strongly recommend that you proceed immediately to the next page, and go through the manual from its proper start. Thank you, and enjoy the ride.

...

Still here? Then you must be experienced and confident. If that's the case, then here's a very quick guide to editing and creating content, for those who just want a pointer in the right direction and can fill in the blanks on their own.

Logging in

If there's no login block on the page you see, head to

<your site domain>/user

Provide your user ID and password. The remainder of this document assumes that your account has the permissions required to perform the administration activities described.

Content basics

There are several types of content, all of which can be configured separately and used as you like. Whatever the content type, Drupal calls the content items "nodes".

Three main types of node are Blog entry, Page, and Story. A good way to use these is as follows:

Blog entry: Use for regular news, announcements, updates, or other diary-like communication.

Page: Use for static information pages: company info, product info, etc. On a business site, this will be a common type of node.

Story: There's little difference between Page and Story. Ignore this option, or use the Story and Page formats to create two separate types of page with different properties. Or this common distinction: use Page for static information, and Story for news or other articles where author and publication date are important.

How to Create a Page or Blog Entry

Once logged in, a Navigation menu will appear (with your user name as its heading), full of options for creating content and administering the site. Click "Create content", and then the "page" or "blog entry" links that appear.

From there, follow these instructions.

Translation (multilingual sites only)

Translation is a special feature for creating a new node that is linked to the original node as a translation. The "Translations" link on a node starts the process of creating a new, separate-language node, which is linked to the original node as a translation. The process from there will be familiar as the standard editing process. Be sure to choose the right language for each node, original and translated!

When completed, switching the site language will switch a displayed node to its translated counterpart, if the appropriate translation exists for that node.

Further instructions are a topic for the future.

Logging In

If you're the administrator, you can log in with your ID and password and begin administering the site.

Where to log in

Depending on your site setup, your front page, or another page on the site, may show a login block like this:

login block

Whether or not you see that, though, you can always log in by going to this page:

<your site domain>/user

Provide the ID and password, and you're in!

Forgotten password

If you've forgotten your password, hit the "Request new password" link. You'll receive a new password by email, at the address you specified when setting up your account.

 

Your Administrator Tools

Once logged in, things will look different: you'll see a block with your user name as its title, full of links. This is the Navigation menu, with links to content creation and administration forms that let you control nearly every aspect of your site.

The Navigation menu

There are many separate forms for administrative settings. The quickest way to get there is via the Navigation menu.

The Navigation menu shows up as a block on your site when you are logged in as an administrator. The block isn't titled "Navigation menu"; it's titled with your user name (such as "chiefadmin", or whatever it may be).

Two key items: Create content and Administer

You'll see many items under that Navigation menu, including two that you'll be using a lot: Create content and Administer.

Create content and Administer both conceal many options underneath. Click on them to see what appears.

When you click on Create content in the Navigation menu, you'll see links open under it, listing types of content you can create. You'll also see a "Create content" page, displaying those same links.

When you click on Administer in the Navigation menu, you'll see links open under it, listing further sub-categories of administration tasks; click on these to see links to the specific tasks. You'll also see a very extensive "Administer" page, displaying sub-categories of administration tasks and the links to specific tasks.

Almost everything you need to do to create and manage content, and manage your site as a whole, can be found in the links under Create content and Administer.

Referring to Create content and Administer pages

To send you to a specific page for administrators, I'll write like this:

Navigation menu » Create content » Blog entry

That tells you to click Create content in the Navigation menu, and then click Blog entry under that. Or click Blog entry on the page that appears when you click Create content.

Another example:

Navigation menu » Administer » Site building » Blocks

That tells you to click Administer in the Navigation menu, then Site building under that, then Blocks under that. Or click Blocks under Site building on the page that appears when you click Administer.

It should be perfectly clear when you give it a try!

What you and others see

On many sites, general visitors who are not logged in don't see the Navigation menu. However, it is possible to give general visitors some administrative ability, and access to the appropriate administrator blocks, if you wish.

In any case, any user who sees the Navigation menu will only be shown links for those functions he has permission to access. 

Seeing what visitors see

If you're logged in as an administrator and would like to see your site as visitors do, without the Navigation menu, just log out and look. Or even better, use two separate browsers, one logged in and one not logged in. After making changes in one browser, switch to the other (non-logged in) browser, refresh the appropriate page, and see how things look.

Setting Site Basics

The following pages cover some of the basic "one-shot" settings: the things you'll likely set at first, and not change later (or at least not often). Topics include the name and slogan of your site, the default front page, the name given to anonymous visitors, and the site's graphic Theme.

Setting Site Information

Overview

"Site information" refers to the name, slogan, mission statement, and footer messages that appear on your site, as well as the default front page, the email address your site uses for automated notices, and the name it gives anonymous visitors. All of these settings appear on one convenient form:

Navigation menu » Administer » Site configuration » Site information

About Themes

You can set your site's name, slogan, etc. on the Site information form, but whether and where they appear also depends on your site's Theme. A Theme is a set of files that determine the overall graphic appearance of the site. Your Theme will set where the name and slogan appear, for example – or it may let you choose whether or not to have the slogan appear, or it may not be capable of displaying the slogan at all.

In other words, the basic appearance of your site is largely determined by 1) the information you input here in Site information, and 2) the site's Theme. See more at Configuring Your Theme.

Filling in site information

Here are the fields on this form:

Name

The name of your site.

Email address

Input an address that your site will use for automatic notifications, password requests, and so on. This should be an address that the chief site administrator checks often.

Slogan

If your site's name is its title, its slogan is like a sub-title. Use this field for a short description of the site, or any slogan or message you want to appear alongside the site name.

Mission

If the site slogan is like a sub-title, the mission statement is like a sub-sub-title. Input something here if you'd like yet another identifying or greeting message. With many themes, the mission statement will appear not in the site's header, but at the top of main content, and only on the front page.

Footer message

A message that appears at the bottom of the site. This is traditionally used to note the site's designer or developer.

Anonymous user

This item seems a bit out of place on this page, but there it is anyway. Your site needs to place some name on anonymous visitors – for example, in logs that note visitors, or in comments if you allow anonymous visitors to leave comments. Here you can set what you like. "Anonymous" or "Visitor" are common, bland choices. Some sites use more interesting names (like those that place the label "Anonymous Coward" on visitors who leave comments without registering for an actual user name). It's all up to you.

Default front page

You can conveniently set any page within your site as the front page that a visitor will see when heading to your site. For example, if you've created a page with the address '<your domain URL>/special_sale' and would like that page to greet all visitors, input 'special_sale' here.

See more here: Setting the Front Page

Configuring Your Theme

Selecting a Theme

First, read this safety tip. Did you follow it? If so, you're ready:

You can, with a couple of clicks, change the entire graphical appearance of your site! Here's how:

Navigation menu » Administer » Site building » Themes

Here you'll see a number of Themes. These are Themes which your Drupal installation is able to find on its server, and is offering here for your consideration.

Note these columns:

Enabled

Some sites want to give users the ability to choose a Theme, rather than display the same Theme to all visitors. Only those Themes which you've enabled, via the check box, will be available to users as choices.

Most sites, though, aren't concerned with that choose-your-own-appearance functionality; chances are you want to display one and only one graphical appearance to all users. Just enable whichever Theme you intend to use.

Default

Here you select the one Theme that your site will use (or, if you're offering multiple Themes to users, the Theme that your site will use until a user chooses another one).

For most site owners, you'll just need to check 'Enabled' and 'Default' for the single Theme you want to use.

Operations

Themes that are enabled will present a 'configure' option here. Here's how it works:

Configuring a Theme

You are able to configure default 'Global settings' that will be used for any Theme, as well as unique settings for any specific Theme (which will override the default Global settings).

Whichever you choose, here are the choices offered on the form:

Logo

Do you have a graphic logo you want to appear on the site? Here's where you direct the theme to display it (see instructions below on specifying the logo file).

Unfortunately, you're not able to specify the logo's exact position or size through these settings; the logo file needs to be "ready to go", and able to fit nicely into the space allotted for it by the Theme. Anything beyond that is a job for major editing of the Theme itself (see below).

How big should your logo be? It depends on the Theme you're using. Below are ideal logo sizes in pixels for a few common Themes you may have access to (information taken from http://drupal.org/node/120644 ):

Theme Width Height
Bluemarine 48 55
Chameleon 49 57
Garland 64 73
Minelli 64 73
Pushbutton 144 63
Fancy 80 80

If your Theme is not one of the above, you may require another ideal logo size.

Site name, Site slogan, Mission statement

If you've input these items into the Site information form, these are the settings that tell your site to display them.

User pictures in posts, User pictures in comments

If your site allows users to upload an identifying image, these settings instruct the Theme to display them.

Search box

If your site's Theme has a built-in search box functionality, this setting turns it on or off.

This search box, if supported by the Theme, will appear wherever the Theme directs it – in many cases, toward the page's upper right corner. This search box is separate from any other search box you may have have enabled in a block. Chances are you'll want this built-in search box enabled, or a search box in a block, but not both.)

Shortcut icon

This refers to the tiny icon that appears in front of the URL in a browser's address bar. Check this if you'd like the site to display this icon.

Logo image settings, Shortcut icon settings

Here you can set the logo and shortcut icon for the Theme to use, should you choose to use those. Each item has a handy 'Browse' button so you can locate and upload a file from your computer.

Display post information on

This setting only appears on the settings for Global configuration, not for specific Themes.

Do you want posts by users – including you, the site administrator – to display a message "Submitted by <user name> on <date>"? If so, check the boxes for the types of node on which you want such messages to appear.

On a typical site, you might want such a message to appear on Blog entries and possibly on Stories, where the date and author are important. But you might not (to continue the example) want to have the message appear on Pages, which you may be using for static information like a company overview. It's all up to you.

Detailed editing and creation of Themes

Beyond the options offered here, editing a Theme is beyond what the Drupal site itself can do. A Theme consists of several PHP, CSS, and image files, all of which work together with Drupal to output an HTML document to site visitors' web browsers. Editing or creating a Theme requires knowledge of PHP and CSS, and probably creation of custom graphics.

If you need further customization of a Theme or have an idea for an entirely new one, talk to a designer about the work, or see the drupal.org Theme Developer's Guide.

Creating Content

This is the meat of what it's all about: creating new content for your web site. Let's jump in.

Node Types

You can choose from many types of node: blog posts, stand-alone pages, interlinked book-like pages, and many more.

Your node options

Head here:

Navigation menu » Create content

You'll see a list of all the node types you can create (which may vary by site). Here's what the chief ones are:

Blog entry

What it is: A piece of blog, or "web log", content. If you're uncertain what that is, don't worry; we all were, just a short while back. While there's no strict definition of blog, it typically refers to a series of online stories, musings, or other "posts".

What to use it for: The Blog entry is most useful for any diary- or record-like content, consisting of (usually) short pieces listed by date. Good uses for the node type are company news items, short daily reports, and your random thoughts or rants.

Page

What it is: A generic page, with no specific assumptions on how you might use it.

What to use it for: Pretty much anything that doesn't better fall into another, more niche node type. Product pages, a company overview, any sort of general information – these are all standard uses. Many organizations' sites use a Page for general information about the organization and what it does.

Book page

What it is: Book pages are like Pages, but are designed for easy organization into groups and sub-groups, like the sections and chapters of a book. You set a "hierarchy" of pages, with a "top section", pages grouped into "chapters" beneath that, a chapter's pages grouped into "sub-chapters", and so on, as many levels deep as you like. Drupal creates appropriate navigation links automatically.

What to use it for: If you want to create an online "book" from web pages organized into a certain structure, this is the way to do it. One excellent application is a user manual – like this one. These instruction pages are built using Book pages, letting me easily organize them by topic, sub-topic, and so on.

Story

What it is: The original creators of Drupal had envisioned some differences between the Page and Story formats, but the two have apparently merged into pretty much the same thing. You can think of a Story as simply another version of a Page.

What to use it for: What good is having two versions of a generic page, one called Page and one called Story? There doesn't seem any reason to set out building the system that way, but as long as Drupal has developed with those two forms of pages, you can put them to use if you like.

Since you can configure how each content type behaves, you might use Pages (to conjure an example) for general information content that only administrators create, and use Stories for content that any registered site user can write and submit. Or use Pages for company background info, and Stories for product info, if you have reason to keep their content types separate.

If you don't see an immediate need for the Story format, ignore it. Later, when and if you find good reason to deploy a second type of general page, the Story node type will be waiting.

Create a Page

Creating a Page

Once you're logged in, click here:

Navigation menu » Create content » Page

The "Submit page" form that appears will have fields including those described below. What fields appear will depend on your site setup; many of the below many not appear for you, or may appear in slightly different order. 

Fill in the fields as you like. (Fields with a red asterisk are required; others are optional.) Here's an overview of the fields:

Teaser

Depending on your site setup, this may appear at the top of the form, or further down, or not at all. A teaser is an optional excerpt, or "short version" of the main content, that appears on the site's front page, or elsewhere in a list of nodes. Readers click on the node's title, or a "read more" type of link, to see the entire node content.

Title

The title of the node. You have to supply a title!

Categories

This section lists the tags or keywords – "Terms" in Drupal parlance – that will be attached to your page. Depending on your site setup, you may be able to choose no Terms for a category, or you may be able to choose multiple Terms. (Choose multiple items by pressing your computer's "mutiple select" key: Command for Macs, Ctrl for Windows machines.)

The categories ("Vocabularies") of Terms listed here, and the Terms within each, will vary with each site's setup.

See Terms, Vocabularies, and Categories: "Tagging" Your Content.

Locale

This will appear if your site is set up with multi-lingual capabilities. If you specify a language here, the node content will only be visible when that language's interface is active.

To specify all languages, select the "-" or "Any" choice at the top of the drop-down language list. The content will then appear under any language interface.

Body

The main content of the node. Depending on your site setup, you will probably see word processor-style formatting controls, courtesy of a text formatting add-on function. This offers many formatting options, though probably it won't be as rich or easy to use as your favorite word processor; for long text, consider keeping a copy of the text saved elsewhere just in case of trouble during input.

Input format

Options for how the text body will be rendered in HTML. Available formats will vary with site setup.

Product

If you see this, it refers to specific e-commerce products sold via the site's shopping cart, not general information about your company's products you may be discussing on your site. If you're only writing text about a product, not setting up an actual e-commerce product for sale via the site, ignore this.

Log message

A place to leave notes for other editors who may edit the same page later, or leave internal notes for yourself about the page. Ignore this if you have no need for it.

Side Content

If you see this field, any text that you input here will appear alongside the displayed node, in a special block.

Weight

Weight is one of the trickier aspects of getting content to display just where you want it when it appears inside a list. You set the page's "weight" here, from -10 to 10. In a list of nodes, a lower "weight" will rise to the top of the list, while heavier weights will sink to the bottom.

Ignore weight if you have no current use for it.

Comment settings

Set whether site visitors can read and/or leave comments on the node.

URL path setting

This creates an easy, alternate path – an "alias" – to reach the node. For example, if you input "staff_info" as the alias, the node can be reached at the URL "<your site domain>/staff_info".

Stick to regular letters, numbers, hyphens (-) and underscores (_) in your alias; avoid spaces and other characters.

See:

File attachments

You can attach files to your page, which readers can then download.

Menu settings

This is where you place a link to the page somewhere in the site's menu structure, making it available to site visitors.

If you want to try something simple, create a menu title for the node here, and then choose Primary Menu under the "Parent item" pop-up menu. A link to the new node will appear in your site's main menu.

See:

Authoring information

Set the author of the page. This will probably be you.

Publishing options

The important options are:

  • Published: If unchecked, the page will not appear! (Reach it again via Navigation » Administer » Content management » Content.) This is a good way to save "draft" content.
  • Promoted to front page: If you check this, the page will appear on the front page. Otherwise, it will appear only as directed by menus, or if accessed by its URL.
  • Sticky at top of lists: In any list of pages (such as on the front page of a typical site), the page will stick to the top of the list, regardless of its publication date or other sorting criteria.

Submitting the page

All done filling out the fields? You'll see two buttons at the bottom of the page:

  • Preview: Selecting this will show the completed page as it looks so far. But further down the page, you'll see the submit page form as well, for further editing.
  • Submit: Selecting this will complete the submission process, and show you the final page – which, if published (see above), is now live on the site!

Re-editing the Page

You can of course edit any Page which you have permission to edit.

When you are logged in, any Page on the site (including a new one you have created) , for which you have permission to edit, will appear with several tabs, including "view" and "edit".

"Edit" allows access to the same tools used for creating the page, as described above. You can make changes and resubmit. There is also a "delete" button at the bottom of a page in edit mode, for removing the node altogether.

Create a Story

Page or Story? What's the difference?

As explained here, the developers of Drupal originally had different plans for Page and Story nodes, but they've evolved to become essentially the same thing. The names are different, and you can set your site to handle Pages differently from Stories (for example, you might use Pages for content that readers can comment on, and Stories for content that doesn't allow reader comment), but otherwise they work identically.

Many people use Pages for static content (company information, for example) and Stories for articles (news, reviews, reports, etc.). It's up to you.

Creating a Story

Once you're logged in, click here:

Navigation menu » Create content » Story

The procedure for creating a Story is the same as creating a Page. Follow the instructions on Create a Page, replacing "Page" with "Story".

Create a Blog Entry

Creating a Blog Entry

Once you're logged in, click here:

Navigation menu » Create content » Blog entry

Beyond that, the procedure for creating a Blog entry is the same as creating a Page. Follow the instructions on Create a Page, replacing "Page" with "Blog entry".

Making Images and Other Files Available

In addition to the text content that you put into your site, you'll want to make files available to the site: graphics to appear in your nodes or as logos, files that visitors can download, etc. Here's a quick look at where these files live on the web server, and how you place files there:

Your site's file system

All the special files that run your Drupal site live on a web server that you may or may not have administrator access to. Your site directory on that server holds a configuration file, themes, and other bits specific to your site.

In a typical setup, there's also a directory, possibly named "files", within your site directory that's used for holding uploaded files, and within that, additional directories holding the actual image files and downloadable files. Each registered user with permission to upload files gets his own directory.

These user-specific directories will each have a unique name – in many cases, "u" (for user) followed by a number. In this case, the chief "first user" site administrator will have a directory named "u1", while additional users will have directories named "u2", "u3", and so on.

That's the overview, and you generally don't need to worry about it at all. But if you're interested in the following, it's useful background.

Built-in file browser

You may have a built-in browser for your personal file directory (usually named "u1" for the chief site administrator).

Navigation » My account

Click the 'Personal files' tab.

There's your file browser. To upload a file, click 'Browse', find and select the file on your computer, click 'OK' or 'Open' as apropriate, and click the 'Upload File' button at the bottom of the file browser. The file is uploaded to the server, appears in the list, and will be available for use later.

Under the 'operations' column of the file list, you'll see a 'delete' link for files you no longer need on the server.

Uploading files

Placing an image file into a node

This is covered in detail already:

Those pages include instructions on uploading files with an image editor. You can upload files that way, or upload them with the built-in file browser as described on this page.

Attaching a file to a node for download

This is mentioned here:

There's little to say, though. You have two choices:

a) If the file is already on the server, input its address. If it's a file you've uploaded via a file browser, it'll be in your personal file directory. If your personal directory is "u1" and it contains a file "downloadfile.pdf", then input this:

files/u1/downloadfile.pdf

Or:

b) Use the 'Browse' button to select and upload a file from your computer.

Either way, the file will appear on your new node as a link. When a user clicks the link, his browser will initiate a download of the file.

Placing logo files

This is described here:

There's not much to say, though; the Themes configuration form only gives you a field to enter the logo file's address, or a button to upload a logo file. Unfortunately, the Themes form doesn't give access to the file browser mentioned above.

So, you have two choices:

a) If the logo file is already on the server, input its address. If it's a file you've uploaded via a file browser, it'll be in your personal file directory. If your personal directory is "u1" and it contains a file "logofile.gif", then input this:

files/u1/logofile.gif

Or:

b) Use the 'Browse' button to select and upload a logo file from your computer. However, it will automatically go into the "files" directory, and not your personal directory (such as "files/u1"). So the uploaded logo file won't show up in the file browser. In fact, Drupal will give the logo file its own name, and won't let you change that file name or otherwise fiddle with the logo file. To switch to another logo file, you need to specify a new one per a), or upload a new one per b).

Access by FTP

If you want to upload many files, you'll have to do so one by one using the file browser. It'd be easier to upload them in bulk via FTP. However, if the site lives on a hosting company account not held by you, you may not have permission to access directories in the web server structure via FTP. That's good for security, if somewhat inconvenient for anyone wanting to upload many files at once.

Contact the holder of the hosting account if you need to make a bulk transfer of files to your site directory.

Using Text and Image Editors

Plain, undecorated text is often okay, but can be boring. Chances are you'll want to spice up your entries with text styles, colors, lines, maybe even tables and graphics.

You can do that in many text fields. There are several tools available, including these:

Text tools

Your site likely uses one of the following two popular sets of text editing tools:

TinyMCE

TinyMCE replaces gives otherwise blank text fields several dozen tools, displayed as buttons in rows, for editing text, inserting graphics, and so on. The buttons behave very much like those in well-known word processor programs.

TinyMCE tools typically look like this:

TinyMCE

However, as of this writing, TinyMCE isn't as fully attuned to Drupal as we might like. It works fine, but only in limited areas: namely, the main Body of nodes, and attached comments. In many other text fields, such as a node's Log message, the TinyMCE tools don't show up at all.

FCKeditor

FCKeditor and TinyMCE are pretty similar; their buttons are laid out differently, and one may have buttons the other lacks, but otherwise they look and act similarly. As of this writing, FCKeditor has the advantage of working with more text fields, not just the Body of nodes, and comments.

FCKeditor tools typically look like this:

FCKeditor

Switching from TinyMCE to FCKeditor (or vice-versa)

Some people prefer one set of tools, and some prefer the other. If you're unhappy with your current text editing tools, you can switch from TinyMCE to FCKeditor (or vice-versa). Assuming you have permission to access your site's modules, do this:

First, save any editing in progress (such as creating a new page). Next, go here:

Navigation menu » Administer » Site building » Modules 

You'll see a long list of site functions, called modules, along with a column of check boxes, titled 'Enabled'. Those with a check are operational; those without a check are not operational.

To choose your text editing tools, find both FCKeditor and TinyMCE on the list, and place a check in the Enabled column of the one you want to use; make sure there's not a check in the Enabled column of the other. (Don't enable both; that may cause the site to operate improperly.) Click 'Save Configuration' at the bottom of the page. Now, when you go to edit a node, you should see the enabled text editor's tools gracing one or more of the form's text fields.

IMPORTANT! Other than enabling and disabling the two text editors as above, DO NOT mess with other modules unless you know what you're doing; you could turn off some important site functionality, or hinder the site's security. Administering modules is a topic for elsewhere.

Image tools

Both TinyMCE and FCKeditor contain a button which brings up a window for adding an image to your text. They look and operate a bit differently, but in the end perform the same duties.

Displaying an image in a node requires that the image is resting on your web server, with the image's exact location (URL) specified. But you may not know the image's exact URL or even file name, or the image may not even be on the server yet. Fortunately, there's a tool that lets you browse and select images on the server, as well as upload images to the server:

IMCE

The name isn't important; just be aware that there's a tool called IMCE which lets you manage images on the server, easing the task of placing an image where you want it. Details are in Using Image Tools: IMCE.

Detailed Instructions

The following pages will cover the appropriate tools in detail. Jump right to whichever page suits your needs.

Using Text Editors: FCKeditor

Overview

FCKeditor has many tools for editing text fields, with buttons laid out as in well-known word processor programs.

 

FCKeditor

If you keep your pointer over a button for a moment, the name of the button will show up over it. That will often tell you exactly what the button does.

Buttons and their functions

Below is a guide to using some of the more important buttons and their functions:

HTML source button

HTML source button

The HTML source button displays the HTML code behind the formatted text. It's a useful thing if you know how to write HTML by hand; otherwise, you can ignore it.

Copy and paste buttons

Copy and paste buttons

These buttons are for cutting, copying, and pasting text, though you can likely perform the same functions using your regular keyboard shortcuts for the same.

One worth special notice is the last one, Paste from Word. Use that when pasting text copied from a Microsoft Word document.

Image insertion buttons

Image buttons

The 'Insert/Edit Image' button on the left allows you to insert an image and edit some of its properties, as well as edit properties for an image that's already inserted. This is a detailed topic, so it gets its own page at Using Images with FCKeditor.

The circled 'Insert/Edit Flash' button on the right is used to insert and edit a Flash animation, and will be covered later.

Text color buttons

These two buttons, 'Text Color' and 'Background Color', change the color and background color, respectively, of selected text. Select some text in your input field, and click one of the two buttons to get a palette of color choices. Results should be obvious and self-explanatory. (You may not see the results if the modified text is still selected; click elsewhere to unselect the text and see your modifications.)

Clicking 'Automatic' on the palette should take the selected text back to its default – often black.

You can no doubt create some lovely and awful effects with these two buttons. Use wisely.

Using Images with FCKeditor

The toolbox

As described under Using Text Editors: FCKeditor, the FCKeditor tools include a button for inserting images. It's the left button of this pair:

Using FCKeditor images

Place the cursor where you want the image to appear (or in the case of editing an existing image, click the image to select it.) Then click on the Insert/Edit Image button. You should see a window appear looking like this:

This 'Image Properties' form is a pop-up window for working with images. (If it won't appear, make sure your web browser isn't blocking pop-ups, at least those from your domain.)

The basic procedure

Before moving further, an important note: there's no functionality within your site to actually create images, or perform any fancy editing of an image. As with any web site management system, you'll need to have your images ready to use, whether you've procured them from somewhere or made them yourself.

Once your image is prepared and ready, you need to tell your site where to find that image. That should be a location somewhere on your site's server. If the image is sitting on the server, you'll specify where on the server it is.

If the image is not already sitting on the server, you'll first specify where it is now (presumably on your computer's hard drive), then upload it to the server, then specify where on the server it is.

And with the image specified, you'll then set its various properties: how exactly it appears on the page, any link connected to it, etc.

That's the general overview. Here are the details:

'Image Info' tab

The first of three tabs in the 'Image Properties' form, this tab contains the basic settings for your image. Here are its fields and how to use them:

URL

If you know the exact location of the image on the server – its path and file name, i.e., its URL – you can input that information right here. But that's not likely the easiest way to go about it – you typically won't know the exact path and file name of an image on your server. And if your image isn't even uploaded to the server yet, there's nothing you can input here.

That's where a previously-mentioned feature called IMCE comes in handy. It lets you pick out a file on the server, as well as get that file from your computer to the server in the first place if necessary. IMCE works with other text editing tools, not only FCKeditor, so its details appear on separate page: Using Image Tools: IMCE.

Once you've got your image specified by its URL in this field, you're ready to move on to other fields:

Alternative Text

This is the place to input text that will appear in place of your text, in the event that your image doesn't appear. (Reasons for that may include a network glitch, or a visitor whose browser is set to not display images, or, most likely, a mistake in the URL you've set for your image.) You don't need to input something here, but doing so is good web design.

Width and Height

These are the image's dimensions in pixels. They first appear as the image's actual width and height; you can change them here if you like, normally to make a large image fit into a small space.

Unless you keep the ratio of width to height the same when changing the values, your image will appear distorted. Fortunately, there's a built-in tool for doing this with no calculator needed. There's a small blue "padlock" icon next to Width and Height; clicking it changes it from "locked" to "unlocked" and vice-versa. If the lock is "unlocked", you can set any dimensions, even if those result in a distorted image. But if the lock is "locked", changing one dimension will automatically change the other by the amount that keeps the ratio unchanged. With the "lock" in place, you can change the image's size without distortion.

If you've changed an image's dimensions and want to set them back to their original values, click the circular 'Reset Size' arrow to the right of the padlock.

Using Image Tools: IMCE

Calling up IMCE

You first need to have placed the cursor where you want to insert an image (or have selected an already-inserted image you want to edit), and then clicked the button for image tools. If necessary, go back and read Using Images with FCKeditor or Using Images with TinyMCE before returning here.

Now it's time to ask for IMCE's help in dealing with files and servers.

If you're using FCKeditor, click the 'Browse Server' button next to the URL field in the 'Image Properties' form.

You'll see a window that looks like this:

IMCE window

This window is IMCE's 'Image/File Browser'.

The file list

The list at the top of the Image/File Browser shows files available at the spot on your server where your site stores images.

If the file you like isn't there, you'll first have to upload it:

Uploading a file

Click 'Browse' at the bottom of the Image/File Browser. Doing so will open a window for finding files on your computer; its operation will vary with your operating system. Use the window to find the file you want to upload, and click OK.

You'll be taken back to the Image/File Browser. The location of your chosen image (on your computer) will appear in the field to the left of 'Browse'.

Now click 'Upload File'. Your file will be uploaded to the server, probably within seconds. When that happens, it will newly appear in the file list at the top of the Image/File Browser.

Selecting a file

You're now set to pick a file from the list at the top of the Image/File Browser, whether you just uploaded the file, or whether it was there earlier.

Clicking once on a file's row shows that image as a preview, making it easy for you to pick the desired image even if you're not sure of its file name.

To actually select it for the purpose at hand, however, you need to click 'add' at the end of the row (in the 'operations' column; it's an important function but really doesn't stand out much, does it).

As soon as you click 'add', you're taken back to the image tools for your text editor, with the URL of your chosen image placed into the tools' URL field. Complete the instructions for those tools, and you're done.

Quick Guide: Inserting an Image from Local Computer to Site Node

The previous pages outline the entire process of adding images to a node.

Summarizing those pages, here's a quick guide to one common task: inserting an image from your local computer into a site node.

Using FCKeditor and IMCE

  1. Have the image ready on your computer, in a location you can easily find (such as the Desktop).
  2. Create a new site document, or begin editing an existing one.
  3. In the Body (or other editable field) of the node, place the cursor where you want the image to appear.
  4. Click the Insert/Edit Image button in the FCKeditor tools.
    Insert/Edit Image
  5. In the 'Image Properties' window that apppears, click 'Browse Server'.
  6. The File Browser window that appears lists images already available on the server. If the image file you want is already listed, click 'add' at the end of its row, and skip to step 11. Otherwise, if the file is not already on the server:
  7. Click the 'Browse...' button at the bottom of the File Browser window.
  8. Your computer will display a window for locating the image on your computer. Locate and select it, and click 'OK' or 'Open' as apropriate.
  9. Click the 'Upload File' button at the bottom of the File Browser window.
  10. The file will appear in the list of files on the server. Click 'add' at the end of the image's row.
  11. You will return to the Image Properties window. Finish inputing other settings there as desired.
  12. Click 'OK' at the bottom of the Image Properties window. The image will appear in your node.

You can then continue editing the node's form as desired, and click 'Preview' or 'Submit' at bottom.

Organizing Your Content

You've got content, but where does it go? How do visitors find content and move around your site? Here are your guides to tagging content with keywords, creating menus and other links to content, arranging menus and blocks, and other tasks related to the "where" of your content.

Terms, Vocabularies, and Categories: "Tagging" Your Content

Words about words

Tags are power

Drupal offers a very flexible system for "tagging" your content – that is, attaching keywords to it for use in organization or searching. Why do that? As software developers and webmasters everywhere have discovered, tagging content makes it so much easier for software to know what content is about. With tags on content, a program can instantly pick out, for example, all news articles that are about politics, or all product catalog listings that are cooking-related and are books (i.e., not just any cooking tools or any books, but only cookbooks). The same goes for tagged content on your site.

It's a very powerful tool that makes many things possible – so powerful and flexible, in fact, that the possibilities are overwhelming at first. This page will outline basic ways you can make use of tagging to organize your site content.

A word about words about words

First, a word about terminology. Let's revisit the discussion of "category" from Important Terminology!:

Drupal lets you assign keywords, or "Terms", to your nodes. The language it uses to discuss this, however, is frankly confusing. Here's your guide:

  • Term: A Term is a keyword or tag that you associate with a node. Useful Terms include words like 'news', 'product', 'pets', anything you can think of that classifies your content. With Terms that classify your content, you can easily organize it. For example, you can create a menu item called 'News from the Pet World', which is set up to display any nodes that have the Terms 'news' and 'pets' attached – i.e., the articles you've written about news concerning pets.
  • Vocabulary: A Vocabulary is a number of Terms grouped together for convenience. For example, you might have a Vocabulary called 'Product Type', containing Terms like 'sweater', 'jacket', 'socks', etc., for use with any node that describes a product.
  • Taxonomy: A somewhat vague word to indicate the overall way Terms are used to classify and organize nodes in your site. You likely won't need to worry about this word; if you see it in some document discussing Drupal, just know that the topic concerns Terms and Vocabularies.
  • Category: A confusing word: some Drupal documents say it means the same thing as Taxonomy, others seem to equate it with Vocabulary. I'll try to avoid using it, and stick to discussing the words that Drupal is clear on: the "Terms" that act as tags for your nodes, and the "Vocabularies" that are groups of Terms. (But just to keep things complicated: to set and edit your Terms and Vocabularies, you need to visit a form titled "Categories".)

That passage provides more examples that clarify what we'll discuss on this page, and it sets up terminology we'll use too. A short review that puts those words into their places:

We're going to discuss taxonomy, the use of "keywords" or "tags" to classify and organize your content. Instead of those popular words, though, Drupal calls keywords or tags Terms. It calls a group of related Terms a Vocabulary. So we'll talk mostly about Terms and Vocabularies, but we'll avoid the superfluous word category, other than to note that we need to visit a form called "Categories" to manage our Terms and Vocabularies.

Got that? Good!

Ready-made tags: node types

Let's note from the start that all your content already has a built-in tag: its node type – Page, Story, Blog entry, etc. (I'm calling this "tag", not "Term", because Drupal doesn't technically treat node type as a Term.)

So even if you stop reading here and create or use no Terms, you're already classifying content in at least one way, and can organize it based on node type. For many sites, that simple organizational ability will be enough. Just use Blog entries for, say, news; Stories for product info; Pages for company info; etc. Set a 'news' menu item to call up all Blog entries, a 'products' menu item to call up all Stories, and so on. There you go: simple organization for a simple site. See Linking to Content for more.

A site of even moderate size or complexity, though, will quickly outgrow that scheme. If you'd like to explore a deeper way to organize content, read on.

Setting the Terms

Here's where to find our form for playing with Terms:

Navigation » Administer » Content management » Categories 

The 'List' tab

The list you see under this tab is a list of Vocabularies. The three columns in the list:

Name

The name of the Vocabulary.

Type

This isn't a "type" of Vocabulary itself. Rather, this displays the node types that can use the Vocabulary. For example, if a Vocabulary which you named 'topic' happens to list "Page, Story" under 'type', that means only Pages and Stories can be tagged with Terms from the Vocabulary named 'topic'; Blog entries can not use those Terms.

Operations

Things you can do with the listed Vocabulary. See details below.

The 'Add vocabulary' tab

Before you can create and use Terms, you need to create one or more Vocabularies to hold them. If that's not already done for you, read on. Here's what you see on the 'Add vocabulary' form:

Vocabulary name:

The name of the Vocabulary. It will appear on the list of Vocabularies, and on the forms for creating content that uses the Vocabulary.

Description, Help text:

Optional extra information. Feel free to ignore these.

Types:

As discussed above: what node types can use this Vocabulary? Check those that apply.

For example, if you are creating a Vocabulary called 'Product Category', and know that you only want to use its Terms with Pages (the node type you plan to use for your product info listings), you should check only 'Page'.

If unsure, check everything! If you're the only one entering content, there should be no harm. But if you're allowing others to create content on your site, put a little thought into it. For example, you may be allowing others to post Blog entries on your site. Do you want to allow them to tag their entries with Terms from your 'Product Category' Vocabulary, or not? This is the time to decide.

Hierarchy:

There are a lot of choices under this heading (not all of which are really connected to hierarchy).

Disabled, Single, or Multiple: Just as menu items can have "child" sub-menus, your Terms can have "child" sub-Terms below them.

If you select 'Disabled', that won't be the case for this Vocabulary; it will have one "flat" level of Terms beneath it.

If you select 'Single', you can have child Terms, even in multiple layers. For example, your 'Product Category' Vocabulary may have the Terms 'tools' and 'machinery' – and under 'machinery', more specific child Terms like 'pump', 'generator', and 'purifier'.

More layers are possible. Your child Term 'purifier' might have 'filtration', 'reverse osmosis', and other purifer types below it, as "grandchild" Terms.

If you select 'Multiple', a child Term can appear under more than one parent Terms. For example, you could have the Term 'lathe' appear as a child under 'tools', and appear as a child under 'machinery'. Just select as many parents as you like when creating the Term (for the second and later Terms, use your computer's "mutiple select" key: Command for Macs, Ctrl for Windows machines).

With multiple parent Terms selected, the new child Term will appear separately under each parent. It's still a single "instance" of the Term, though; if you pick one of the Term's appearances for modification or deletion, you'll modify or delete all its appearances in that Vocabulary.

What's the point of these hierarchies? In addition to general orderliness in your Vocabulary, you can make use of useful techniques, such as a single link that returns all content tagged with the parent Term and its child Terms. For example, you can create a link returning content tagged with 'machinery', or any of 'pump', 'generator', and the other child Terms below it. That link will catch any nodes dealing with machinery products, even a node only has the Term 'pump' and not 'machinery'. See Creating Links.

Related items: The usefulness of this is unclear. Look forward to an explanation later.

Free tagging: An interesting option that lets you create a Term on the fly, typing it in when you create content. This may be useful when creating a list of Terms in advance would be a nuisance.

One example: You're creating a site that posts celebrity gossip. You'd like to tag each node with the discussed celebrities' names, but there are far too many to include in a list (and they keep breeding, too). On-the-fly Terms may be the perfect solution.

Multiple select: Another useful option. A node can always take a Term from each of several available Vocabularies, but checking this option allows a node to use multiple Terms from the same Vocabulary. For example, a product listing for a machine repair manual could be tagged with 'machinery' and 'books', two Terms from the same Vocabulary. The result: a page that listed products tagged with 'machinery', and a page that listed products tagged with 'books', would each display this product.

Note: When creating a node with multiple Terms from a Vocabulary, clicking the second Term will only un-click the first. You need to hold down your computer's "mutiple select" key (Command for Macs, Ctrl for Windows machines).

Required: When creating a node, you normally are free to choose no Term from a given Vocabulary. But not if this setting is checked! You won't be able to submit the node without a selected Term. This is a useful setting when you are allowing others to submit content, and want to enforce tagging.

Weight:

This will determine the placement of the Vocabulary on the list of Vocabularies – an item of very little importance. Feel free to ignore it.

Teaser, Meta tags:

Fields for these may appear, but they are not important for this form. Ignore for now.

Editing a Vocabulary

Clicking 'edit vocabulary' on the list of Vocabularies takes you to this form. It's the same as the form for adding a Vocabulary; see full procedures above.

Listing terms

At long last, we get to the meat of your Vocabularies. Clicking 'list terms' on the list of Vocabularies shows you two things: a list of the included Terms, and a link to add more Terms (see below).

The list of Terms has two columns: 'Names' and 'Operations'. The latter only holds a link to edit the Term. The former is more useful than it first looks: the name is also a link that calls up all content tagged with that Term. This will come in handy when making menu items and other links that call up content based on Terms. See Content Paths and URLs and Linking to Content.

Adding terms

The final item to cover, and an important one. This is the tool to create new Terms.

Clicking 'add terms' switches to an 'Add term' tab. Here's what it offers:

Parents:

If you have a "hierarchy" of Terms (see Disabled, Single, or Multiple: above), you'll have the option to pick a "parent" Term (assuming there's already at least one Term in the Vocabulary). Pick '<root>' to place the Term at the "top level", with no parent Term. Or pick an existing Term to place your new Term under it as a child Term.

Term name:

The name of the Term: 'products', 'news', 'general info', 'France', whatever you want.

Description:

Type in some info on the Term, or its intended use, if you wish. It's generally not important.

Synonyms:

The usefulness of this field isn't yet clear. Ignore.

Weight:

If it matters to you, you can use "weight" to set the Term's location inside the Vocabulary. A "light" (negative) weight will place it higher on the list; a "heavy" (positive) weight will place it lower. Many admins won't consider this important.

Teaser, Meta tags:

Fields for these may appear, but they are not important for this form. Ignore.

Tagging content

Now that you've got Terms, what to do with them? Simple: when you create content, you'll see Terms listed under 'Categories' on the node's edit form. From the list(s), pick whatever tags you want to attach to that node. This is briefly described under the heading Categories on Create a Page.

As described earlier, you can set which node types can use which Vocabularies. When creating a node, each available Vocabulary will appear as a separate list. You can choose a Term from each Vocabulary list – or even multiple Terms from any Vocabulary which has "multiple select" enabled (see above).

Once content is tagged, you'll be able to perform tricks with those Terms. See Content Paths and URLs and Linking to Content.

Taxonomy Suggestions

Taxonomy suggestions

You can create whatever Terms you can think of a use for, grouped into whatever Vocabularies you like. There are infinite possibilities – which always makes it hard to get started.

General strategy

It's difficult to immediately envision all the ways to set up your taxonomy, and all the possibilities for using it. Here's a general suggestion for starting out:

Sit down and do a little thinking about what keywords you may want to call upon in the future. You'll probably want at least two main groups of keywords (and thus, at least two Vocabularies): one that describes what a piece of content is, and one that describes what the content is about. (At least, I've always found that useful.) See examples below. You may want additional Vocabularies, depending on what your site is about.

Next, fill each Vocabulary with Terms. If your site already has some Terms set up, delete any you know you won't need, and add Terms you think you will need. If in doubt, add a Term; it's easier to add it now and ignore (or even delete) it later if it turns out unnecessary, than to add it later (and belatedly tag all the old content that you now want that Term attached to).

Finally, on the technical side: if you're not worried about other users tagging content in odd ways, go for flexibility. Allow your Vocabulary to use multiple heirarchy and multiple select. If those features turn out useful, you've got them on hand; if you end up not using them, no harm done.

In summary: You can change your taxonomy and its workings any time down the road, but if you have a lot of content already in place, you'll have a big job going back and re-tagging all those old nodes. A little strategizing up-front can save you a lot of work later.

Example taxonomy: generic site

Here's a simple set-up that works for a lot of sites:

Vocabulary 1: Content Type

This Vocabulary is for Terms that describe what the content is. Not node type (Page, Story, Blog entry, etc.), but its intended purpose within your site. Fill this Vocabulary with Terms like 'news', 'general info', 'essay', 'report', 'article', and so on. Some child Terms may make sense: 'news', for example, could have child Terms 'announcement' and 'press release' under it.

Vocabulary 2: Content Topic

This Vocabulary is for Terms that describe what the content is about. More than the above Vocabulary, appropriate Terms here will vary widely by site. Fill it with Terms that make sense for yours: 'product', 'company', 'website', 'celebrities', 'hobbies', etc.

For more detail, add child Terms. For example, the broad Term 'product' could have product categories (or specific products) under it as child Terms.

Using the Terms

The above two Vocabularies should enable pretty powerful organization of content. Any content should fall under a combination of one Term from each vocabulary (or more than one from each).

For example, a notice about an upgrade to your company's website would use the Terms 'announcement', 'company', and 'website'. General company background? 'General info' and 'company'. A case study on a new product? 'Report' and 'product'.

Example taxonomy: recipe site

As another example, a site for collecting recipes might do well with this taxonomy:

Vocabulary 1: Content Type

Same as above, but recipes themselves are key enough to this site to be considered a major type of content, not just a topic under 'general info' or some such. Add a new Term, 'recipe', to the Content Type Vocabulary. (You'll also want to decide on a consistent node type to use for recipes, such as Page or Story.)

Vocabulary 2: Recipe Type

Fill this with Terms like 'main dish', 'desert', 'appetizer', etc.

Vocabulary 3: Recipe Style

Fill this with Terms like 'Chinese', 'French', 'Mexican', etc.

Using the Terms

With this set-up, it's easy to see how your site can quickly call up, say, all Chinese main dish recipes (via the Terms 'recipe' + 'main dish' + 'Chinese'), or any other combination. Bon appetit.

Wrapping up

Setting up your Vocabularies and Terms can take a little effort, as does remembering to tag content as you create it. But as your content grows, the ability to locate and organize it via those tags will make the work well worth it.

 

Menus, Links, and Paths: Navigating the Site

This is important stuff. One of the keys to grasping Drupal is to understand that creating content is just a small part of the picture. Creating a node is simple enough; telling users how to get to any node, via links in menus or elsewhere, is the start of building a site.

Content Paths and URLs

How do people get from one page on your site to another? Links, links, links!

But what is a link? It's just an instruction for the browser to jump from the current page address, to a new page address.

You can create links to any page whose address you know. So how to you find, or create, the address for a page? If you want to know, here's your guide. (And if you already know the address for your target page, and are ready to create a link to it, jump ahead to Creating Links.)

Path and URLs

Every node you create in Drupal automatically gets a path – an internal "address" that identifies it. Drupal automatically gives these paths names that aren't too pretty, such as taxonomy/term/7 or node/53.

A URL is the whole address, starting with your site domain, that a browser uses to reach a page. The above node with path node/53 could be reached by visitors at www.drupalace.com/node/53, for example.

Prettier paths: aliases

The above node/53 is an ugly path that creates an ugly URL. There's nothing technically wrong with that at all, but many people like nicer-looking addresses. Fortunately, you can define a nicer, alternate path – what's called an "alias" – when creating a content item.

(A note: Drupal inconsistently uses the word "path" to sometimes mean the content's address in general, and sometimes to mean an alias. I'll use "path" to mean the internal address of a content item, and "alias" to mean an alternate path. These are pretty standard usages, so no capitalization is needed.)

An example of an alias: If your 'Corporate Vision' page has the path node/53, you can also give the page an alias such as vision. The page can then be reached at either the URL <your site domain>/node/53 or the alias <your site domain>/vision.

Setting an alias

As described under Create a Page, you can easily create an alias when creating or editing a node. Look for the field 'URL path setting', and type in an alias. Stick to regular letters, numbers, hyphens (-) and underscores (_) in your alias; avoid other characters, including spaces.

Managing aliases

If you want to change a node's alias, just edit the node to do so, as above.

You can't give the node more than one alias that way, though. If you'd like to do that, and otherwise manage aliases in bulk, head here:

Navigation » Administer » Site building » URL aliases

There are two tabs:

List

Pretty simple: a list of aliases, followed by the "real" path that Drupal created (like node/13), followed by options for editing or deleting the alias.

Add alias

Here's where you create an alias. Enter the Drupal-created path into the first field, and your desired alias in the second. Follow the rules under Setting an alias above.

Automated alias creation

How would you like your site to generate an alias for you automatically whenever you create new content? It can be a very useful thing, and is handled by a function called Pathauto.

If your site has Pathauto enabled, you'll find an administration form here:

Navigation » Administer » Site configuration » Pathauto

There are a lot of settings, and an overview will have to wait for later. For now, you should be able to work things out through the instructions on the form.

Finding a path

It's handy that you can set an alias for any new content you create, but how do you find the path for any existing content?

Check the browser's address bar

This is the most obvious method: open the page you're interested in, and check its URL in your browser's address bar. The part of the address remaining after <your domain name> is the page's path. Copy or otherwise make note of it, and you're ready to use it in links.

Check master lists

Your administration forms contain a number of "master lists" of content and paths. Once you're at any of the lists below, clicking on the item of interest, or just "mousing over" it and seeing the URL that appears in the browser's status bar, will let you know the item's path.

Master list of all content

Navigation » Administer » Content management » Content 

Master list of all aliases

Navigation » Administer » Site building » URL aliases

Master list of all comments

Navigation » Administer » Content management » Comment

Getting a Term's path

A link to a whole Term can be a very useful thing. Even better, Drupal automatically creates a path for each Term. You can't just use the Term name, like 'product', as the path; you need to use the path that Drupal gave the Term. Unfortunately, a little digging is required. Here's how to do it:

Navigation » Administer » Content management » Categories

As discussed in Terms, Vocabularies, and Categories: "Tagging" Your Content, that's the list of Vocabularies, or groups of Terms. Click 'list terms' for the Vocabulary containing the Term you want. The list of Terms will appear. Click or "mouse over" the Term you want; you'll see the the URL containing the Term's path.

Example: You want a menu item to link to the Term 'technology', listing all nodes tagged with that. Go to the Categories form, as above, to see your Vocabularies. There's one named 'Content Topic', which contains the Term you want; click 'list terms' for that.

There, on the list of Terms, is 'technology'. Click it. It should return the page we're looking for, listing all 'technology'-tagged nodes. Note its URL, which may be something like <your site domain>/taxonomy/term/12. The path taxonomy/term/12 is what you can use as your menu item's path.

Working with Menus: Administration Form

Menus are the key to your site – they're the way by which visitors get at your content.

A menu is a list of links to content. Menus can appear in a horizontal line at the top of your pages, as with many web site designs. Or they can appear along the sides in blocks, another common design.

A specific link in a menu – a "menu item" – can link to a specific node. Or, calling on the full power of the database behind your site, it can pull up a list of nodes based on some criterion.

There's a big administration form for all menus on your site:

Navigation » Administer » Site building » Menus

At the top of that form, you'll see four tabs: 'List', 'Add menu', 'Add menu item', and 'Settings'. An overview of the tabs:

List

This form lists every menu currently created for your site. Immediately under the menu's name are one or more options:

Edit

This brings up a form that lets you change the name of the menu. That's it.

Delete

If the menu is one that you, and not the Drupal system, created, you can delete it from here.

Add item

This is an important one: it lets you add a new menu item to the menu. The link takes you to the 'Add menu item' tab; see Add menu item below.

list of menu items

Under the above choices is a list of the items – the links – in the menu. Its columns are:

Menu item

The name of each item. Clicking on an item's name simply activates that link, the same as selecting it in an actual menu.

Expanded

The 'Expanded' column refers to how sub-menus appear. A menu item can have multiple menu items beneath it as a sub-menu. See the Navigation menu for a perfect example: the item 'Administer' has a sub-menu 'Site building' below it, which in turn contains items like 'Blocks'. If a submenu is expanded, then it will appear with its contained items visible. If it is not expanded, then a viewer will have to click on the submenu to see its contained items.

Operations

The 'Operations' column has links to edit, disable, or delete a menu item.

Editing a menu item follows the same procedure as creating one. See Add menu item below.

Disabling a menu item is a useful technique. It takes the item off of the visible menu, but retains it on the administration form, where you can easily enable it again later.

Finally, deleting a menu item removes it for good.

Add menu

There's not much under the Add menu tab: just a field to input the name of a new menu. This is for creating a menu as a block. The new menu will appear on the Menus administration form as only a name, with no items underneath; you'll then want to add menu items.

Once that is done, you're ready to have the menu appear on the site. Head to the Blocks administration form, find your new menu's block under the Disabled list (it'll have the name you created for your new menu), and place it on the page where you like.

See Working with Blocks and Placing Menus on Your Page.

Add menu item

This is where you add a menu item – a link to content, whether a node (or list of nodes) within your site, or an external URL (such as a page on another website).

Here are the fields on the form:

Translations

You'll see this option if you have multilingual capabilities installed in your site. For each of the active languages, you can insert a custom title and description (see explanations below). For example, if you have a menu item called "services", you can input "servicios" as a Spanish equivalent.

When a visitor switches languages, translated menu items will appear in the appropriate language.

Title

This is the name of the menu item, as it appears on the site: 'home', 'products', 'contact me', or what have you.

Description

Whatever you input here will appear as a "tip" when a visitor places the mouse pointer over the link ("hovers" over the link, as the techies term it). It's a good way to describe the link a little, without using a long title. For examples, hover your pointer over the links at the top of this page.

Path

This is the meat of your menu item: what does it link to? You can input any external link (such as http://www.google.com) or an internal link to content within your site.

Internal links are a big, rich topic. See Linking to Content.

Menu items can be nested underneath other menu items (for example, menu items for several products, nested under an 'All Products' menu items). Normally, the nested "sub-menu" items appear only when the parent menu item is clicked. But if you check the 'Expanded' checkbox for your menu item, any sub-menu items nested under it will be visible within the menu, even without a visitor clicking.

Parent Item

Another important setting: what menu your menu item appears under. Click the drop-down menu. Available menus, and the menu items beneath them (indented with hyphens) appear.

Heirarchical (or "nested") menus are possible as well. "Sub-menus" – the "children" menu items of "parent" menu items – appear on the list, using deeper indentations.

Choose a menu's name to place your new menu item inside that menu. Or choose a "parent" menu item, to place your new menu item underneath it as a "child" sub-menu item.

Weight

Where in the selected menu will your new menu item appear? Set the "weight" for each item in the menu to order them: the "lightest" weight will appear first, and the "heaviest" weight will appear last.

For example, you might set the weight of a menu item 'main page' as -10, and a menu item 'contact us', as 10. The link 'main page' will appear first, and 'contact us' last. A menu item with a weight of, say, 0 will appear in between the two.

Settings

This form has a couple of settings related to site-wide handling of menus:

Primary and secondary links settings

Primary menu

Here you set an important item: your primary menu. Most web sites have one "main menu": a menu with important links for visitors like 'home', 'about us', 'links', and so on. Drupal gives this menu special treatment: most graphic Themes automatically display the primary menu, usually at the top of every page.

How do you create your primary menu? Easy:

1) Create a menu for the purpose, if it doesn't exist already. The items should generally be your most important pages or "sections", starting with 'home' (or 'main page' or 'front page' or whatever you prefer to call it).

Name this menu 'primary menu', 'main menu', 'site menu' or some such.

2) Open the 'Settings' tab (the topic of discussion here). Under 'Menu containing primary links:', choose the menu you created above.

When you click 'Save configuration', you'll now have a primary menu.

Secondary menu

What's a secondary menu? It's a special menu, like the primary one, that many Drupal graphic Themes reserve a special place for.

But many Themes don't display secondary menus, and a lot of Drupal users scratch their heads over what it's for. If you like, set a secondary menu here (as you did above for a primary menu), click 'Save configuration', and see whether anything shows up, and where.

There's an explanation on the Settings form: "If you select the same menu as primary links then secondary links will display the appropriate second level of your navigation hierarchy." In other words: If your primary menu has parent items with child items under those, then the parent items will show up in the primary menu location, and the first layer of child items will show up in the secondary menu location, when the appropriate parent item is selected.

It's easier to see than to explain. Give it a try.

Content authoring form settings

This setting is probably meaningless unless you are allowing multiple users to create new content, and menu items linking to that content. See Creating Menu Items on the Fly.

Creating Menu Items on the Fly

The Menus administration form is one place where you can create menu items (see Working with Menus: Administration Page).

There's another way to create a menu item: when you create or edit a node, you can create a menu item for it on the fly.

For example, you create a node with company information, and want a link to that node to appear in a menu called 'site menu'. You could create the node, head to the Menus administration form, and create a new menu item within the menu called 'site menu'.

There's another way to do the same: when you create the new node, you can create a menu item right then and there. On the 'Submit Page' form (or 'Submit Story', etc.), look under 'Menu settings', and set the menu item's title, description, parent item, and weight. When choosing a parent item in the drop-down list, you are of course free to choose a menu itself, or a "parent" menu item (making the link to your new node a "child" menu item of the "parent").

There's one difference from creating the menu item using the Menus administration form. You don't set a path when creating a menu item on the fly. The link's path is automatically set to the node you just created.

See Create a Page and Working with Menus: Administration Page.

Restricting on-the-fly menus

When making a menu on the fly, you can place it under any menu or menu item that appears in the "parent item" list (which should be all of the menus and menu items in your site).

But if you have multiple users allowed to create content, you may want to restrict their placement of on-the-fly menu items into just one menu. For example, if you allow users to submit news articles to your site, you might restrict them to creating on-the-fly menu items under a menu called 'news stories', and not under other menus on your site.

To do this:

Navigation » Administer » Site building » Menus

Click the 'Settings' tab. At the bottom of the form, under 'Content authoring form settings', you'll see 'Restrict parent items to:'. Here you can set the single menu to which on-the-fly menu items are restricted. (Keep it at 'Show all menus' for no restrictions.)

Placing Menus on Your Pages

-- coming later --

Placing Content on Pages

First, a note:

Following common writing practice, I'm capitalizing words in the titles of EDAM pages. This perhaps isn't a good decision, though, as elsewhere in the text I try to make some clear distinctions between certain capitalized and uncapitalized words.

In this EDAM entry, the title "Placing Content on Pages" refers to placing content on any web page (uncapitalized, generic meaning, not the special node type Drupal calls Page).

End tangent.

Here I'll cover how to place your nodes – your Stories, Pages, Blog entries, etc. – onto a page in your site.

Hmm? Isn't it a little late in the manual to be writing about putting content on pages? And hasn't EDAM already covered the topic here and there?

Yes, there's been some discussion already, such as how to create a Story or Page, and how to "promote" these to the site's front page. But there's more to the story.

First, it's good to review the ways to build a page from a single node, versus building a page from a list of many nodes. There are more ways to do the latter than have been presented so far.

Second, to make things even more fun, there's the big Drupal Truth that you need to wrap your head around: despite the convenient wording used above, you don't actually "place" nodes on a page; rather, you tell Drupal to create a page that picks up and lists your target nodes (and adds other content as well).

A participant on the drupal.org forums said it better than I can:

The basic concept of a CMS (content management system) like Drupal, is that you don't create pages as a whole. You create bits of content and other elements (nodes, blocks, header, navigation...) and you configure the CMS so that it puts your page together on the spot. - marcvangend

Whether you find that a big shift in thinking or not, absorbing it is a key to making great stuff with Drupal.

With that, on we go!

Creating a page from a Single Node

There's not much to cover here. As already discussed, when you create a node, Drupal automatically gives it a path (like node/53), or you can give it a path yourself (like product_catalog).

To create a page from that node, then, you don't really need to do anything special. Just go to the node's path (presumably via a menu item you've created for the purpose), and Drupal will whip up a page centered around that node, surrounded by the blocks, graphical elements, footer, and other accountrements you've set up for the site.

That's it!

Setting the front page to show a single node

Many sites use the front page to list a number of nodes, or to list short excerpts from a number of nodes. But you can, if you like, set Drupal to build your front page around a single node, as above. See Setting the Front Page.

Creating a page from a List of Nodes

You'll often want to make a page not from a single node, but from a list of several nodes. I haven't yet come across a technical Drupal word for such a page, so I'll call it a 'node-list page'.

Node-list pages and the Drupal Way

There are several ways to make a node-list page. What's important is to first understand the way you don't do this in Drupal. You don't create an empty "container" page – say, a blank page with the path product_catalog – and then say, "I want this node and this node and this node to appear on that page". That's a common misunderstanding among new Drupal admins, though it's a very understandable one: it does seem a logical way to do things, and some content management systems do have you do things just that way.

Drupal has you do something else: it has you specify the criteria for selecting multiple nodes – for example, "all nodes tagged with the Term 'product'", or "all Blog entries posted in 2007". That's all you do. Drupal then creates a list from those selected nodes.

That's at least the general rule (the front page provides a special case, discussed below). At first glance, it may seem limiting: you can't just pick this node and this node and this node and tell them to appear on a certain page; you have to give Drupal some criteria for picking those nodes, which means you have to find – or create – something in common among those nodes (like node type, Terms, posting dates, etc.).

But it's more powerful than it is limiting. When you want a catalog page to list all 100 of your products, the thing that you can do – give Drupal a single instruction to build the page product_catalog from all nodes tagged with the Term 'product' – is a lot better than the thing that you can't do – laboriously edit 100 product nodes to tell each one that you want it to appear on the product_catalog page. It's strong mojo.

Ways to make a node-list page

Creating a node-list page based on taxonomy

This is the business of having Drupal call up all nodes tagged with a Term (like 'products'), and has already been covered in multiple steps. Here they are together:

1. Get the path(s) for the desired Term(s). See Content Paths and URLs.

2. Create the link to the Term(s). See Creating Links.

3. Place the link in a menu or wherever desired. See Working with Menus: Administration Form.

As an example, you might create a node-list page by creating a menu item that links to a path like taxonomy/term/49+58. That's a perfect example of creating a page that doesn't even exist as a 'page' in the way that other web platforms might see a page. Rather, you created a link with instructions, not a page per se.

Creating a node-list page of Blog entries

Drupal has a built-in easy way to list all blog postings, under the assumption that this is something you're likely to want to do. As above, the path is key; place that path as a link in a menu item, and you've got an easy way to create a page which will list any and all published Blog entries.

Path for all published Blog entries:

<your site domain>/blog

Path for all published Blog entries by a specific user (for sites with multiple users):

<your site domain>/blog/<user name>

Creating a node-list page based on other criteria

You can build a list of nodes based on node type, date, author, and countless other factors, or some complex combination of those, allowing really useful tricks. The secret weapon here is an add-on function called Views.

Building a View is a rich-enough topic that it'll get its own page here shortly.

Creating a node-list page on your front page

Many sites use the front page to list a number of nodes, or short excerpts from a number of nodes. This is easy to do in Drupal, which treats the front page in a special way. You can make your front page a node-list page in one of two ways:

1. Take any path from the above – a path to a taxonomy Term, to a blog, or to a View – and set that path as the default front page.

2. Set no special path as the default front page. Rather, on the Edit form for all nodes you'd like to appear on the front page, check 'Promoted to front page' under 'Publishing options'. (This is an exception to the Drupal Way of "building" a node-list page via instructions; it's a method, like some other content management systems use, of telling specific nodes to appear on a specified page. Drupal offers this option only for the front page!)

For details on both of the above, see Setting the Front Page.

Setting the Front Page

What appears on the site's front page, the first page people see when visiting <your site domain>?

Many web sites, especially blogs, list a number of postings, articles, or other nodes on the front page, usually with the most recent node at top. If the nodes have short text, the page may display the title and whole text of the nodes. If the nodes have long text, the page may display the title and a short excerpt ("teaser"); visitors can click on a title, or a "Read more" link, to display the whole node as a page.

However, you don't have to go that route. You can instead have the front page built around a single node, or even some special page like the login form. Or like many sites, you could go for a busy and annoyin– er, colorful and exciting splash page.

It's up to you. You have several choices:

1. Set a specific node as the front page

Here's the setting to do this:

Navigation menu » Administer » Site configuration » Site information

At the bottom is the f