Easy Drupal Admin Manual (EDAM)

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

Welcome to 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 rind.

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

Who is this for?

EDAM is not aimed at the typical Drupal site developer, but rather the non-technical end user who has only basic content management and site administration needs. Early pages assume no knowledge of concepts like content management systems, open source, or Drupal; even a moderately technical user will find it fairly basic. But EDAM helps fill a real need for beginner-friendly documentation centered on maintaining a site and managing content as an end user, as opposed to developing a new site.

Target readers for EDAM include:

  • My non-technical clients for Drupal sites
  • Your non-technical clients for Drupal sites
  • Any Drupal beginner who's installed Drupal and wonders where to go from there
  • Any Drupal user with some experience, who can still appreciate a beginner-oriented guide to some steps
  • An IT manager with technical chops, but who's suddenly been handed control of some site made with this Droopa-whatever thing he's never heard of
  • Anyone looking for ways to explain some Drupal basics to a beginner administrator

Caveats! (That means "Beware!")

EDAM pages are originally written for Drupal 5. They're undergoing updates for Drupal 6: stay tuned to this site's blog for notices.

EDAM's text originated with instructions for clients of mine, not as a how-to guide for generic unknown users. As such, it doesn't cover installation and initial configuration of Drupal (topics already covered thoroughly by other online documentation). EDAM reflects the ways I personally like to set up and explain sites, which may or may not be ideal for your purposes.

EDAM cheerfully takes some non-standard liberties with terminologies where I've found the usual Drupal way to be confusing. I consider this a bonus!

Finally, EDAM is 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. It's only one entry into a growing ocean of Drupal documentation, but I hope it'll be a helpful island for beginner site administrators in that sea!

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: Lots of info; a bit overwhelming!

Drupal Cookbook: Part of the above handbooks, concentrating on basics for new Drupal users. Helpful stuff!

End User Guide: 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.

Drupalace.com features the following in addition to EDAM:

Drupal for Beginners: A one-page overview of what Drupal is, who it's for, and what you should expect. A good place to start!

You're in charge

As administrator, you're 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 with 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:

  • You can configure the site in many ways, changing settings and enabling functions.
  • You can set different privileges for different types of user, such as anonymous visitors, staff members, top administrators, and so on, determining what each user can and can't do.
  • You (or a system administrator) can add new features to Drupal through software called modules. A very active community of Drupal developers is constantly releasing improved and new modules.
  • You can easily change the overall graphic appearance using ready-made layouts called Themes.

As with all powerful things, though, there's some learning to do, and there will be questions. EDAM 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 what Drupal calls a specific type of content. 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 tell Drupal 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" in this text, 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 (or admin)

A person who is authorized to edit or otherwise manage the site. Drupal allows many levels of administrators – some with permission to tweak only a few things on the site, others with permission to do just about anything. Sufficiently high levels can set what lower levels are allowed to do. See roles

Feel free to use abbreviations here, like most Drupal users: An administrator with administrative duties for the site she administers is an admin with admin duties for the site she admins. 

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 things are organized into "blocks", and you're in control of them on your site: you can create, modify, and relocate blocks. You can of course turn them on or off, too – even for specific pages only.

A sample block containing a site's main menu.

Drupal login 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

See Taxonomy.

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 typically 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

See teaser.

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 its title, body text, and so on into the appropriate fields, inside a form that's full of fields. And so on.

form

I use this word to mean 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 forms 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 teasers (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 source of 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 in general.

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 other content – 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, form, or other piece of content 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 that 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 piece of content. 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.

roles

You don't want to give any stranger permission to add, change, or delete whatever they like on your site. A classic, old-fashioend web site lets only a logged-in administrator muck things up, while the rest of the world can only look at content. But in these days of an interactive and social Internet, that's no good; not only might you want to let multiple people perform different administrative tasks, you might even want to let complete strangers have a hand in things, such as leaving comments, creating accounts, and uploading content. 

Drupal offers "roles" that let you set groups of users and what each group can or can't do. From the start, Drupal sets up two roles: anonymous user (someone with no user account, or not logged in), and authenticated user (someone with an account and logged in). (Actually, there's a third, though it doesn't show up on Drupal's list of roles: The first account created, called ID 1, makes up a special role that has permission to do anything on the site.) 

You can create any number of added roles, and then set what each role can do. For example, you may decide that the anonymous user role can do little beyond look at content, vote in polls, and create comments, while the authenticated user role adds the ability to create image galleries and rate images. You could then create an editor role, which allows creation and organization of articles and polls, and deletion of spammy comments. Finally, you could create a top administrator role, with the ability to manage roles, edit or delete any content, and perform any other needed tasks.

There, a role for every need. Now place each user into the appropriate role, and voilá, chaos becomes order.

Taxonomy

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

  • Taxonomy: This is the overall name for the system Drupal offers to classify and organize nodes in your site by assigning them tags (called Terms; see below). You don't have to use Drupal's Taxonomy features to organize content, but it's usually extremely useful to do so.
  • Term: A Term is a keyword or tag that you can 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.
  • Category: This is a confusing word: some Drupal documents say it means the same thing as Taxonomy, others seem to equate it with Vocabulary. Fortunately, it seems to be dropping out of use, and you may never come across it. This text will avoid it and stick to 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 in Drupal 5, you need to visit a form titled "Categories". Drupal 6 more sensibly labels this form "Taxonomy".)

teaser

A teaser (also called an excerpt) is a short form of a node's content, such as its first paragraph or first 100 words. Teasers are commonly used instead of full nodes in lists, as in blogs or news sites.

As an example, you might have a blog's front page display teasers from your last 10 posts, instead of the full posts. Each teaser might be the first paragraph or two from the full post. Readers would click on the post's title, or a "Read More" link, to jump to a page containing the full post.

Term

See Taxonomy.

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 will return 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 teasers, all arranged alphabetically or arranged by date or however 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 Taxonomy.

Best Practices for Site Admins

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

Browser tips

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. I've had good results with Safari 4. If there's any doubt, consider using Firefox.
  • 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.

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.

Site building tips

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.

Also see Maintenance and Construction Notices.

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 open "backup" Themes page to switch to a safe Theme.

Content creation tips

When in doubt, make a node

This is jumping ahead a bit to the process of creating "nodes" of content, but keep this in mind:

With Drupal, you can naturally make a single piece of content (a "node") that contains many items, such as a long list of web links, or a large gallery of pictures. Or, depending on what those items are, you may be able to make each one of those things a node – i.e., make each web link or each image a separate piece of content – and let Drupal use its powers to combine those into lists, galleries, etc.

Which to choose will depend on your goals, but when in doubt, the latter route is often best. When you embed a number of images into a node to make a gallery page, you're stuck with that layout until you edit it manually. But when you've made each image a unique node, you can then use those items freely in many ways: a page gathering some group of those image nodes into a gallery, another page gathering another group into a different gallery, a sidebar block displaying the most-viewed images, etc. All automated by Drupal according to the rules you set. 

Without question, that flexible method does require additional work in learning how to make Drupal perform those organizational tricks. Once you've learned it, though, amazing new possibilities open up. It's something to keep in mind as you decide what nodes to create for your site.

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 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 to your clipboard, 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.

Research tips

Search smart on Drupal.org

Drupal.org is a big site, with documentation pages and forum posts numbering in the bazillions. A search can turn up a lot of stuff to wade through (and unfortunately, the site doesn't use Drupal's own Taxonomy features to tag content with helpful keywords). There are a few things you can do to search smarter:

The site's omnipresent search box searches everything and anything, as you'd expect. But some key site sections, like Modules, Themes, and Translations, offer dedicated search boxes that focus on their respective targets.

In addition, while search boxes are basic type-and-go affairs, the site's search results page offers plenty of options in sidebar blocks to sort or filter results.

For more search tips, see How do I search drupal.org

Let Google help out

If a Drupal.org site search is turning up too much or too little of what you want, give Google a try – not just to search the whole web, but even to search Drupal.org specifically.

Type your search parameters into a Google search field, followed by a space, and then site:drupal.org . Remember that you can narrow your search using any of the spiffy search operations that Google provides. 

The results may or may not be more helpful than what you'd find searching on Drupal.org – but it's always superior in one circumstance: When (as sometimes happens) the Drupal.org search function is temporarily out of whack due to site overload, a Google search will still work!

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

or, if that doesn't work,

<your site domain>/?q=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.

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

or, depending on your site setup,

<your site domain>/?q=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 specified when your (or another administrator) set 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 "Elmer" 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).

In general, your interest will be in configuring your own Theme. The names of all enabled themes will appear under the 'Configure' tab; click your Theme's name to see its configuration form.

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 (per info at 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 enabled, 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, and the site will display use whatever shortcut icon the Theme provides (if any), or one you provide (below). 

Shortcut Icon

Logo image settings, Shortcut icon settings

Here you can set the logo and the 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

These settings 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.

Other items

Depending on your Theme, there may be many more configuration options. There's no way to cover all the possibilities here; experiment, or track down any documentation that came with your theme! 

Detailed editing and creation of Themes

Beyond the options offered above, editing a Theme is beyond what your 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 are the chief ones for a typical web site:

Blog Entry node

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 frothing rants.

Page node

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 node

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 EDAM. These instruction pages are built using Book Pages, letting me easily organize or re-organize them by topic, sub-topic, and so on.

Story node

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. Or set up Pages to display no author name and posting date, and use them for general information; set up Stories to display author and date, and use them for news articles. It's up to you. 

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 Node

Creating a Page node

Once you're logged in, click here:

Navigation menu » Create content » Page

The "Create page" form ("Submit page" in Drupal 5) 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:

Title

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

Vocabularies ("Categories" in Drupal 5)

This section lists the tags or keywords – "Terms" in Drupal parlance – that will be attached to your node. They should appear in the groups ("Vocabularies" in Drupal-speak) that you've set up. The exact Vocabularies that appear, and the exact Terms within each, will of course be specific to your site.

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.) You may even have the option of "free tagging" for a given Vocabulary: Instead of a list of Terms, you'll only see a single blank field, into which you can freely enter Terms. 

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

Menu settings

This is where you place a link to the node 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. After you save the form, a link to the new node will appear in your site's main menu.

Note that you don't have to do anything here! First, you might not want the node to appear in a menu; you could instead let readers find it via links you'll place in other nodes' text. Or you could intend for the node to appear in lists created by Views. And even if you do want it to appear in a menu, you can always ignore the task for now, and later edit the menu itself to add a link to the node. It's up to you.

See:

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.

Attached images

If you see this item, you can upload an image, or select a previously-uploaded image, to appear within your node. The placement of the image within the node will be controlled by the site's Theme. 

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 node later, or leave internal notes for yourself about the node. 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.

Book outline

A Book in Drupal is a set of nodes organized in a hierarchical structure, with easy navigation links added automatically by Drupal. If you've already created a Book within Drupal, here you have the option of adding your new node to that Book. (If none of that makes sense to you at this point, ignore it!)

Meta tags

If this appears, you can add a short description that search engines will use in describing your site to searchers. (Without this, the search engine will instead grab the first couple lines of your page text, or otherwise make up something.) Writing something here is a good way to make sure searchers see the pithy description you want them to see. 

Underneath "Description" is "Keywords". Here you can add a few keywords that describe the node, to aid the search engines in matching your page to the right searches. Only input keywords here that are specific to the node and aren't being applied already to the whole site!

Weight (Drupal 5)

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 node'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.

URL path settings

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 Creating Links.

Comment settings

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

File attachments

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

Authoring information

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

Publishing options

The important options are:

  • Published: If unchecked, the node 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 node 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 node (such as on the front page of a typical site), the node will stick to the top of the list, regardless of its publication date or other sorting criteria.

Submitting the node

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

  • Preview: Selecting this will show the completed node as it looks so far, constructed as a web page. But further down the page, you'll see the "Create page" form as well, for further editing.
  • Save ("Submit" in Drupal 5): 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 node

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

When you are logged in, any Page node 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 Node

Page node or Story node? What's the difference?

As explained here, the developers of Drupal originally had different plans for Page nodes 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 Page nodes differently from Story nodes (for example, you might use Story nodes for content that readers can comment on, and Page nodes for content that doesn't allow reader comment), but otherwise they work identically.

Many people use Page nodes for static content (company information, product information, etc.) and Story nodes for articles (news, reviews, reports, etc.). It's up to you.

Creating a Story node

Once you're logged in, click here:

Navigation menu » Create content » Story

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

Create a Blog Entry Node

Creating a Blog Entry node

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 Node, 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, documents 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 within your site directory that's used for holding uploaded files. It'll often have a simple name like "files". All examples below will use "files" as the name of this directory; if the name is different in your setup, replace "files" in text below with the correct name. 

Within the "files" directory, there may be additional directories holding the actual image files and downloadable files. Each registered user with permission to upload files may also get his own directory to store files. All details will depend on how the site is set up. 

If there are user-specific directories, each will each have a unique name – for example, "u" (for user) followed by a number. In this case, the top "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

A file browser is an interface for listing and working with directories and files stored on a computer. You may have a built-in browser for your personal file directory. Check here:

Navigation » My account

If you see a tab labeled 'Personal files', 'File browser', or something similar, click that. There's your file browser. Details from there will depend on how the Drupal site was set up. To upload a file in a typical setup, you'll see a link or button with a name like 'Browse', 'Upload', or 'Choose file'. Clicking that will let you use your computer's own file browser to find and select the file to upload. You'll then click 'OK' or 'Open' as apropriate, taking you back to Drupal's file browser, where you'll click a link or but†on named 'Upload File' or something similar. That sends the file to the server, after which it should appear in the list of files your file browser displays, and will be available for use later.

Uploading files

Placing an image file into text

How do you place photos or other images inside text, such as in a node or block's Body field? If you're keen on writing HTML code, that's of course one option: write the code into the text that gives Drupal the URL of the image to display (it doesn't even have to be on your server) and the parameters for displaying it how you like. 

Most users are looking for something far different, though. Typically, a site will use a "WYSIWYG" ("What You See Is What You Get") text editor that lets you style text in word-processor fashion; said editor will include a button that calls up an image editor, a tool for selecting and inserting images into the text.

Drupal has no built-in image editor, so what's available depends on how the site was set up. Many sites will add an image editor which will not only let you choose an image on your server to insert into a node, but also let you upload new images from your computer to the server, using a file browser like that described above, or using a separate, specialized image browser.  

The topics of editing text and inserting images into text are covered in Using Text and Image Editors.

Attaching a file to a node for download

Assuming your site is set up for attaching downloadable files to nodes, the process is mentioned in Create a Page Node.

There's little to say, though. Your setup likely offers 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 likely be in your personal file directory. For example, if your personal directory is "u1" and the target file is "downloadfile.pdf", then input 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.

Uploading logo files

This is described here in Configuring Your Theme.

Drupal lets a Theme specify where and how to display a special logo file. The way you and Drupal will handle this file, however, differs from handling image files as described above.

The Themes configuration form gives you a field to enter the logo file's address, or a button to upload a logo file; it doesn't give you access to the above file browser or image editor. You have two choices from the Themes configuration form:

a) If the logo file is already on the server, input its address.

If it's a file you've earlier uploaded via a file browser, it'll likely be in your personal file directory. For example, if your personal directory is "u1" and the target file "logofile.gif" is inside there, then input files/u1/logofile.gif .

Or:

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

However, whichever of the above methods you chose, Drupal insists on its own name and place for that logo file. It will automatically create a logo file in the "files" directory, not your personal directory, and will give that file its own fixed name. (That shouldn't matter to you, but is useful to keep in mind if you need to troubleshoot logo problems.)

You can switch to a different logo file at any time, of course. Just specify a new one per a) or upload a new one per b).

Access by FTP

If you want to upload many files, your file browser may limit you to one file at a time. 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. Then again, it's often 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 within many text fields – most importantly, within the body text of nodes. Drupal sites can offer any of many available tools for handling those tasks. 

Tools of the trade

First, there are many "WYSIWYG" ("What You See Is What You Get") text editors available for Drupal that bring word processor-like styling and editing ability to text fields in your nodes or elsewhere.

Next, text editors typically give you access to an image editor, a tool for inserting images into the text and making simple edits (such as changing its dimensions). 

Finally, you may have another tool to complement the image editor: an image browser (or general file browser) for uploading images to your server and selecting images on the server. 

What's available on your site depends on how it was set up. Take the below as a general overview; details may detail a little or a lot on your site, depending on what tools it offers and how it's all configured. Where things differ, you should be able to figure out specifics for your site by poking around or by asking the site's creator. (Don't hesitate to poke around first, though; it's the best way to discover things!)

Text editors

There are many text editors available for use on web sites, each offering different capabilities. Two named TinyMCE and FCKeditor are popular with Drupal site creators and are the focus of the overview below. But even if your site uses something completely different, the basic concepts should remain similar. 

Appearance

A typical text editor gives otherwise blank text fields many 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.

The tools offered will vary with setup. A full palette of tools using TinyMCE may look like this:

TinyMCE

The tools offered by the FCKeditor text editor may look more like this:

FCKeditor

Note that a site may be set up to offer a whole mess of such buttons, or just a few of the most important ones. Or it may offer the full raft of tools to high-level users, and few or no tools to low-level users. 

Whatever the appearance, a good text editor will offer tool tips – that is, the small "labels" that pop up when you hold the pointer over a button for a couple of seconds. Try that if you're wondering what any button does. 

Helpful tools

While an overview of all available tools would be too much to cover, here are some of the more useful tools you may find among your text editor's offerings:

Text styling tools

text styling tools

Here's a passel of tools for making text fancy. All of those buttons should be familiar to anyone with word processor experience. From left to right, the first four are tools to make text bold, italic, underlined, or crossed-out. The next four set the flow of text. After that come two tools to make bulleted or numbered lists, and after that, two tools to indent or outdent text. Rounding up this bunch are tools to set the color of text or the background behind text.

You can no doubt create some lovely and awful effects with those tools. Use wisely. 

Paragraph styling and font tools

font tools

These tools are important, especially the first. The drop-down box titled 'Paragraph' lets you choose one of the common paragraph styles used in HTML, including headers of varying weight. You'll probably make use of these a lot as you organize text under headers and subheaders. 

The tools for font family and font size are less useful if you're happy to leave those font choices up to your site's Theme. If you want to change fonts and their sizes all over the place, modify the Theme; don't go crazy manually applying fonts and sizes to all of your text! But if you want to quickly style the occasional exception to your Theme's look, these are handy tools.

Linking tools

linking tools

The above tools let you insert and manage links in text.

To create a link, first select the desired text, click the first tool above, and input the link destination into the window that appears. Click 'insert' (or 'save' or whatever the window prompts you to do), and the text will now contain the link. 

To remove a link from text, select the text and click the second tool. Poof, no more link.

Finally, to add an anchor to text, click the point to insert the anchor (such as the start of a line containing a header), click the third tool, and input the name of the anchor. Easy! 

Image editor

image editor

The button that calls up an image editor typically looks like a little "landscape picture", such as the above. (In the picture of FCKeditor buttons at the top of the page, it's the yellowish button in the center of the center row of buttons.)

Place your text insertion cursor where you want the image to appear, click the image editor button, and you'll be rewarded with a window that lets you enter the URL, and some other specifics, of the image you want to insert. As follows: 

Image editors

Remember, there's no built-in or widely dominant image editor used in Drupal sites. Your site's offerings may differ from the below, but should share enough in common to let you figure things out. 

Appearance

If your text editor is TinyMCE, your image editor might look like this:

TinyMCE image editor

If your text editor is FCKeditor, your image editor might look like this:

If you can't get any such window to appear, make sure that your web browser isn't blocking pop-up windows, or at least from your domain. 

Preparing images

First, just to make sure there's no confusion on one key item: Basic image editors offer no ability to actually create images, or even perform fancy editing. Their job is placing images within your text; the "editor" capability is limited to setting display details, like specifying the size and position of the image. (It's possible for a Drupal site to offer more serious editing capability, but that's a topic for sites with such fancy abilities.) 

As with any web site management system, you'll need to first have your images ready to use, whether you've procured them from somewhere or made them yourself. If you need to edit the images, use your favorite image editing software. 

Finally, know where your images are so you can tell your image editor where to find it! If the images are already on your server, great; you're halfway there. If they're on your computer instead, you'll have to first upload them to the server. That's no problem; keep reading.

Inserting an image

The basic idea is simple. See the field that says "URL" or "Image URL"? There you input the URL that pinpoints your image's location on your server. That's the key step. Set some of the other properties if you like, then click 'Insert' or 'OK' at bottom. The image appears within the text. That's it!

Except... Chances are you don't know the image's URL on the server (or maybe even its name). Or the image isn't even on the server yet. If so, you need the help of an image browser

Using the image browser

Depending on its setup, your site may offer a specialized image browser, or a general file browser. Whatever the technical details, the text below will call it an image browser

The image browser will let you locate and select an image on the server. If the image you want isn't on the server, don't worry; the image browser will also help you upload an image to the server from your computer, and then let you locate and select that image on the server. Either way, the image browser will then report the file's URL to the image editor, which can then place the image into your text. That's the goal! 

In both of the above images, the button for calling forth the image browser is to the right of the URL field: a small red and blue icon in the first image, a button labeled 'Browse Server' in the second image. Click it. You'll see a new pop-up window looking like this:

IMCE file browser

The above browser is offered by the combination of TinyMCE and a browser component called IMCE. The following instructions speak to that particular setup, but as always, can be generalized to your setup too.  

If the image you want is already on the server, skip to right to step 6. Otherwise, start with step 1 below: 

Uploading a file to the server

1. Click 'Upload' at the top of the window

In this image browser, that's a bit of a misleading label: clicking this doesn't yet upload anything, it only starts the process of specifying what you want to upload. With that cleared up, go ahead and click. You'll reveal the following buttons:

file browser choose file

2. Click the 'Choose File' button

That will open a window in your computer's file browser, asking you to locate the image you want to upload. Do so. 

3. Click to select the desired image in your computer's file browser

Once you've found the desired image file, click it to select it.

4. Click 'Choose' in your computer's file browser

Click 'Choose', or 'OK', or whatever your computer's file browser prompts you to click. You'll go back to Drupal's image browser, with the selected file's name appearing to the right of the 'Choose File' button. 

5. Click the 'Upload' button

That's the 'Upload' button to the right of the 'Choose File' button, not the 'Upload' link from step 1. Clicking it will send the image file to the server. The image file should then show up in the list of files, located and selected and ready to go. That lets you jump right to step 8 below!

Selecting a file on the server

6. Locate the file

Navigating the list of directories on the left, find the directory that contains the file you're looking for. The file name will show up within the list on the right. A preview of the image should also appear at bottom.  

7. Select the file

Click the file's name in the list. Look at the preview to confirm that it's the right one. 

8. Click 'Send to tinymce' at top

This is the link (or button) most likely to vary with your setup. It may say 'Send to image editor' or something else – with some image browsers, it may be a link that says 'add' which appears within the file list itself, to the right of your file's name and data. Experiment if you have to; you'll find the link or button that sends your selected file to the image editor.

Once you've done this, the image browser window will disappear and you'll be back to the image editor window. What's new is that the "URL" field will now contain the proper URL for an image on your server – that was the point of all those steps!

Inserting the image

9. Click 'Insert'

Depending on your image editor, that may read 'OK' or something else instead. Either way, this completes the process: The image now appears within your text editor. Good!

Setting image properties

Between steps 8 and 9 above, you can set several properties of your image. Once again, your options will depend on your setup; below are typical options, based on the TinyMCE image editor. Check the various tabs offered by the image editor window to find all of the below (or whatever options may appear under similar names). 

"Image description" and "Title"

These fields may have names like "Alternative Text". They're for inputting text to display in case the image doesn't appear; it's optional, but is good web design. 

"Alignment"

The choices under "Alignment" will set the alignment of your image within the surrounding text. In particular, the "Left" and "Right" options are extremely useful for images that display on the left or right, with text flowing around the image.

"Dimensions"

Here you can set the height and width of your image. Leave the fields blank to display the image at its original dimensions.

Note any tools ("Constrain proportions", or possibly a padlock-like image) for forcing the image to retain its proportions. With that option selected, you need only set one dimension (height or width), and the other dimension will automatically scale to maintain the original proportions.

"Vertical space" and "horizontal space"

Insert numbers here to add a few blank pixels of space above and below, or to the left and right of, your image, respectively.

"Border"

This lets you create a border around the image. The number you input will be the width (in pixels) of the border. 

From computer to web page: an image upload summary

Getting an image from your computer into the text of a field on your website involved quite a few steps. Here's a nutshell version of the process, from start to finish, using the TinyMCE image editor and file browser shown above: 

  1. Have your image ready on your computer, in a location you can easily find (such as the Desktop).
  2. On your website, navigate to the text field to receive the image (such as a node's Body field).
  3. In the target field, place the cursor where you want the image to appear.
  4. Click the button that calls up your image editor. The image editor window will appear.
  5. Click the icon (to the right of the URL field) that calls up your image browser. The image browser window will appear.
  6. Click 'Upload' at the top of the window.
  7. Click the 'Choose File' button. A window of your computer's file browser will appear.
  8. Locate the desired file on your computer and click to select it. 
  9. Click 'Choose' (or 'OK' or 'Open' as appropriate) in your computer's file browser. You will go back to Drupal's image browser.
  10. Click the 'Upload' button (to the right of the 'Choose File' button). The file will appear in the image browser's list of files on the server.
  11. Click 'Send to tinymce' at the top. You will go back to the image editor window, with the image's URL now specified. 
  12. Input other image settings as desired.
  13. Click 'Insert' at the bottom of the image editor window. The image will appear in your text field.

Whew! It's a lot of clicking – though once you start building up a store of reusable images on the server, you'll get by much more quickly.

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 Taxonomy: "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 know, 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). 

Drupal can do the same with 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 outlines 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 "Taxonomy" from Important Terminology!:

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

  • Taxonomy: This is the overall name for the system Drupal offers to classify and organize nodes in your site by assigning them tags (called Terms; see below). You don't have to use Drupal's Taxonomy features to organize content, but it's usually extremely useful to do so.
  • Term: A Term is a keyword or tag that you can 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.
  • Category: This is a confusing word: some Drupal documents say it means the same thing as Taxonomy, others seem to equate it with Vocabulary. Fortunately, it seems to be dropping out of use, and you may never come across it. This text will avoid it and stick to 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 in Drupal 5, you need to visit a form titled "Categories". Drupal 6 more sensibly labels this form "Taxonomy".)

Here's a short summary 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. (We'll avoid Drupal 5's superfluous word categories.)

Got that? Good!

Ready-made tags: node types

Let's note from the start that all your content already has a built-in tag of sorts: 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; and so on. 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 Creating Links 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 » Taxonomy

(In Drupal 5, that last part is "Categories", not "Taxonomy".) 

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 each Vocabulary.

For example, if you have a Vocabulary which you've named "topic", and this Vocabulary happens to list "Page, Story" under 'type', then that means only Page and Story node types can be tagged with Terms from the Vocabulary named "topic". Others, such as Blog Entry nodes, can not use the Terms from "topic".

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 on your site, 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 forms for creating content (for any content types that can use the Vocabulary).

Description, Help text

Optional extra information. 'Help text' can be useful for telling users how you want them to use the Vocabulary, but otherwise, you can feel free to ignore these items.

Content types

As discussed above, you decide what node types can use this Vocabulary. This is where you decide, by checking the boxes of the node types. 

For example, if you are creating a Vocabulary called "Product Category", and know that you only want to use its Terms with Page nodes (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.

Settings (Drupal 6)

Here's a handful of options to customize how your Vocabulary works. (If you're using Drupal 5, see Hierarchy (Drupal 5) below.)

Tags: This option would be better named "Free tagging", not simply "Tags". It lets you freely tag content with whatever Term(s) you like, instead of choosing from a ready-made list. With this option enabled, you create a new Term, or use an existing one, by simply typing it into the text field Drupal provides. (You can enter multiple Terms by separating them with commas.)

This on-the-fly input is a good choice for content that requires an unpredictable or growing set of Terms. 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 separate available Vocabularies, but checking this option allows a node to use multiple Terms from the same Vocabulary. For example, say a single Vocabulary contains Terms that include "machinery" and "books". With the multiple select option enabled, a product listing for a machine repair manual could be tagged with both "machinery" and "books" from that Vocabulary. The result: A page that listed products tagged with "machinery", and a page that listed products tagged with "books", would each display this particular product.

If you're using free tagging (the "Tags" option above), you automatically have the ability to tag content with multiple Terms from this Vocabulary, and can ignore "Multiple select".

Note: When you create a node and choose multiple Terms from a Vocabulary, selecting the second Term will only un-select the first. You need to hold down your computer's "mutiple select" key (Command for Macs, Ctrl for Windows machines) when making the second and later selectons.

Required: You're normally free to tag a piece of content with no Term from a given Vocabulary. But not if this setting is checked! You won't be able to submit the node without selecting a Term (or inputting one if using free tagging). This is a useful setting when you are allowing others to submit content, and want to enforce tagging.

Hierarchy (Drupal 5)

There are several 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 purifier 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.

Free tagging: This is the same as Tags under Settings (Drupal 6) above.

Multiple select: This is the same as Multiple select under Settings (Drupal 6) above.

Required: This is the same as Required under Settings (Drupal 6) above.

Weight

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

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: the Terms contained within. 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: each Term's name in the list contains 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 Creating Links.

Adding terms

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

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

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.

Parents

Here you have the option of creating a "hierarchy" of Terms, by placing a new Term under 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.

Under Drupal 5, you have to first enable the ability to create this hierarchy. See Disabled, Single, or Multiple under Hierarchy (Drupal 5) above.

Related terms

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

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.

Tagging content

Now that you've got Terms, what to do with them? Simple: when you create content, you'll see Terms listed under 'Vocabularies' ('Categories' in Drupal 5) on the node's edit form. Each available Vocabulary will appear as a separate list (or as a text input field if the Vocabulary uses free tagging). From each Vocabulary, pick whatever tags you want to attach to that node (or input tags if the Vocabulary uses free tagging). This is briefly described under the heading Vocabularies ("Categories" in Drupal 5) on Create a Page Node.

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

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 the "Multiple select" option, and maybe skip the "Required" option. Consider free tagging too.

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'. How about general company background? The 'General info' and 'company' Terms. 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. Inside the Vocabulary called "Content Type", add a new Term, 'recipe'. (You'll also want to decide on a consistent node type to use for recipes, such as Page, Story, or even a newly-created Recipe node type.)

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? 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.)

One note: Much of the following discussion pertains to Drupal sites using two common modules (Path and Pathauto). That most likely includes your site as well, but if the below doesn't seem to apply, ask your main administrator about the setup of the site.  

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, beginning 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. (Supposedly, so do the search engines.) Fortunately, you can define a nicer, alternate path – what's called an "alias" – when creating a node.

(A note: Drupal documentation sometimes uses the word "path" to 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 the URL <your site domain>/node/53, or at the alternate URL that uses 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 settings', 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

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. There's also a filter provided for quickly finding the aliases you're looking for.

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.

Delete aliases (Drupal 6)

Here you'll find checkboxes for mass deletion of large groups of aliases.

Automated alias settings (Drupal 6)

This is a great tool if you want to let Drupal create aliases for you, based on rules you set up. See discussion below.

Automated alias creation

How would you like your site to generate an alias for you automatically whenever you create new content? That can be a very useful thing, and a great way to make sure aliases for multiple nodes use a consistent format – an especially important concern if you have multiple users creating content. That is, you don't want one day's news article to have the alias news/12/24/Christmas_Eve_Events, the next day's to look like news/1225/Xmas-dinner-party, and the next day's to appear as news_story/Dec-26-the-hangover. Let Drupal automate those aliases, and they'll hew to a consistent format.

Under Drupal 6, the administration tools appear under the "Automated alias settings" tab of the "URL aliases" administration form, as noted above. Under Drupal 5, you'll find the form elsewhere:

Navigation » Administer » Site configuration » Pathauto

There are a lot of settings, and an overview will have to wait for later. Fortunately, the form's instructions are fairly self-explanatory and you should be able to work things out.

Finding a path

It's handy that you can set an alias for any new content you create, but how do you find the existing path or alias for 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 your 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 » Comments

Getting a Term's path

A link to a whole Term can be a very useful thing. Drupal automatically creates a path for each Term – which, more specifically, means a path that tells Drupal to create a page listing all the content tagged with that 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 » Taxonomy

(In Drupal 5, that last part is "Categories", not "Taxonomy".) 

As discussed in Terms, Vocabularies, and Taxonomy: "Tagging" Your Content, that's the list of Vocabularies, each of which is a collection 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 Taxonomy 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 the path in menu items or other links.

Creating Links

Links are how visitors get from one page to another. You'll probably put a lot of links in menus – a menu being just a list of links to other content. But you may also place links directly inside content text, or inside a block's text.

You may want links that point to a specific content item on your site, or a specific page on an outside web site. Or you may want powerful links that pick up and return a list of multiple content items from your site's database.

There's a lot you can do. Here's a basic guide to linking:

Placing Links

Know the path

A link is a pointer to another page or node address. The first thing you need to know is the target page's address: its path (or if it's external, such as a page on another website, its URL). If you haven't done so, see Content Paths and URLs.

You're now armed with the paths you need for the links you'll create. Next:

Linking to a path or external URL

Putting a link into a menu item

Every menu item needs to specify a path; sending the visitor to that path is the purpose of a menu item. When creating or editing a menu item, you input the path into the 'Path' field. See Working with Menus: Administration Form.

For an internal path, you only need to input the path, not the entire URL starting with http://<www.yourdomain.com>. For example, if the link is to a product description page with the path products/home/superbroom, then products/home/superbroom is all you need to input.

For an external URL, input the whole URL, starting with http:// .

For an email address, write mailto:, followed by the address: mailto:info@google.com, for example. Clicking on that menu item's link will prompt the user's email program to draft a message. 

Putting a link into content text

If you want to place a link to an external URL or an email address into a block of text, you likely don't need to do anything special. If the text field uses a text editor like TinyMCE or FCKeditor, the text editor may be set up to automatically convert certain addresses into working links. Just type the URL or email address normally – like www.google.com or <www.yourdomain.com>/news/special-report – and the text editor should do its magic when you save the content. You probably don't even need the http:// part of those URLs (but test to make sure). Your site may perform the same nifty trick for email addresses too, turning email@google.com into a working email link.

Again, though, that'll only work in a field using such a text editor which has been set up to create those automatic links; yours might not be (in which case you'd need to configure Input Formats to improve things – a topic for later).

More importantly, you probably don't want to use a full URL for every link. You probably want to bury the link within other words (like "read my hosting revue" or "Visit the National Geographic site"). How to do that?

The easiest way is to use the 'insert/edit link' function in your text editor (see Using Text and Image Editors). You select the words you want to imbue with a link, click the appropriate 'insert/edit link' button, type the URL into the window that pops up, and close the window. Voilá, a link embedded in the text.  

However, a caution (for typical, if not necessarily all, Drupal setups): Unlike the above procedure for placing a link into a menu item, here you do need to consider the full URL, even for internal pages. If you only put in the part of the path that follows http://<www.yourdomain.com>/, Drupal will likely try to append that path to the current page path, which may not at all be what you want.

That'll make a lot more sense with a simple example.

My page called 'Drupal for Beginners' has the internal path drupal-for-beginners and the URL http://www.drupalace.com/drupal-for-beginners. Say I want to embed a link to it within the last four words of the following text: "Read my overview of Drupal for beginning users."

First, I'll call up my 'insert/edit link' function and input just the internal path:

Link using internal path only

Here's the link that results:

"Read my overview of Drupal for beginning users."

It's no good. My text editor took the path for this page (EDAM/creating-links) and tacked drupal-for-beginners onto the end of that, creating the monstrosity www.drupalace.com/EDAM/creating-links/drupal-for-beginners as the final URL. That'd be fine if it were what I wanted, but in this case, it's not. There's no page with that URL and thus the link is broken.

(Edit, many months later: Hmm, at first my text editor was creating the wrong URL shown above. I just checked again, and now it's instead creating www.drupalace.com/EDAM/drupal-for-beginners . I don't know what change I made to the site's configuration to spur that change... but either way, it's an invalid link! So read on.) 

This time, I'll insert the whole URL:

Link using whole URL

Here's the link that results:

"Read my overview of Drupal for beginning users."

That one works!

Keep that point in mind as you create links. You don't want broken links littering your site.

Link to a Term's path

Recall that a "Term" is a "keyword" that tags your content. You can link to a Term, which will return all nodes tagged with that Term. For example, you can make a menu item named 'See All Products' which links to the Term 'product', and when clicked returns all nodes tagged with the Term 'product'. An instant, simple product catalog!

What you want here is the Term's path. A Term has a path like any other content; once you now it, you can do use it like any other path. See Content Paths and URLs to find a Term's path.

Link to multiple Terms

Now comes the powerful stuff: combining multiple Terms in one link. You can create a link that returns all nodes that are tagged with the Terms 'product' and 'technology', for a narrow list of only nodes that deal with both of those topics. Or you can create a link that returns all nodes that are tagged with the Terms 'product' or 'technology', for a broader list of all nodes about either of those topics.

First, note the path for each Term you'll use. For the following examples, say you'll use three Terms whose paths are taxonomy/term/1, taxonomy/term/5, and taxonomy/term/13:

AND combinations: Write the path like this:

 taxonomy/term/1,5,13 

to return nodes tagged with all three of the Terms.

OR combinations: Write the path like this:

 taxonomy/term/1+5+13 

to return nodes tagged with any one of the Terms.

Use the same format, separating numbers with commas or plusses, whether you're combining two Terms or twenty. (Naturally, you'll replace the above "1", "5", and "13" with the appropriate numbers you've confirmed for your Terms.)

If you think the above sounds hard to remember, you aren't alone. It's definitely strange that OR combinations, not AND combinations, use the symbol "+" in their syntax. It sounds backward. Chalk it up to an odd quirk of Drupal, and move ahead.

Link to a Term and all its child Terms

Terms can be "hierarchical", with "child" Terms placed below a "parent" Term. (See Terms, Vocabularies, and Categories: "Tagging" Your Content.) One example: a Term 'machinery', with child Terms below it like 'pump', 'generator', etc.

If you'd like to create a link that picks up content tagged with the parent or any of its child – 'machinery' or 'pump' or 'generator' in the above example – there are three ways.

The first and simplest method in concept: Make sure that you tag all pump-related nodes with 'pump' and 'machinery'. That way, a link to the Term 'machinery' will pick up all pump-related nodes as well. But here's the catch with that method: If you forget to include the tag 'machinery' on your Model 501 Grease Pump product description node, the link will miss it.

The second method is as described above: Link to the combined terms, like taxonomy/term/1+5+13. This link will catch the Model 501 Grease Pump node, on which you included the 'pump' tag but forgot the 'machinery' tag. That's better, but there's another problem: As you add new child Terms, you need to keep updating the link to include the new Terms (so that it ends up looking like taxonomy/term/1+5+13+24+25+31+33 and on and on.)

The third way is as follows: Link to the 'machinery' Term only, and tack on /all at the end of it. It might look like this:

taxonomy/term/1/all

That link will pick up content tagged with Term 1 ('machinery' in this example), plus any child Terms below that, even any new ones you add later. Handy!

Working with Menus: Administration Form (Drupal 6)

In all likelihood, menus are the main way by which visitors get at your content. That makes them the key to your site.

What's on the menu?

A menu is a list of links to content. A specific link inside a menu – a "menu item" – can link to a specific node or to a URL on another site. Or, calling on the full power of the database behind your site, it can pull up a list of nodes based on some criterion, telling Drupal to create a new page from those nodes.

As you'd expect, your site can have any number of menus. Drupal starts you off with a couple of basic ones: the Navigation menu and the Primary links menu (often called "Primary menu").

The Navigation menu is Drupal's built-in menu of links for authenticated users (that is, users who have an account and are logged in). It provides links to the various functions the user has permission to perform: creating content, viewing reports, editing account info, administering sections of the site, whatever the user is allowed to do. (The Navigation menu doesn't provide links to functions for which the user doesn't have permission. It's a big help that Drupal handles this automatically; you don't have to worry about creating a menu of links to only the functions a user needs and no more.)

The Primary menu is simply a suggested menu for you to start placing your site's main links. It's ready-made for you on the assumption that you'll want a main menu with links like 'Home', 'About this site', 'FAQs', or whatever works for you. But you're perfectly free to create a brand new menu for that purpose, or to have no such "main menu" at all. It's all up to you.

What do you do with menus?

Where displaying menus on your site is concerned, the general Drupal concept is to have each menu exist as a block. To place a menu on the site, you enable the block on the Blocks administration form, set where on the page you want it to occur, and voilá, Drupal created a block there bearing your menu's title and displaying all of its menu items as links. 

An exception is the Primary menu. That, too, can be displayed as a block like any other. But most Themes will also set aside a special region in which the Primary menu will appear in its own unique format (typically, in the form of horizontal links at or near the top of the page, as seen on so many web sites).

See Working with Blocks and Placing Menus on Your Page.

Working with menus

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

Navigation » Administer » Site building » Menus

At the top of that form, you should see three tabs: 'List menus', 'Add menu', and 'Settings'.

An overview of the tabs:

List menus

You'll see a simple list of the titles of the menus available on your site: probably the Navigation and Primary menus (unless they've been renamed), and whatever other menus have been created. 

Click one of the menu titles on the list, and you'll be taken to a page with three new tabs:

List items

This tab lists all the menu items in the selected menu. The list has the following columns:

Menu item

Here you see the title of each menu item. Naturally, those are the same labels a user sees within the menu.

Clicking on a menu item's title simply activates that link, the same as selecting it in an actual menu.

To the left of each menu item is a cross-shaped "drag mark". Just drag that mark or down to change the order of a menu item within the menu. You can also drag to the right, to make a menu item a sub-menu item of the item above it. (Drag it back to the left to undo that.)

Sub-sub-menus? No problem. You can make any hierarchy of menus you like. Just drag away.

The dragging procedure is much easier to perform than to describe. Quick experimentation will make it crystal clear to you.

Enabled

This is a great quick way to take an item off of a menu without deleting it entirely. Just uncheck 'Enabled', and when you click the 'Save configuration' button, the item will no longer appear in the menu. You can always enable it again later with the same check box.

Expanded

The 'Expanded' column refers to the handling of any sub-menus. 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 sub-sub-menu items like 'Blocks'.

If the 'Expanded' box is checked to expand the sub-menu, then the sub-menu items will be visible in the menu (though probably indented, to show sub-menu status). For example, you would see 'Site Building' indented under the "parent item" 'Administer' in the Navigation menu.

If the 'Expanded' box is not checked, then a viewer will have to click on a menu item to see the sub-menu items under it. For example, you would see 'Administer' in the Navigation menu, but not 'Site building'. Only after you clicked on 'Administer' would its sub-menu "open up", displaying 'Site building' and other sub-menu items.

Operations

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

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

Deleting a menu item removes it for good.

Add 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:

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 earlier pages.

Menu link title

Besides a path, this is the other important item: What's the title of the menu item, i.e., what words will people see in the menu? Typical titles are things like 'home', 'products', 'contact me', and so on.

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.

Enabled

This is the same 'Enabled' option discussed above. Here you can choose to uncheck the 'Enabled' box when you create a new menu item, should you want to create an item now but not have it appear within the menu until later.

Expanded 

This is the same 'Expanded' option discussed above. Like the 'Enabled' checkbox, this allows you to check or uncheck this item as you create a new menu item, without having to do it afterward in the 'List items' tab.  

Parent Item

As discussed earlier, the 'List items' tab offers a way to create sub-menus by dragging a menu item into an indented position under a "parent" menu item. Here you've got the option to the same thing while creating a new menu item. 

Click the drop-down menu to see available menus and the menu items beneath them (indented with hyphens). Any existing sub-menu items appear too, using deeper indentations.

Just select 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.

If you place your new menu item somewhere now and later want to move it elsewhere, there's no problem. Just go to the 'List items' tab and use the drag-'n'-drop method discussed there.

Weight

As discussed earlier, the 'List items' tab offers a way to order menu items by dragging them into place on the list. Here you've got the option to set a new menu item's order while creating it. 

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

But... Looking at the list of numbers that pops up, how do you know which number to choose to place your new menu item smack between two existing menu items? How do you know their "weights"? The truth is, you can't know without the hassle of editing those particular menu items. This 'Weight' option is something of a holdover from earlier versions of Drupal that offered it as a rather clunky way of ordering menu items. 

The easiest way to order menu items is to ignore this 'Weight' option, and after you've created all the menu items you want, head to the 'List items' tab to drag items into the desired order. 

Edit menu

Head to this tab if you want to change the title of a menu (for example, to change "Primary menu" to a less jargon-y "Main site menu"). 

Add menu

This is where you create an entirely new menu to join the ranks of Navigation, Primary, and whatever else you've got.

You'll see the following fields:

Menu name

Here you input a name for the new menu. Important point: This isn't the menu title that users will see in a block (like 'Our Products'). This is an internal menu name used by Drupal for its own purposes. Follow the instructions under the field on what characters you need to use – but for simplicity, keep the name similar to the title you plan to give the menu (like the name 'our-products' to go with the planned title 'Our Products'). 

Title

Here you input the title that users will see. If you title the menu 'Our Products' and display the menu as a block, then 'Our Products' is the title that Drupal will place at the head of that block. 

Description

Here you can add a few words to describe a menu and its purpose, if you like. It might be useful as an aid to other site administrators, or even to help you later recall what you intended a specific menu for.

Settings

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

Default menu for content

This setting is probably meaningless unless you are allowing multiple users to create new content and create menu items linking to that content. Unless you have reason to change it, leave it set to Navigation.

Also see Creating Menu Items on the Fly.

Source for the primary links

Here Drupal is asking you which of your (possibly many) menus you would like it to handle as the special Primary menu. As discussed earlier, most web sites have one "main menu" with important links for visitors like 'home', 'about us', 'links', and so on. Drupal gives one such "main menu" special treatment: Most graphic Themes can automatically display this special "Primary menu" in a special manner, often horizontally at the top of every page.

Drupal initially creates a menu titled 'Primary links' for you, which is handy for this purpose. But here you're free to select any one of your menus for this special handling – say, ignore the 'Primary links' menu and set your hand-made 'Big Site Menu' menu as the 'Source for the primary links'. (Yes, the terminology is getting strange here.) 

Source for the secondary menu links

Drupal is equipped to handle one more "special" menu: a Secondary menu. What's that for? Well, think of those sites that have their main links in a horizontal line at the top, plus a second line of links under that. Many Drupal Themes are set up to to easily display a menu in this "Secondary menu" position, with no particular effort on your part.

As your Secondary menu links, you might simply want another row of lesser (but still important) links. To do this, just select the appropriate menu in the pop-up selector. (If you haven't made such a menu yet, go do that first!) 

Or, you might want the Secondary menu to display sub-menu items of the Primary menu. To do this, just select the same menu for both 'Source for the primary links' and 'Source for the secondary links'. Drupal will take care of the rest.

An example to illustrate that sub-menu option: If your Primary menu contains the big, important links including 'Our Products', and its 'Our Product' menu item has several sub-menu items for individual product categories, then the technique above will tell Drupal to display those sub-menu product categories in the Secondary menu when a user clicks 'Our Products'. That sort of menu setup is very common on web sites.

Working with Menus: Administration Form (Drupal 5)

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 Creating Links.

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 Form). But when you create or edit a node, you also have the option of creating a menu item for the node, right within the node creation form.

On the go!

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

The alternate way to do the same: When you create the new node, you can create a menu item right then and there. On the form for creating your node ('Submit Page', 'Submit Story', or whatever it happens to be), look under 'Menu settings'. There you can set the following three properties (and in Drupal 5, a Description of the menu item as well):

Menu link title

Input the title of the menu item. That's what will appear within the menu.

Parent item

What menu will this menu item appear inside? Choose one here.

The pop-up list shows your existing menus and all of their menu items. You can simply select the title of a menu to have your new menu item inserted at the normal "top level" of that menu, or you can select a menu item to make your new menu item a "child" sub-menu item of that "parent" menu item.

Weight

As discussed in Working with Menus: Administration Form, "weight" is an older and somewhat clunky way of setting the order of items within a menu. A much easier method is to ignore weight, and later order your menu items with simple drag-'n'-drop. Head to the linked page for more info.

What's the path?

The above on-the-fly menu item creation is similar to creating a menu item using the Menus administration form, with one key difference: Here you don't need to set a path for the menu item. You're creating a menu item for the node you're in the midst of creating, so of course the menu item will automatically link to the node's path!

Further editing

Want to later edit the menu item you've created (or delete it, or move it, or whatever)? No problem. Use the regular Menus administration form.

Restricting on-the-fly menus

As noted above, 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.

In Drupal 6, the pop-up list 'Default menu for content' lets you select which menu will be the default choice for users who create menu items on the fly.

In Drupal 5, 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 will be restricted. (Keep it at 'Show all menus' for no restrictions.)

Overall, this is an esoteric detail that many sites won't need to worry about at all.

Placing Menus on Your Pages

So you're all up to speed on how to create menus, how to fill them with menu items that link to content, and how to otherwise sculpt those menus to your liking. Great. Now, how about having those menus actually report for active duty and show up on your site?

Displaying menus in general

Drupal's basic policy for handling display of menus is to make each one a block. From there, display is a simple matter. Head to the Blocks administration form:

Navigation » Administer » Site building » Blocks

Among all of your site's blocks listed there, you should see a separate block for each menu you've created. Just follow the standard procedures for displaying a block, and slap that menu onto pages just where you want it. Like any other block, you can choose from among several locations ("regions") on the page to hold the block, set its order among any other blocks displayed in the same region, and even set details such as having the block only appear on certain pages or for certain user roles. Flexible and easy.

See Working with Menus: Administration Form and Working with Blocks for all the grit and grease. 

Displaying special menus

As discussed in Working with Menus: Administration Form, Drupal offers special treatment for a few menus. See that page, and the notes below, for the extra detail you need to know for those. It's nothing difficult:

Navigation menu

You'll recall that this is the menu Drupal automatically creates for authenticated users. Drupal populates it with the menu items a user needs for all of his permitted tasks: create content, edit his account info, whatever he's allowed to do. 

The Navigation menu appears as a block, like any other menu. The only special concern is this: As the Navigation menu is the one users need to handle user-related tasks, you probably want to make sure it's enabled and readily visible to users. In particular, it's your main tool as site administrator, so think twice before removing it from your pages! 

(If you do deactivate the Navigation menu and desperately want it back, don't panic; you can easily get back to the Blocks administration form at the URL <your site domain>/admin/build/block . Go there and make the Navigation menu visible again.)

Primary links menu

As discussed earlier, most Drupal Themes offer a special location for displaying a "main menu" of your most important links, typically in a horizontal line near the top of all pages. You can select which of your menus gets this 'Primary links menu' designation. (Drupal automatically offers one such candidate menu, suggestively titled 'Primary links', though you don't have to choose that one.)

The point of note: Setting a menu as the special 'Primary links menu' doesn't remove its existence as a normal block. It'll still be available in your list of blocks, which you can choose to place in any of the regions normally available for block placement. 

Secondary links menu

Also as discussed earlier, many Drupal Themes also support special display of a 'Secondary links menu', typically a second row of links underneath the special 'Primary links menu' links. You can choose which menu, if any, to designate for this special display.

The point of note here is the same as above: Designating a menu as your 'Secondary links menu' doesn't remove its existence as a normal block. You can still choose to place it as a block somewhere on the page.

Lots of choices

You can see that Drupal offers fairly flexible options for placing menus on your pages. For a specific menu, you can choose to not have it appear at all, or to appear as a block in a region of your choice, or to appear in the special 'Primary links' location, or to appear in the special 'Secondary links location', or to appear in one of those two special locations and appear as a block somewhere. For menus appearing as blocks, you can also (as with any other block) set the menu to appear only for certain user roles, and/or only on certain pages. 

That's a lot of possibilities! Just set something simple at first, and play with more detailed options as you come across the need. 

Placing Content on pages

Here I'll cover how to place your nodes – your Story nodes, Page nodes, Blog Entry nodes 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 node or Page node, 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 accoutrements 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 and creates a page around that list.

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 to Drupal to make a page, not a link to 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 field 'Default front page'. Put in the path (without <your site domain>) of the node. For example, if you have a Story with the path node/43, then input node/43, and that'll become your front page. If it's a Page with the path greetings, then input greetings.

2. Set some other path as the front page

The path you enter into 'Default front page' doesn't need to be that of a single node. It could be a path for a page listing many nodes, such as a taxonomy-based list of nodes, a list of all Blog entries, or a list constructed from a View. (See Creating a Page from a List of Nodes for ideas.) Or it could be any other specific page on the site – say, the login page, if that's the first thing you want visitors to see. (See Logging In.)

It's up to you. If it has a path, you can enter it as your default front page.

3. Select specific nodes to appear on the front page

As mentioned under Creating a Page from a List of Nodes, Drupal offers a special way to fill your front page with nodes, a way that isn't available to other pages. The Edit form for nodes offers a 'Promoted to front page' checkbox under 'Publishing options'; check that, and blammo, the node will appear on the front page! That makes it easy to place multiple, utterly unrelated nodes willy-nilly into a list on the front page. See Create a Page Node for more details.

(For this to work, you don't want to specify a path under the 'Default front page' setting discussed above. Leave it blank, or simply input "node" and nothing else.)

This method offers a second way to achieve #1 above, a front page built around a single node. Just check 'Promoted to front page' for your chosen one node only; voila, a one-node front page. (You'll probably want to give it no teaser, so the title and full text of the node will appear on your front page.)

4. Use advanced front page settings

If your site has the Front Page module enabled, you'll have access to advanced settings at

Navigation menu » Administer » Site configuration » Advanced front page settings

The settings here allow all kinds of tricks: different front pages for each user role, special pages for users that haven't visited for a while, and more. There's a big pile of options to work through, but the instructions on the form are pretty self-explanatory.

Working with Blocks

Blocks are the chunks of text or information that appear around the page – typically in columns or "sidebars" on the right or left, but depending on your site's Theme, they could appear at top, at bottom, anywhere and everywhere.

Drupal provides many ready-to-use blocks with useful information, such as links to popular content; you can create your own blocks as well.

The Blocks administration form

There's a handy form for working with blocks:

Navigation menu » Administer » Site building » Blocks

Regions and block arrangement

The Blocks form automatically shows you something that other pages don't: the location on your site of regions. You'll see colored spaces scattered about the pages, with names like "left sidebar", "right sidebar", "sidebar last", "content top", "footer", and so on – maybe some of those exact names, maybe not, but probably a few along those lines.

Regions are where you place blocks. The exact regions you'll see, and their locations, are determined by the Theme chosen for your site. Regions are one of the key considerations in choosing a Theme for your site: You'll want a Theme that includes regions in the locations where you want to place blocks.

Can a region hold more than one block? Sure! Toss as many into a region as you like. The only real restriction is on what'll fit in a region and still look good. A number of blocks could fit nicely into a sidebar, stacked one on top of another; it's a common look on web sites. Multiple blocks in a region at the top of the page, though, could push all of your main content way, way down the page – not a good look. 

Similarly, a block containing a short, wide image might look great at the top or bottom of the page, but really screw up layout (or appear cut-off) if placed into a sidebar region. Some blocks will contain lots of stuff, and others won't. Fitting blocks of varied shape and number into your site's regions is a bit like working a puzzle. Experiment freely with block placement until things fit nicely.

List of blocks

At the top of the Blocks form, you'll see tabs for 'List' and 'Add Block'. List is what lets us lay out blocks on the page, so let's look at that.

Immediately below List, you may see several links representing various graphic Themes your site is equipped to use, allowing you to set different block configurations for each Theme. There's no need to worry about it now; by default, the Theme you're currently using should be selected, meaning you should have no problem seeing the changes you make to blocks. 

Elsewhere near the top of the form you should see some built-in, brief instructions on administering blocks.

Below all that is the meat of the form: the list of blocks available for your site (though most of them likely aren't actually appearing on pages). The blocks appear on the list grouped by region – or, for blocks that haven't yet been assigned to any region (and thus which don't appear on pages), under the group 'Disabled'.

Blocks are listed with the following columns of information:

Block

The description of the block. (Not all of the descriptions are necessarily easy to understand...) You can also think of this as the block's name that this form uses (but which may not be the same as the title that actually appears on site pages). 

Region

As described above, regions are the locations on the page, set by your site's Theme, where blocks can appear. You can set a block's region freely. For any specific block, just take a look at the regions displayed here and there on the Blocks form, decide which of those should contain the block, and select that region from the pop-up menu. Click the 'Save Blocks' button below the list, and boom, there's your block. (If you don't see the block right away, it may be set up to appear only on some pages, or only for some users. See Configuring Blocks below.)

If region is set to "<none>", the block's name will place itself under the 'Disabled' portion of the list, and the block itself won't appear on pages. That's how you "turn off" a block.

How do you order blocks within the same region? In Drupal 6, each block on the list has a cross-shaped "handle" in front of it; just drag that move a block up or down (or even move it to a different region!). The order in which blocks appear in a region is the order in which they'll appear on pages. 

Weight (Drupal 5)

In Drupal 5, you can't order blocks within a region by dragging them as above. Rather, you freely assign each block a weight, from -10 to 10. "Lighter" weights (lower numbers, including negative numbers) will "rise" to the top; "heavier" weights (higher numbers) will sink to the bottom.

For example, you give the "User login" block a weight of 1, and the "Recent popular content" block a weight of -2. You set both to appear in the left sidebar region. "Recent popular content" has the "lighter" number, and so will appear higher up; "User login" has the "heavier" number and so will appear underneath.

If two or more blocks appearing in the same region have equal weight, they will appear in alphabetical order of their titles.

Throttle

If your site uses the Throttle module, your block form will have a check box with this name. If you check the box, then your site will turn off the block – "throttle" it – when your site comes under a heavy load. Crowds of visitors can slow down your site, resulting in some frustrated guests; the throttle checkbox will turn off unimportant blocks under those conditions, to help keep your site fast.

It's an interesting feature, but there's no need to worry about it until your site is in the envious position of having to engage in crowd control.

Operations

Here we have the links to configure details of specific blocks, or even delete blocks you've made yourself. (You can't delete key blocks that are provided by Drupal; you can turn them off by setting their region to "<none>", which is just as good.) Read on for details of configuration.

Configuring blocks

Click 'configure' in a block's Operations column to set details of how it appears or functions. The options available to you may vary by block, but here are the key options common to all blocks: the block's title, and a handful of settings that determine when the block does or doesn't appear on your site.

Set your options as below, then click 'Save block' at the bottom of the form.

Block specific settings

Block title

This is separate from the block description. The block's description is what appears in the block form's list of blocks; the block's title is what appears to web site visitors. You can freely change the block title, or even leave it blank.

User specific visibility settings

Custom visibility settings

Can users decide whether or not to turn the block on and off? Typically, you won't be concerned about that; set the block to 'Users cannot control whether or not they see the block', and be done with it.

The other two options do give users the option to turn the block on or off – but it's an option only for logged-in users, not anonymous visitors.

Role specific visibility settings

Show block for specific roles

If you leave these check boxes blank, the block will be visible to all users. Otherwise, it will only be visible to the selected roles.

User roles are a topic for later. For now, you might want to make a simple choice among these three options:

a) Make block visible to everyone: Leave all roles unchecked.

b) Make block visible to administrators and other registered users, but not anonymous site visitors: Check all roles except 'anonymous user'. (This is useful for administrative and other "private" blocks.)

c ) Make block visible to anonymous site visitors, but not administrators and other registered users: Check only 'anonymous user'. (This is useful for any information blocks that you want visitors to see, but that just get in the way for you once you're logged in. Advertisement blocks would be a good example.)

Page specific visibility settings

Show block on specific pages

Similar to how the above settings can show the block only to specific user roles, these settings can show the block only on specific pages. Limit yourself to either of the first two options:

a) Show on every page except the listed pages. If you leave this blank, the block will appear on any page. If you input, for example, about, the block will appear on any page but the page <your site domain>/about.

b) Show only on the listed pages. If you leave this blank, the block will appear on no page, so be careful! If you input, for example, taxonomy/term/1/, the block will appear only on the page <your site domain>/taxonomy/term/1/.

A few added tricks and tweaks:

Under either of the above two options, you can specify multiple pages. Just hit return after each page, entering one page per line.

Note the special instruction that appears under the 'Pages' field: To specify your site's front page, use the special input <front>.

Users with a little computer savvy can use the * wildcard character. For example, taxonomy/* would specify any page that began with taxonomy/, whether taxonomy/term, taxonomy/term/1/, taxonomy/term/25/, etc.

Adding blocks

At the top of the block form, next to the 'Lists' tab, is a tab for 'Add block'.

The resulting form is simple, with only three items to input:

Block description

Input a short descriptive name or sentence. This will identify the block on the block form's list of blocks.

Block title

Inout the title that will appear at the top of the block on web pages. This could be something boringly descriptive ("Recent news") or something more exciting ("ATTENTION!"). You can also leave it blank, in which case the content of the block will appear unadorned by a title at top. 

Block body

This is the block content that a site visitor will see. Good ideas for content in a custom block include company contact information, a favorite quote, or a special announcement.

Configuring your new block

After you've input the above items on your new block, click 'Save block'. Your browser will go back to the 'List' tab of the Blocks administration form, and you'll find your new block somewhere on the list under Disabled.

You can now set your new block's region and its order within the region, as described above. You may also want to configure it, as described above. It's a little inconvenient, but Drupal doesn't let you set all of the configuration options at the same time you create the block; you have to create it as the first step, then configure it as the second step.

A final note: On the Blocks form, you'll also see the option to delete your new block, should you for some reason not be enamored with your creation. 

Maintenance Stuff

Taking care of problems and keeping your site running well.

Maintenance and Construction Notices

Sometimes you'll want to put up an "under construction" sign, or even make your site invisible, while you make big upgrades to the content (or just run experiments). Here are a couple of choices:

Placing an "Under Construction" sign

If you want to tell visitors that the site is under construction (or send some more creative message), but not deny access to the site, you only need to place a message on the front page. Create a Blog Entry, Page, or other appropriate node, and follow the instructions for having it appear among other nodes on your front page (or even make it the sole node on your front page).

Taking the site down for maintenance

Your site has a nifty feature for taking your site offline, with no access to its content – nothing but a single message to greet visitors. The setting is here:

Navigation » Administer » Site configuration » Site maintenance

Things couldn't be easier: Write the message the visitors will see, select 'Off-line', and click 'Save configuration'. Visitors will see only the off-line message; you, logged in as an administrator, can still view and work with the site normally. (Even if you log off, you can later log in normally using the login page: <your site domain>/user .)

Other Fun Things

Tips, tricks, and techniques.

Changing Color of Garland Theme

Garland is the name of a Theme made for Drupal 5. It has a nifty feature: an easy color selector that lets you change your color scheme right within the Theme configuration form, no programming required.

If you're using the Garland Theme, or a Theme based on Garland, here's how you can change your colors:

Change download method to 'public'

First, a quirk in the process: You may have your site set to handle file downloads via a private, not public, method. That's a technical detail that would seem to have nothing to do with changing the Theme's color scheme, but it happens that the Garland scheme can only save new color information if the download method is set to 'public'.

To get around this oddity, you need to change the download method to public, then make the color changes, then (unless there's reason not to do so) change the download method back to 'private'.

Go to:

Navigation » Administer » Site configuration » File system

Under 'Download method', choose 'Public', and click 'Save configuration'.

Change color scheme

Go to:

Navigation » Administer » Site building » Themes

Check under the 'Default' column, and make sure Garland or a Garland-based Theme is chosen. Click 'configure'.

You should see a colorful wheel. You can choose a ready-made color set, or click an individual color element below that, and then pick its color on the wheel. Play with it a bit; you'll see how it works.

Make other changes to your Theme if you like (see Configuring Your Theme) and click 'Preview' or 'Submit' at the bottom.

Change download method back to 'private'

All done? Let's change the download method back to 'private', which is more secure.

Navigation » Administer » Site configuration » File system

Under 'Download method', choose 'Private', and click 'Save configuration'.

There you go. Those new colors – they're so you!

Free Aliases!

Below are useful built-in aliases, ready to take you to important pages. Just type the alias into your browser's address bar, after <your site domain>.

Drupal aliases

The following aliases come courtesy of Drupal:

User login page

The first page you need as an administrator!

/user

Registered user pages

A list offering links to each individual user page:

/profile

You can also get to individual user pages by user number. The chief "ID 1" administrator's page is at /user/1; later users have later numbers.

/user/1, /user/2, /user/3, etc. 

Main Administer page

The all-important page containing links to all the forms you need to manage your site.

/admin

Contact form

Here's a ready-made contact form for visitors, if your site is set up to use it.

/contact

Forums

Your site's main Forums page, if the site is set up to use Drupal's built-in forum capabilities.

/forum

Polls

Your site's main Polls page, if the site is set up to use Drupal's built-in poll capabilities.

/poll

Blogs

All blogs on the site.

/blog

Front page

The site's default front page, if a specific front page has not been set. (It's "/node" because the front page, by default, is a list of all front-page-promoted nodes.)

/node

Nodes

Individual nodes, using the numbers automatically given them upon creation.

/node/1, /node/2, /node/3, etc.

Tagged content

Page listing all nodes tagged with the Term bearing the number. See Terms, Vocabularies, and Categories: "Tagging" Your Content.

/taxonomy/term/1, /taxonomy/term/2, etc.

Post tracker

List of posts, in order of posting.

/tracker